File: 0002-third_party-lss-kernel-structs.patch

package info (click to toggle)
chromium 134.0.6998.35-1~deb12u1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 5,929,812 kB
  • sloc: cpp: 34,189,808; ansic: 7,041,458; javascript: 4,034,221; python: 1,459,275; asm: 846,276; xml: 726,550; pascal: 178,372; sh: 104,683; objc: 91,089; perl: 88,388; sql: 48,244; cs: 43,980; makefile: 28,768; fortran: 24,137; php: 20,829; ruby: 17,806; tcl: 10,142; yacc: 8,631; lisp: 3,097; lex: 1,327; ada: 727; awk: 329; jsp: 228; sed: 36
file content (168 lines) | stat: -rw-r--r-- 5,749 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
Index: chromium-134.0.6998.35/third_party/lss/linux_syscall_support.h
===================================================================
--- chromium-134.0.6998.35.orig/third_party/lss/linux_syscall_support.h
+++ chromium-134.0.6998.35/third_party/lss/linux_syscall_support.h
@@ -87,7 +87,7 @@
  * Porting to other related platforms should not be difficult.
  */
 #if (defined(__i386__) || defined(__x86_64__) || defined(__ARM_ARCH_3__) ||   \
-     defined(__mips__) || defined(__PPC__) || defined(__ARM_EABI__) || \
+     defined(__mips__) || defined(__PPC__) || defined(__powerpc64__) || defined(__ARM_EABI__) || \
      defined(__aarch64__) || defined(__s390__) || defined(__e2k__) ||  \
      (defined(__riscv) && __riscv_xlen == 64) || defined(__loongarch_lp64))  \
   && (defined(__linux) || defined(__ANDROID__))
@@ -399,7 +399,7 @@ struct kernel_stat64 {
   unsigned           __pad2;
   unsigned long long st_blocks;
 };
