Commit 6af83b78 authored by Jakub Jelínek's avatar Jakub Jelínek Committed by David S. Miller

[SPARC]: Add MQ syscall support.

parent e1d642ef
...@@ -38,7 +38,7 @@ ...@@ -38,7 +38,7 @@
#define curptr g6 #define curptr g6
#define NR_SYSCALLS 273 /* Each OS is different... */ #define NR_SYSCALLS 283 /* Each OS is different... */
/* These are just handy. */ /* These are just handy. */
#define _SV save %sp, -STACKFRAME_SZ, %sp #define _SV save %sp, -STACKFRAME_SZ, %sp
......
...@@ -73,7 +73,9 @@ sys_call_table: ...@@ -73,7 +73,9 @@ sys_call_table:
/*255*/ .long sys_nis_syscall, sys_clock_settime, sys_clock_gettime, sys_clock_getres, sys_clock_nanosleep /*255*/ .long sys_nis_syscall, sys_clock_settime, sys_clock_gettime, sys_clock_getres, sys_clock_nanosleep
/*260*/ .long sys_sched_getaffinity, sys_sched_setaffinity, sys_timer_settime, sys_timer_gettime, sys_timer_getoverrun /*260*/ .long sys_sched_getaffinity, sys_sched_setaffinity, sys_timer_settime, sys_timer_gettime, sys_timer_getoverrun
/*265*/ .long sys_timer_delete, sys_timer_create, sys_nis_syscall, sys_io_setup, sys_io_destroy /*265*/ .long sys_timer_delete, sys_timer_create, sys_nis_syscall, sys_io_setup, sys_io_destroy
/*270*/ .long sys_io_submit, sys_io_cancel, sys_io_getevents, sys_nis_syscall /*270*/ .long sys_io_submit, sys_io_cancel, sys_io_getevents, sys_mq_open, sys_mq_unlink
/*275*/ .long sys_mq_timedsend, sys_mq_timedreceive, sys_mq_notify, sys_mq_getsetattr, sys_ni_syscall
/*280*/ .long sys_ni_syscall, sys_ni_syscall, sys_ni_syscall
#ifdef CONFIG_SUNOS_EMUL #ifdef CONFIG_SUNOS_EMUL
/* Now the SunOS syscall table. */ /* Now the SunOS syscall table. */
...@@ -175,6 +177,9 @@ sunos_sys_table: ...@@ -175,6 +177,9 @@ sunos_sys_table:
.long sunos_nosys, sunos_nosys, sunos_nosys .long sunos_nosys, sunos_nosys, sunos_nosys
.long sunos_nosys .long sunos_nosys
/*270*/ .long sunos_nosys, sunos_nosys, sunos_nosys /*270*/ .long sunos_nosys, sunos_nosys, sunos_nosys
.long sunos_nosys, sunos_nosys, sunos_nosys
.long sunos_nosys, sunos_nosys, sunos_nosys
.long sunos_nosys .long sunos_nosys
/*280*/ .long sunos_nosys, sunos_nosys, sunos_nosys
#endif #endif
...@@ -26,7 +26,7 @@ ...@@ -26,7 +26,7 @@
#define curptr g6 #define curptr g6
#define NR_SYSCALLS 273 /* Each OS is different... */ #define NR_SYSCALLS 283 /* Each OS is different... */
.text .text
.align 32 .align 32
......
...@@ -68,6 +68,17 @@ sys32_mmap2: ...@@ -68,6 +68,17 @@ sys32_mmap2:
jmpl %g1 + %lo(sys_mmap), %g0 jmpl %g1 + %lo(sys_mmap), %g0
sllx %o5, 12, %o5 sllx %o5, 12, %o5
.globl sys32_mq_timedsend
sys32_mq_timedsend:
sethi %hi(compat_sys_mq_timedsend), %g1
jmpl %g1 + %lo(compat_sys_mq_timedsend), %g0
srl %o4, 0, %o4
.globl sys32_mq_timedreceive
sys32_mq_timedreceive:
sethi %hi(compat_sys_mq_timedreceive), %g1
jmpl %g1 + %lo(compat_sys_mq_timedreceive), %g0
srl %o4, 0, %o4
.align 32 .align 32
.globl sys32_socketcall .globl sys32_socketcall
sys32_socketcall: /* %o0=call, %o1=args */ sys32_socketcall: /* %o0=call, %o1=args */
......
...@@ -73,7 +73,9 @@ sys_call_table32: ...@@ -73,7 +73,9 @@ sys_call_table32:
.word sys_ni_syscall, compat_clock_settime, compat_clock_gettime, compat_clock_getres, compat_clock_nanosleep .word sys_ni_syscall, compat_clock_settime, compat_clock_gettime, compat_clock_getres, compat_clock_nanosleep
/*260*/ .word compat_sys_sched_getaffinity, compat_sys_sched_setaffinity, compat_timer_settime, compat_timer_gettime, sys_timer_getoverrun /*260*/ .word compat_sys_sched_getaffinity, compat_sys_sched_setaffinity, compat_timer_settime, compat_timer_gettime, sys_timer_getoverrun
.word sys_timer_delete, sys32_timer_create, sys_ni_syscall, compat_sys_io_setup, sys_io_destroy .word sys_timer_delete, sys32_timer_create, sys_ni_syscall, compat_sys_io_setup, sys_io_destroy
/*270*/ .word compat_sys_io_submit, sys_io_cancel, compat_sys_io_getevents, sys_ni_syscall /*270*/ .word compat_sys_io_submit, sys_io_cancel, compat_sys_io_getevents, compat_sys_mq_open, sys_mq_unlink
.word sys32_mq_timedsend, sys32_mq_timedreceive, compat_sys_mq_notify, compat_sys_mq_getsetattr, sys_ni_syscall
/*280*/ .word sys_ni_syscall, sys_ni_syscall, sys_ni_syscall
/* Now the 64-bit native Linux syscall table. */ /* Now the 64-bit native Linux syscall table. */
...@@ -135,7 +137,9 @@ sys_call_table: ...@@ -135,7 +137,9 @@ sys_call_table:
.word sys_ni_syscall, sys_clock_settime, sys_clock_gettime, sys_clock_getres, sys_clock_nanosleep .word sys_ni_syscall, sys_clock_settime, sys_clock_gettime, sys_clock_getres, sys_clock_nanosleep
/*260*/ .word sys_sched_getaffinity, sys_sched_setaffinity, sys_timer_settime, sys_timer_gettime, sys_timer_getoverrun /*260*/ .word sys_sched_getaffinity, sys_sched_setaffinity, sys_timer_settime, sys_timer_gettime, sys_timer_getoverrun
.word sys_timer_delete, sys_timer_create, sys_ni_syscall, sys_io_setup, sys_io_destroy .word sys_timer_delete, sys_timer_create, sys_ni_syscall, sys_io_setup, sys_io_destroy
/*270*/ .word sys_io_submit, sys_io_cancel, sys_io_getevents, sys_ni_syscall /*270*/ .word sys_io_submit, sys_io_cancel, sys_io_getevents, sys_mq_open, sys_mq_unlink
.word sys_mq_timedsend, sys_mq_timedreceive, sys_mq_notify, sys_mq_getsetattr, sys_ni_syscall
/*280*/ .word sys_ni_syscall, sys_ni_syscall, sys_ni_syscall
#if defined(CONFIG_SUNOS_EMUL) || defined(CONFIG_SOLARIS_EMUL) || \ #if defined(CONFIG_SUNOS_EMUL) || defined(CONFIG_SOLARIS_EMUL) || \
defined(CONFIG_SOLARIS_EMUL_MODULE) defined(CONFIG_SOLARIS_EMUL_MODULE)
...@@ -237,5 +241,8 @@ sunos_sys_table: ...@@ -237,5 +241,8 @@ sunos_sys_table:
.word sunos_nosys, sunos_nosys, sunos_nosys .word sunos_nosys, sunos_nosys, sunos_nosys
.word sunos_nosys, sunos_nosys, sunos_nosys .word sunos_nosys, sunos_nosys, sunos_nosys
.word sunos_nosys, sunos_nosys, sunos_nosys .word sunos_nosys, sunos_nosys, sunos_nosys
.word sunos_nosys, sunos_nosys, sunos_nosys
.word sunos_nosys, sunos_nosys, sunos_nosys
.word sunos_nosys, sunos_nosys, sunos_nosys
#endif #endif
...@@ -289,10 +289,17 @@ ...@@ -289,10 +289,17 @@
#define __NR_io_submit 270 #define __NR_io_submit 270
#define __NR_io_cancel 271 #define __NR_io_cancel 271
#define __NR_io_getevents 272 #define __NR_io_getevents 272
/* WARNING: You MAY NOT add syscall numbers larger than 272, since #define __NR_mq_open 273
#define __NR_mq_unlink (__NR_mq_open+1)
#define __NR_mq_timedsend (__NR_mq_open+2)
#define __NR_mq_timedreceive (__NR_mq_open+3)
#define __NR_mq_notify (__NR_mq_open+4)
#define __NR_mq_getsetattr (__NR_mq_open+5)
/* WARNING: You MAY NOT add syscall numbers larger than 282, since
* all of the syscall tables in the Sparc kernel are * all of the syscall tables in the Sparc kernel are
* sized to have 273 entries (starting at zero). Therefore * sized to have 283 entries (starting at zero). Therefore
* find a free slot in the 0-272 range. * find a free slot in the 0-282 range.
*/ */
#define _syscall0(type,name) \ #define _syscall0(type,name) \
......
...@@ -291,10 +291,16 @@ ...@@ -291,10 +291,16 @@
#define __NR_io_submit 270 #define __NR_io_submit 270
#define __NR_io_cancel 271 #define __NR_io_cancel 271
#define __NR_io_getevents 272 #define __NR_io_getevents 272
/* WARNING: You MAY NOT add syscall numbers larger than 272, since #define __NR_mq_open 273
#define __NR_mq_unlink (__NR_mq_open+1)
#define __NR_mq_timedsend (__NR_mq_open+2)
#define __NR_mq_timedreceive (__NR_mq_open+3)
#define __NR_mq_notify (__NR_mq_open+4)
#define __NR_mq_getsetattr (__NR_mq_open+5)
/* WARNING: You MAY NOT add syscall numbers larger than 282, since
* all of the syscall tables in the Sparc kernel are * all of the syscall tables in the Sparc kernel are
* sized to have 273 entries (starting at zero). Therefore * sized to have 283 entries (starting at zero). Therefore
* find a free slot in the 0-272 range. * find a free slot in the 0-282 range.
*/ */
#define _syscall0(type,name) \ #define _syscall0(type,name) \
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment