[parisc-linux-cvs] HP-UX binary compatibility patch
John Marvin
jsm@udlkern.fc.hp.com
Thu, 4 Oct 2001 05:45:02 -0600 (MDT)
This patch is a start towards restoring hp-ux binary compatibility. Some
basic syscalls work. shared libraries appear to work also.
John
--- arch/parisc/hpux/gate.S.old Wed Oct 3 06:54:06 2001
+++ arch/parisc/hpux/gate.S Wed Oct 3 23:29:24 2001
@@ -13,8 +13,18 @@
#include <asm/unistd.h>
#include <asm/errno.h>
+#ifdef __LP64__
+ .level 2.0w
+#else
+ .level 1.1
+#endif
.text
+#ifdef __LP64__
+#define FRAME_SIZE 128
+#else
+#define FRAME_SIZE 64
+#endif
.import hpux_call_table
.import hpux_syscall_exit,code
.export hpux_gateway_page
@@ -22,35 +32,70 @@
.align 4096
hpux_gateway_page:
nop
- mfsp %sr7,%r1 ;! we must set sr3 to the space
- mtsp %r1,%sr3 ;! of the user before the gate
#ifdef __LP64__
#warning NEEDS WORK for 64-bit
#endif
- ldw -64(%r30), %r28 ;! 8th argument
+ ldw -64(%r30), %r29 ;! 8th argument
ldw -60(%r30), %r19 ;! 7th argument
ldw -56(%r30), %r20 ;! 6th argument
ldw -52(%r30), %r21 ;! 5th argument
- gate .+8, %r0 ;! become privileged
- mtsp %r0,%sr4 ;! get kernel space into sr4
- mtsp %r0,%sr5 ;! get kernel space into sr5
- mtsp %r0,%sr6 ;! get kernel space into sr6
- mtsp %r0,%sr7 ;! get kernel space into sr7
- mfctl %cr30,%r1 ;! get the kernel task ptr
- mtctl %r0,%cr30 ;! zero it (flag)
- STREG %r30,TASK_PT_GR30(%r1) ;! preserve userspace sp
- STREG %r2,TASK_PT_GR2(%r1) ;! preserve rp
- STREG %r27,TASK_PT_GR27(%r1) ;! user dp
- STREG %r31,TASK_PT_GR31(%r1) ;! preserve syscall return ptr
+ gate .+8, %r0 /* become privileged */
+ mtsp %r0,%sr4 /* get kernel space into sr4 */
+ mtsp %r0,%sr5 /* get kernel space into sr5 */
+ mtsp %r0,%sr6 /* get kernel space into sr6 */
+ mfsp %sr7,%r1 /* save user sr7 */
+ mtsp %r1,%sr3 /* and store it in sr3 */
+
+ mtctl %r30,%cr28
+ mfctl %cr30,%r1
+ xor %r1,%r30,%r30 /* ye olde xor trick */
+ xor %r1,%r30,%r1
+ xor %r1,%r30,%r30
+ ldo TASK_SZ_ALGN+FRAME_SIZE(%r30),%r30 /* set up kernel stack */
+
+ /* N.B.: It is critical that we don't set sr7 to 0 until r30
+ * contains a valid kernel stack pointer. It is also
+ * critical that we don't start using the kernel stack
+ * until after sr7 has been set to 0.
+ */
+
+ mtsp %r0,%sr7 /* get kernel space into sr7 */
+ STREG %r1,TASK_PT_GR30-TASK_SZ_ALGN-FRAME_SIZE(%r30) /* save usp */
+ ldo -TASK_SZ_ALGN-FRAME_SIZE(%r30),%r1 /* get task ptr in %r1 */
+
+ /* Save some registers for sigcontext and potential task
+ switch (see entry.S for the details of which ones are
+ saved/restored). TASK_PT_PSW is zeroed so we can see whether
+ a process is on a syscall or not. For an interrupt the real
+ PSW value is stored. This is needed for gdb and sys_ptrace. */
+ STREG %r0, TASK_PT_PSW(%r1)
+ STREG %r2, TASK_PT_GR2(%r1) /* preserve rp */
+ STREG %r19, TASK_PT_GR19(%r1) /* 7th argument */
+ STREG %r20, TASK_PT_GR20(%r1) /* 6th argument */
+ STREG %r21, TASK_PT_GR21(%r1) /* 5th argument */
+ STREG %r22, TASK_PT_GR22(%r1) /* syscall # */
+ STREG %r23, TASK_PT_GR23(%r1) /* 4th argument */
+ STREG %r24, TASK_PT_GR24(%r1) /* 3rd argument */
+ STREG %r25, TASK_PT_GR25(%r1) /* 2nd argument */
+ STREG %r26, TASK_PT_GR26(%r1) /* 1st argument */
+ STREG %r27, TASK_PT_GR27(%r1) /* user dp */
+ STREG %r28, TASK_PT_GR28(%r1) /* return value 0 */
+ STREG %r28, TASK_PT_ORIG_R28(%r1) /* return value 0 (saved for signals) */
+ STREG %r29, TASK_PT_GR29(%r1) /* 8th argument */
+ STREG %r31, TASK_PT_GR31(%r1) /* preserve syscall return ptr */
+
+ ldo TASK_PT_FR0(%r1), %r27 /* save fpregs from the kernel */
+ save_fp %r27 /* or potential task switch */
- loadgp ;! setup kernel dp
+ mfctl %cr11, %r27 /* i.e. SAR */
+ STREG %r27, TASK_PT_SAR(%r1)
- ldo TASK_SZ_ALGN+64(%r1),%r30 ;! set up kernel stack
+ loadgp
stw %r21, -52(%r30) ;! 5th argument
stw %r20, -56(%r30) ;! 6th argument
stw %r19, -60(%r30) ;! 7th argument
- stw %r28, -64(%r30) ;! 8th argument
+ stw %r29, -64(%r30) ;! 8th argument
ldil L%hpux_call_table, %r21
ldo R%hpux_call_table(%r21), %r21
--- arch/parisc/hpux/wrappers.S.old Thu Oct 4 00:32:29 2001
+++ arch/parisc/hpux/wrappers.S Thu Oct 4 00:37:24 2001
@@ -243,3 +243,10 @@ hpux_syscall_exit:
no_error:
b syscall_exit
nop
+
+ .export hpux_unimplemented_wrapper
+ .import hpux_unimplemented
+
+hpux_unimplemented_wrapper:
+ b hpux_unimplemented
+ stw %r22,-64(%r30) /* overwrite arg8 with syscall number */
--- arch/parisc/hpux/sys_hpux.c.old Thu Oct 4 00:24:06 2001
+++ arch/parisc/hpux/sys_hpux.c Thu Oct 4 01:42:37 2001
@@ -333,3 +333,21 @@ int hpux_pipe(int *kstack_fildes)
unlock_kernel();
return error;
}
+
+int
+hpux_unimplemented(unsigned long arg1,unsigned long arg2,unsigned long arg3,
+ unsigned long arg4,unsigned long arg5,unsigned long arg6,
+ unsigned long arg7,unsigned long sc_num)
+{
+ /* NOTE: sc_num trashes arg8 for the few syscalls that actually
+ * have a valid 8th argument.
+ */
+
+ printk(KERN_DEBUG \
+ "Unimplemented HP-UX syscall emulation. Syscall #%d\n",
+ sc_num);
+ printk(KERN_DEBUG " Args: %lx %lx %lx %lx %lx %lx %lx\n",
+ arg1, arg2, arg3, arg4, arg5, arg6, arg7);
+
+ return -ENOSYS;
+}
--- arch/parisc/hpux/entry_hpux.S.old Thu Oct 4 00:33:07 2001
+++ arch/parisc/hpux/entry_hpux.S Thu Oct 4 00:34:52 2001
@@ -15,6 +15,7 @@
.align 4
.export hpux_call_table
+ .import hpux_unimplemented_wrapper
hpux_call_table:
ENTRY_NAME(sys_ni_syscall) /* 0 */
ENTRY_NAME(sys_exit)
@@ -34,7 +35,7 @@ hpux_call_table:
ENTRY_NAME(sys_chmod) /* 15 */
ENTRY_NAME(sys_chown)
ENTRY_NAME(hpux_brk)
- ENTRY_NAME(sys_ni_syscall)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
ENTRY_NAME(sys_lseek)
ENTRY_NAME(sys_getpid) /* 20 */
ENTRY_NAME(hpux_mount)
@@ -44,34 +45,34 @@ hpux_call_table:
ENTRY_NAME(sys_stime) /* 25 */
ENTRY_NAME(hpux_ptrace)
ENTRY_NAME(sys_alarm)
- ENTRY_NAME(sys_ni_syscall)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
ENTRY_NAME(sys_pause)
ENTRY_NAME(sys_utime) /* 30 */
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
ENTRY_NAME(sys_access)
ENTRY_NAME(hpux_nice)
- ENTRY_NAME(sys_ni_syscall) /* 35 */
+ ENTRY_NAME(hpux_unimplemented_wrapper) /* 35 */
ENTRY_NAME(sys_sync)
- ENTRY_NAME(sys_ni_syscall)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
ENTRY_NAME(sys_newstat)
- ENTRY_NAME(sys_ni_syscall)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
ENTRY_NAME(sys_newlstat) /* 40 */
ENTRY_NAME(sys_dup)
ENTRY_NAME(hpux_pipe_wrapper)
ENTRY_NAME(sys_times)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall) /* 45 */
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper) /* 45 */
ENTRY_NAME(sys_setgid)
ENTRY_NAME(sys_getgid)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall) /* 50 */
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper) /* 50 */
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
ENTRY_NAME(hpux_ioctl)
- ENTRY_NAME(sys_ni_syscall) /* 55 */
+ ENTRY_NAME(hpux_unimplemented_wrapper) /* 55 */
ENTRY_NAME(sys_symlink)
ENTRY_NAME(hpux_utssys)
ENTRY_NAME(sys_readlink)
@@ -79,218 +80,218 @@ hpux_call_table:
ENTRY_NAME(sys_umask) /* 60 */
ENTRY_NAME(sys_chroot)
ENTRY_NAME(sys_fcntl)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall) /* 65 */
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper) /* 65 */
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
ENTRY_NAME(hpux_sbrk)
- ENTRY_NAME(sys_ni_syscall) /* 70 */
+ ENTRY_NAME(hpux_unimplemented_wrapper) /* 70 */
ENTRY_NAME(sys_mmap)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall) /* 75 */
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall) /* 80 */
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper) /* 75 */
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper) /* 80 */
ENTRY_NAME(sys_getpgid)
ENTRY_NAME(sys_setpgid)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall) /* 85 */
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper) /* 85 */
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
ENTRY_NAME(sys_dup2) /* 90 */
- ENTRY_NAME(sys_ni_syscall)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
ENTRY_NAME(sys_newfstat)
ENTRY_NAME(sys_select)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall) /* 95 */
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall) /* 100 */
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall) /* 105 */
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall) /* 110 */
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall) /* 115 */
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper) /* 95 */
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper) /* 100 */
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper) /* 105 */
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper) /* 110 */
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper) /* 115 */
ENTRY_NAME(sys_gettimeofday)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall) /* 120 */
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper) /* 120 */
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
ENTRY_NAME(sys_fchown)
ENTRY_NAME(sys_fchmod)
- ENTRY_NAME(sys_ni_syscall) /* 125 */
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
+ ENTRY_NAME(hpux_unimplemented_wrapper) /* 125 */
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
ENTRY_NAME(sys_rename)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall) /* 130 */
- ENTRY_NAME(sys_ni_syscall)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper) /* 130 */
+ ENTRY_NAME(hpux_unimplemented_wrapper)
ENTRY_NAME(hpux_sysconf)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall) /* 135 */
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper) /* 135 */
ENTRY_NAME(sys_mkdir)
ENTRY_NAME(sys_rmdir)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall) /* 140 */
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall) /* 145 */
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall) /* 150 */
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall) /* 155 */
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall) /* 160 */
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall) /* 165 */
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall) /* 170 */
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall) /* 175 */
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall) /* 180 */
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall) /* 185 */
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall) /* 190 */
- ENTRY_NAME(sys_ni_syscall)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper) /* 140 */
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper) /* 145 */
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper) /* 150 */
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper) /* 155 */
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper) /* 160 */
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper) /* 165 */
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper) /* 170 */
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper) /* 175 */
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper) /* 180 */
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper) /* 185 */
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper) /* 190 */
+ ENTRY_NAME(hpux_unimplemented_wrapper)
ENTRY_NAME(hpux_getdomainname)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall) /* 195 */
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper) /* 195 */
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
ENTRY_NAME(sys_waitpid) /* 200 */
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall) /* 205 */
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall) /* 210 */
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall) /* 215 */
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall) /* 220 */
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall) /* 225 */
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall) /* 230 */
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall) /* 235 */
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall) /* 240 */
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall) /* 245 */
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall) /* 250 */
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall) /* 255 */
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall) /* 260 */
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall) /* 265 */
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall) /* 270 */
- ENTRY_NAME(sys_ni_syscall)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper) /* 205 */
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper) /* 210 */
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper) /* 215 */
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper) /* 220 */
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper) /* 225 */
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper) /* 230 */
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper) /* 235 */
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper) /* 240 */
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper) /* 245 */
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper) /* 250 */
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper) /* 255 */
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper) /* 260 */
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper) /* 265 */
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper) /* 270 */
+ ENTRY_NAME(hpux_unimplemented_wrapper)
ENTRY_NAME(sys_fchdir)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
ENTRY_NAME(sys_accept) /* 275 */
ENTRY_NAME(sys_bind)
ENTRY_NAME(sys_connect)
@@ -307,227 +308,227 @@ hpux_call_table:
ENTRY_NAME(sys_setsockopt)
ENTRY_NAME(sys_shutdown)
ENTRY_NAME(sys_socket) /* 290 */
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall) /* 295 */
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall) /* 300 */
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall) /* 305 */
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall) /* 310 */
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall) /* 315 */
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall) /* 320 */
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall) /* 325 */
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall) /* 330 */
- ENTRY_NAME(sys_ni_syscall)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper) /* 295 */
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper) /* 300 */
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper) /* 305 */
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper) /* 310 */
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper) /* 315 */
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper) /* 320 */
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper) /* 325 */
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper) /* 330 */
+ ENTRY_NAME(hpux_unimplemented_wrapper)
ENTRY_NAME(sys_lchown)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall) /* 335 */
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall) /* 340 */
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall) /* 345 */
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall) /* 350 */
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper) /* 335 */
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper) /* 340 */
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper) /* 345 */
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper) /* 350 */
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
ENTRY_NAME(sys_nanosleep)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall) /* 355 */
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper) /* 355 */
ENTRY_NAME(hpux_getdents)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall) /* 360 */
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper) /* 360 */
ENTRY_NAME(hpux_fstat64)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall) /* 365 */
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper) /* 365 */
ENTRY_NAME(hpux_lstat64)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
ENTRY_NAME(hpux_stat64)
- ENTRY_NAME(sys_ni_syscall) /* 370 */
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall) /* 375 */
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall) /* 380 */
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall) /* 385 */
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall) /* 390 */
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall) /* 395 */
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall) /* 400 */
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall) /* 405 */
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall) /* 410 */
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall) /* 415 */
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall) /* 420 */
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall) /* 425 */
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall) /* 430 */
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall) /* 435 */
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall) /* 440 */
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall) /* 445 */
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall) /* 450 */
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall) /* 455 */
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall) /* 460 */
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall) /* 465 */
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall) /* 470 */
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall) /* 475 */
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall) /* 480 */
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall) /* 485 */
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall) /* 490 */
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall) /* 495 */
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall) /* 500 */
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall) /* 505 */
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall) /* 510 */
- ENTRY_NAME(sys_ni_syscall)
- ENTRY_NAME(sys_ni_syscall)
+ ENTRY_NAME(hpux_unimplemented_wrapper) /* 370 */
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper) /* 375 */
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper) /* 380 */
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper) /* 385 */
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper) /* 390 */
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper) /* 395 */
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper) /* 400 */
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper) /* 405 */
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper) /* 410 */
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper) /* 415 */
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper) /* 420 */
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper) /* 425 */
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper) /* 430 */
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper) /* 435 */
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper) /* 440 */
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper) /* 445 */
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper) /* 450 */
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper) /* 455 */
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper) /* 460 */
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper) /* 465 */
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper) /* 470 */
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper) /* 475 */
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper) /* 480 */
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper) /* 485 */
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper) /* 490 */
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper) /* 495 */
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper) /* 500 */
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper) /* 505 */
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper) /* 510 */
+ ENTRY_NAME(hpux_unimplemented_wrapper)
+ ENTRY_NAME(hpux_unimplemented_wrapper)
.end
--- arch/parisc/kernel/entry.S.old Wed Oct 3 07:32:22 2001
+++ arch/parisc/kernel/entry.S Thu Oct 4 01:24:51 2001
@@ -2222,6 +2222,16 @@ syscall_exit:
STREG %r28,TASK_PT_GR28-TASK_SZ_ALGN-FRAME_SIZE(%r30)
+ /* Save other hpux returns if personality is PER_HPUX */
+
+#define PER_HPUX 0xe /* <linux/personality.h> cannot be easily included */
+
+ LDREG TASK_PERSONALITY-TASK_SZ_ALGN-FRAME_SIZE(%r30),%r19
+ CMPIB<>,n PER_HPUX,%r19,1f
+ STREG %r22,TASK_PT_GR22-TASK_SZ_ALGN-FRAME_SIZE(%r30)
+ STREG %r29,TASK_PT_GR29-TASK_SZ_ALGN-FRAME_SIZE(%r30)
+1:
+
/* Seems to me that dp could be wrong here, if the syscall involved
* calling a module, and nothing got round to restoring dp on return.
*/
--- arch/parisc/mm/init.c.old Sat Sep 29 23:20:07 2001
+++ arch/parisc/mm/init.c Thu Oct 4 04:26:35 2001
@@ -477,7 +477,6 @@ static void __init map_pages(unsigned lo
unsigned long ro_end;
unsigned long fv_addr;
unsigned long gw_addr;
- int range;
extern const unsigned long fault_vector_20;
extern void * const linux_gateway_page;
@@ -602,7 +601,8 @@ static void __init pagetable_init(void)
end_paddr = start_paddr + (pmem_ranges[range].pages << PAGE_SHIFT);
size = pmem_ranges[range].pages << PAGE_SHIFT;
- map_pages(__va(start_paddr), start_paddr, size, PAGE_KERNEL);
+ map_pages((unsigned long)__va(start_paddr), start_paddr,
+ size, PAGE_KERNEL);
}
#ifdef CONFIG_BLK_DEV_INITRD
@@ -635,6 +635,75 @@ static void __init gateway_init(void)
map_pages(linux_gateway_page_addr, __pa(&linux_gateway_page),
PAGE_SIZE, PAGE_GATEWAY);
+}
+
+void
+map_hpux_gateway_page(struct task_struct *tsk, struct mm_struct *mm)
+{
+ pgd_t *pg_dir;
+ pmd_t *pmd;
+ pte_t *pg_table;
+ unsigned long start_pmd;
+ unsigned long start_pte;
+ unsigned long address;
+ unsigned long hpux_gw_page_addr;
+ /* FIXME: This is 'const' in order to trick the compiler
+ into not treating it as DP-relative data. */
+ extern void * const hpux_gateway_page;
+
+ hpux_gw_page_addr = HPUX_GATEWAY_ADDR & PAGE_MASK;
+
+ /*
+ * Setup HP-UX Gateway page.
+ *
+ * The HP-UX gateway page resides in the user address space,
+ * so it needs to be aliased into each process.
+ */
+
+ pg_dir = pgd_offset(mm,hpux_gw_page_addr);
+
+#if PTRS_PER_PMD == 1
+ start_pmd = 0;
+#else
+ start_pmd = ((hpux_gw_page_addr >> PMD_SHIFT) & (PTRS_PER_PMD - 1));
+#endif
+ start_pte = ((hpux_gw_page_addr >> PAGE_SHIFT) & (PTRS_PER_PTE - 1));
+
+ address = __pa(&hpux_gateway_page);
+#if PTRS_PER_PMD == 1
+ pmd = (pmd_t *)__pa(pg_dir);
+#else
+ pmd = (pmd_t *) (PAGE_MASK & pgd_val(*pg_dir));
+
+ /*
+ * pmd is physical at this point
+ */
+
+ if (!pmd) {
+ pmd = (pmd_t *) get_zeroed_page(GFP_KERNEL);
+ pmd = (pmd_t *) __pa(pmd);
+ }
+
+ pgd_val(*pg_dir) = _PAGE_TABLE | (unsigned long) pmd;
+#endif
+ /* now change pmd to kernel virtual addresses */
+
+ pmd = (pmd_t *)__va(pmd) + start_pmd;
+
+ /*
+ * pg_table is physical at this point
+ */
+
+ pg_table = (pte_t *) (PAGE_MASK & pmd_val(*pmd));
+ if (!pg_table)
+ pg_table = (pte_t *) __pa(get_zeroed_page(GFP_KERNEL));
+
+ pmd_val(*pmd) = _PAGE_TABLE | (unsigned long) pg_table;
+
+ /* now change pg_table to kernel virtual addresses */
+
+ pg_table = (pte_t *) __va(pg_table) + start_pte;
+ set_pte(pg_table, __mk_pte(address, PAGE_GATEWAY));
}
extern void flush_tlb_all_local(void);
--- arch/parisc/tools/offset.c.old Thu Oct 4 00:43:17 2001
+++ arch/parisc/tools/offset.c Thu Oct 4 00:44:01 2001
@@ -238,6 +238,7 @@ void output_task_defines(void)
offset("#define TASK_NICE ", struct task_struct, nice);
offset("#define TASK_MM ", struct task_struct, mm);
offset("#define TASK_PROCESSOR ", struct task_struct, processor);
+ offset("#define TASK_PERSONALITY ", struct task_struct, personality);
size ("#define TASK_SZ ", struct task_struct);
size_align("#define TASK_SZ_ALGN ", struct task_struct, 64);
linefeed;
--- fs/binfmt_som.c.old Wed Oct 3 04:05:33 2001
+++ fs/binfmt_som.c Thu Oct 4 04:10:02 2001
@@ -229,6 +229,18 @@ do_load_som_binary(struct linux_binprm *
current->flags &= ~PF_FORKNOEXEC;
current->personality = PER_HPUX;
+ /* Set the task size for HP-UX processes such that
+ * the gateway page is outside the address space.
+ * This can be fixed later, but for now, this is much
+ * easier.
+ */
+
+ current->thread.task_size = 0xc0000000;
+
+ /* Set map base to allow enough room for hp-ux heap growth */
+
+ current->thread.map_base = 0x80000000;
+
retval = map_som_binary(bprm->file, hpuxhdr);
if (retval < 0)
goto out_free;
@@ -253,7 +265,8 @@ do_load_som_binary(struct linux_binprm *
printk("(start_stack) %08lx\n" , (unsigned long) current->mm->start_stack);
printk("(brk) %08lx\n" , (unsigned long) current->mm->brk);
#endif
- flush_all_caches();
+
+ map_hpux_gateway_page(current,current->mm);
start_thread_som(regs, som_entry, bprm->p);
if (current->ptrace & PT_PTRACED)
--- include/asm-parisc/processor.h.old Wed Oct 3 05:17:27 2001
+++ include/asm-parisc/processor.h Thu Oct 4 03:25:21 2001
@@ -32,8 +32,11 @@
#define current_text_addr() ({ void *pc; __asm__("\n\tblr 0,%0\n\tnop":"=r" (pc)); pc; })
-#define TASK_SIZE (0xFFF00000UL)
-#define TASK_UNMAPPED_BASE (0x40000000UL)
+#define TASK_SIZE (current->thread.task_size)
+#define DEFAULT_TASK_SIZE (0xFFF00000UL)
+
+#define TASK_UNMAPPED_BASE (current->thread.map_base)
+#define DEFAULT_MAP_BASE (0x40000000UL)
#ifndef __ASSEMBLY__
@@ -106,6 +109,8 @@ typedef struct {
struct thread_struct {
struct pt_regs regs;
+ unsigned long task_size;
+ unsigned long map_base;
unsigned long flags;
};
@@ -127,7 +132,9 @@ struct thread_struct {
iaoq: { 0, }, \
cr27: 0, \
}, \
- flags: __pa((unsigned long) &swapper_pg_dir) \
+ task_size: DEFAULT_TASK_SIZE, \
+ map_base: DEFAULT_MAP_BASE, \
+ flags: 0 \
}
/*
@@ -280,12 +287,18 @@ on downward growing arches, it looks lik
} while(0)
struct task_struct;
+struct mm_struct;
/* Free all resources held by a thread. */
extern void release_thread(struct task_struct *);
extern int kernel_thread(int (*fn)(void *), void * arg, unsigned long flags);
-#define copy_segments(tsk, mm) do { } while (0)
+extern void map_hpux_gateway_page(struct task_struct *tsk, struct mm_struct *mm);
+
+#define copy_segments(tsk, mm) do { \
+ if (tsk->personality == PER_HPUX) \
+ map_hpux_gateway_page(tsk,mm); \
+ } while (0)
#define release_segments(mm) do { } while (0)
static inline unsigned long get_wchan(struct task_struct *p)