compat code for semtimedop in 2.4?
malcontents,
Checking the dirtiness of my 2.4 tree has reminded that we need some sort of compat for semtimedop? Since we don't have an IPC multiplexor this function call from the glibc side (already written wrapper) calls this syscall. The number was given out by willy, and matches the 2.5 number. Do we need compat code? *Sigh*
Comments welcome!
Cheers,
Carlos.
---
Index: arch/parisc/kernel/sys_parisc.c
===================================================================
RCS file: /var/cvs/linux/arch/parisc/kernel/sys_parisc.c,v retrieving revision 1.14
parisc/kernel/sys_parisc.c +8 -0
@@ -256,3 +256,11 @@ int sys_shmctl_broken(int shmid, int cmdreturn sys_shmctl (shmid, cmd, (struct shmid_ds *)buf); } +/* 2.4 compat code required for IPC calls */ +asmlinkage long sys_semtimedop (int semid,struct sembuf *tsops, +unsigned nsops,const struct timespec *timeout) +{ +/* FIXME: Need to implement compat? */ +return -ENOSYS ; +} +
Index: arch/parisc/kernel/sys_parisc32.c
===================================================================
RCS file: /var/cvs/linux/arch/parisc/kernel/sys_parisc32.c,v retrieving revision 1.27
parisc/kernel/sys_parisc32.c +8 -0
@@ -3104,3 +3104,11 @@ asmlinkage long sys32_semctl_broken(intreturn sys_semctl (semid, semnum, cmd, arg); } +/* 2.4 compat code required for IPC calls */ +asmlinkage long sys32_semtimedop (int semid,struct sembuf *tsops, +unsigned nsops,const struct timespec *timeout) +{ +/* FIXME: Possible 32/64 conversions required */ +/* FIXME: Need to implement compat? */ +return -ENOSYS ; +}
Index: arch/parisc/kernel/syscall.S
===================================================================
RCS file: /var/cvs/linux/arch/parisc/kernel/syscall.S,v retrieving revision 1.78
parisc/kernel/syscall.S +24 -1
@@ -604,8 +604,31 @@ sys_call_table: #endif ENTRY_SAME(gettid) ENTRY_SAME(readahead) - ENTRY_SAME(tkill) + ENTRY_SAME(tkill) /* 208 */ + /* COMPAT semtimedop call requires the same syscall number + across kernel versions. */ + + ENTRY_SAME(ni_syscall) + ENTRY_SAME(ni_syscall) /* 210 */ + ENTRY_SAME(ni_syscall) + ENTRY_SAME(ni_syscall) + ENTRY_SAME(ni_syscall) + ENTRY_SAME(ni_syscall) + ENTRY_SAME(ni_syscall) + ENTRY_SAME(ni_syscall) + ENTRY_SAME(ni_syscall) + ENTRY_SAME(ni_syscall) + ENTRY_SAME(ni_syscall) + ENTRY_SAME(ni_syscall) /* 220 */ + ENTRY_SAME(ni_syscall) + ENTRY_SAME(ni_syscall) + ENTRY_SAME(ni_syscall) + ENTRY_SAME(ni_syscall) + ENTRY_SAME(ni_syscall) + ENTRY_SAME(ni_syscall) + ENTRY_SAME(ni_syscall) + ENTRY_DIFF(semtimedop) /* 228 */ .end /* Make sure nothing else is placed on this page */
Index: include/asm-parisc/unistd.h
===================================================================
RCS file: /var/cvs/linux/include/asm-parisc/unistd.h,v retrieving revision 1.26
asm-parisc/unistd.h +2 -0
@@ -702,6 +702,8 @@#define __NR_readahead (__NR_Linux + 207)#define __NR_tkill (__NR_Linux + 208) +#define __NR_semtimedop (__NR_Linux + 228) +#define __NR_Linux_syscalls 208#define HPUX_GATEWAY_ADDR 0xC0000004