[xtensa-cvscommit] linux/arch/xtensa/kernel setup.c,1.13,1.14 syscall.c,1.2,1.3 syscalls.h,1.4,1.5
Brought to you by:
zankel
|
From: <joe...@us...> - 2003-07-25 00:16:30
|
Update of /cvsroot/xtensa/linux/arch/xtensa/kernel
In directory sc8-pr-cvs1:/tmp/cvs-serv2521/arch/xtensa/kernel
Modified Files:
setup.c syscall.c syscalls.h
Log Message:
If ISS platform, return control to ISS on kernel panic to conserve host resources.
Provide arg wrappers for pread/pwrite system calls to match the Xtensa ABI.
Correct an arg count, and point to new pread/pwrite system calls.
Index: setup.c
===================================================================
RCS file: /cvsroot/xtensa/linux/arch/xtensa/kernel/setup.c,v
retrieving revision 1.13
retrieving revision 1.14
diff -C2 -d -r1.13 -r1.14
*** setup.c 12 Jun 2003 23:43:53 -0000 1.13
--- setup.c 25 Jul 2003 00:16:28 -0000 1.14
***************
*** 270,273 ****
--- 270,279 ----
retpc = next_retpc;
}
+ #ifdef CONFIG_XTENSA_PLATFORM_ISS
+ /* Since ISS will now just hang and consume host resources,
+ return control to gdb. */
+ asm volatile ("movi a2, -1\n\t"
+ "simcall\n");
+ #endif
return NOTIFY_DONE;
}
Index: syscall.c
===================================================================
RCS file: /cvsroot/xtensa/linux/arch/xtensa/kernel/syscall.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** syscall.c 29 Jan 2003 06:18:00 -0000 1.2
--- syscall.c 25 Jul 2003 00:16:28 -0000 1.3
***************
*** 143,146 ****
--- 143,164 ----
+ /* Patch up argument passing. Normal system-call dispatch cannot
+ * follow ABI requirements related to passing 64-bit arguments to
+ * functions. 64-bit arguments must begin on odd-numbered
+ * register. 0 arg is a dummy, unused arg. */
+
+ asmlinkage ssize_t sys_pread_args(unsigned int fd, char * buf, size_t count,
+ unsigned int pos_hi, unsigned int pos_lo)
+ {
+ return sys_pread(fd, buf, count, 0, pos_hi, pos_lo);
+ }
+
+ asmlinkage ssize_t sys_pwrite_args(unsigned int fd, char * buf, size_t count,
+ unsigned int pos_hi, unsigned int pos_lo)
+ {
+ return sys_pwrite(fd, buf, count, 0, pos_hi, pos_lo);
+ }
+
+
/*
* Compacrapability ...
Index: syscalls.h
===================================================================
RCS file: /cvsroot/xtensa/linux/arch/xtensa/kernel/syscalls.h,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** syscalls.h 15 Apr 2003 17:55:04 -0000 1.4
--- syscalls.h 25 Jul 2003 00:16:28 -0000 1.5
***************
*** 176,180 ****
SYS(sys_ni_syscall, 0) /* 150 */
SYS(sys_getsid, 1)
! SYS(sys_fdatasync, 0)
SYS(sys_sysctl, 1)
SYS(sys_mlock, 2)
--- 176,180 ----
SYS(sys_ni_syscall, 0) /* 150 */
SYS(sys_getsid, 1)
! SYS(sys_fdatasync, 1)
SYS(sys_sysctl, 1)
SYS(sys_mlock, 2)
***************
*** 224,229 ****
SYS(sys_rt_sigqueueinfo, 3)
SYS(sys_rt_sigsuspend, 0)
! SYS(sys_pread, 6) /* 200 */
! SYS(sys_pwrite, 6)
SYS(sys_chown, 3)
SYS(sys_getcwd, 2)
--- 224,229 ----
SYS(sys_rt_sigqueueinfo, 3)
SYS(sys_rt_sigsuspend, 0)
! SYS(sys_pread_args, 5) /* 200 */
! SYS(sys_pwrite_args, 5)
SYS(sys_chown, 3)
SYS(sys_getcwd, 2)
|