-#elif defined __PPC__
+#elif defined __PPC__ && !defined(__powerpc64__)
 struct kernel_stat64 {
   unsigned long long st_dev;
   unsigned long long st_ino;
@@ -421,6 +421,28 @@ struct kernel_stat64 {
   unsigned long      __unused4;
   unsigned long      __unused5;
 };
+#elif defined(__powerpc64__)
+struct kernel_stat64 {
+  unsigned long int  st_dev;
+  unsigned long int  st_ino;
+  unsigned int       st_mode;
+  unsigned long int  st_nlink;
+  unsigned int       st_uid;
+  unsigned int       st_gid;
+  unsigned long int  st_rdev;
+  unsigned short int __pad2;
+  long int           st_size;
+  long int           st_blksize;
+  long int           st_blocks;
+  long int           st_atime_;
+  unsigned long int  st_atime_nsec_;
+  long int           st_mtime_;
+  unsigned long int  st_mtime_nsec_;
+  long int           st_ctime_;
+  unsigned long int  st_ctime_nsec_;
+  unsigned long int  __unused4;
+  unsigned long int  __unused5;
+};
 #elif defined(__e2k__)
 struct kernel_stat64 {
   unsigned long long st_dev;
@@ -537,7 +559,7 @@ struct kernel_stat {
   uint64_t           st_ctime_nsec_;
   int64_t            __unused4[3];
 };
-#elif defined(__PPC__)
+#elif defined(__PPC__) && !defined(__powerpc64__)
 typedef unsigned long kernel_blkcnt_t;
 typedef unsigned long kernel_blksize_t;
 typedef unsigned kernel_dev_t;
@@ -568,6 +590,37 @@ struct kernel_stat {
   unsigned long      __unused4;
   unsigned long      __unused5;
 };
+#elif defined(__powerpc64__)
+typedef long int kernel_blkcnt_t;
+typedef long int kernel_blksize_t;
+typedef unsigned long int kernel_dev_t;
+typedef unsigned int kernel_gid_t;
+typedef unsigned long int kernel_ino_t;
+typedef unsigned int kernel_mode_t;
+typedef unsigned long int kernel_nlink_t;
+typedef long int kernel_off_t;
+typedef long int kernel_time_t;
+typedef unsigned int kernel_uid_t;
+struct kernel_stat {
+  kernel_dev_t       st_dev;
+  kernel_ino_t       st_ino;
+  kernel_mode_t      st_mode;
+  kernel_nlink_t     st_nlink;
+  kernel_uid_t       st_uid;
+  kernel_gid_t       st_gid;
+  kernel_dev_t       st_rdev;
+  kernel_off_t       st_size;
+  kernel_blksize_t   st_blksize;
+  kernel_blkcnt_t    st_blocks;
+  kernel_time_t      st_atime_;
+  unsigned long int  st_atime_nsec_;
+  kernel_time_t      st_mtime_;
+  unsigned long int  st_mtime_nsec_;
+  kernel_time_t      st_ctime_;
+  unsigned long int  st_ctime_nsec_;
+  unsigned long int  __unused4;
+  unsigned long int  __unused5;
+};
 #elif (defined(__mips__) && _MIPS_SIM != _MIPS_SIM_ABI64)
 typedef int kernel_blkcnt_t;
 typedef int kernel_blksize_t;
@@ -1824,6 +1877,28 @@ struct kernel_statx {
 #ifndef __NR_getcpu
 #define __NR_getcpu             302
 #endif
+
+/* Linux commit 86250b9d12caa1a3dee12a7cf638b7dd70eaadb6 (2010) adds
+ * direct socket system calls to PPC */
+#ifndef __NR_socket
+#define __NR_socket             326
+#endif
+#ifndef __NR_socketpair
+#define __NR_socketpair         333
+#endif
+#ifndef __NR_sendto
+#define __NR_sendto             335
+#endif
+#ifndef __NR_shutdown
+#define __NR_shutdown           338
+#endif
+#ifndef __NR_sendmsg
+#define __NR_sendmsg            341
+#endif
+#ifndef __NR_recvmsg
+#define __NR_recvmsg            342
+#endif
+
 /* End of powerpc defininitions                                              */
 #elif defined(__s390__)
 #ifndef __NR_quotactl
@@ -3363,6 +3438,11 @@ struct kernel_statx {
     /* TODO(csilvers): consider wrapping some args up in a struct, like we
      * do for i386's _syscall6, so we can compile successfully on gcc 2.95
      */
+    #ifdef __powerpc64__
+    /* TODO: implement clone() for ppc64.
+     * until then, use system libc */
+    #define sys_clone clone
+    #else
     LSS_INLINE int LSS_NAME(clone)(int (*fn)(void *), void *child_stack,
                                    int flags, void *arg, int *parent_tidptr,
                                    void *newtls, int *child_tidptr) {
@@ -3433,6 +3513,7 @@ struct kernel_statx {
       }
       LSS_RETURN(int, __ret, __err);
     }
+    #endif
   #elif defined(__s390__)
     #undef  LSS_REG
     #define LSS_REG(r, a) register unsigned long __r##r __asm__("r"#r) = (unsigned long) a
@@ -4783,7 +4864,7 @@ struct kernel_statx {
     LSS_INLINE _syscall6(void*, mmap, void*, addr, size_t, length, int, prot,
                          int, flags, int, fd, int64_t, offset)
   #endif
-  #if defined(__PPC__)
+  #if defined(__PPC__) && !defined(__powerpc64__)
     #undef LSS_SC_LOADARGS_0
     #define LSS_SC_LOADARGS_0(dummy...)
     #undef LSS_SC_LOADARGS_1
@@ -5173,7 +5254,11 @@ struct kernel_statx {
 #endif
 
 #if !defined(__NR_pipe)
+#if defined(__powerpc64__)
+  LSS_INLINE pid_t LSS_NAME(pipe)(int *pipefd) {
+#else
   LSS_INLINE int LSS_NAME(pipe)(int *pipefd) {
+#endif
     return LSS_NAME(pipe2)(pipefd, 0);
   }
 #endif