You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
169 lines
5.6 KiB
169 lines
5.6 KiB
10 months ago
|
Index: chromium-120.0.6099.71/third_party/lss/linux_syscall_support.h
|
||
|
===================================================================
|
||
|
--- chromium-120.0.6099.71.orig/third_party/lss/linux_syscall_support.h
|
||
|
+++ chromium-120.0.6099.71/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
|