From: Stathis Kamperis Date: Thu, 5 Nov 2009 14:12:38 +0000 (+0200) Subject: mqueues: Mark syscalls as MPSAFE. X-Git-Tag: v2.7.1~392 X-Git-Url: https://gitweb.dragonflybsd.org/dragonfly.git/commitdiff_plain/4f7b988af39c403e9dd7994eaf1d8343efe0cde6 mqueues: Mark syscalls as MPSAFE. Partially-tested-by: Saifi Khan and YONETANI Tomokazu. --- diff --git a/sys/kern/init_sysent.c b/sys/kern/init_sysent.c index f9eda3dc21..095bb96f92 100644 --- a/sys/kern/init_sysent.c +++ b/sys/kern/init_sysent.c @@ -543,14 +543,14 @@ struct sysent sysent[] = { { AS(fchownat_args), (sy_call_t *)sys_fchownat }, /* 507 = fchownat */ { AS(unlinkat_args), (sy_call_t *)sys_unlinkat }, /* 508 = unlinkat */ { AS(faccessat_args), (sy_call_t *)sys_faccessat }, /* 509 = faccessat */ - { AS(mq_open_args), (sy_call_t *)sys_mq_open }, /* 510 = mq_open */ - { AS(mq_close_args), (sy_call_t *)sys_mq_close }, /* 511 = mq_close */ - { AS(mq_unlink_args), (sy_call_t *)sys_mq_unlink }, /* 512 = mq_unlink */ - { AS(mq_getattr_args), (sy_call_t *)sys_mq_getattr }, /* 513 = mq_getattr */ - { AS(mq_setattr_args), (sy_call_t *)sys_mq_setattr }, /* 514 = mq_setattr */ - { AS(mq_notify_args), (sy_call_t *)sys_mq_notify }, /* 515 = mq_notify */ - { AS(mq_send_args), (sy_call_t *)sys_mq_send }, /* 516 = mq_send */ - { AS(mq_receive_args), (sy_call_t *)sys_mq_receive }, /* 517 = mq_receive */ - { AS(mq_timedsend_args), (sy_call_t *)sys_mq_timedsend }, /* 518 = mq_timedsend */ - { AS(mq_timedreceive_args), (sy_call_t *)sys_mq_timedreceive }, /* 519 = mq_timedreceive */ + { SYF_MPSAFE | AS(mq_open_args), (sy_call_t *)sys_mq_open }, /* 510 = mq_open */ + { SYF_MPSAFE | AS(mq_close_args), (sy_call_t *)sys_mq_close }, /* 511 = mq_close */ + { SYF_MPSAFE | AS(mq_unlink_args), (sy_call_t *)sys_mq_unlink }, /* 512 = mq_unlink */ + { SYF_MPSAFE | AS(mq_getattr_args), (sy_call_t *)sys_mq_getattr }, /* 513 = mq_getattr */ + { SYF_MPSAFE | AS(mq_setattr_args), (sy_call_t *)sys_mq_setattr }, /* 514 = mq_setattr */ + { SYF_MPSAFE | AS(mq_notify_args), (sy_call_t *)sys_mq_notify }, /* 515 = mq_notify */ + { SYF_MPSAFE | AS(mq_send_args), (sy_call_t *)sys_mq_send }, /* 516 = mq_send */ + { SYF_MPSAFE | AS(mq_receive_args), (sy_call_t *)sys_mq_receive }, /* 517 = mq_receive */ + { SYF_MPSAFE | AS(mq_timedsend_args), (sy_call_t *)sys_mq_timedsend }, /* 518 = mq_timedsend */ + { SYF_MPSAFE | AS(mq_timedreceive_args), (sy_call_t *)sys_mq_timedreceive }, /* 519 = mq_timedreceive */ }; diff --git a/sys/kern/syscalls.master b/sys/kern/syscalls.master index 2184266948..e6fcc3fa5e 100644 --- a/sys/kern/syscalls.master +++ b/sys/kern/syscalls.master @@ -702,26 +702,26 @@ 509 STD POSIX { int faccessat(int fd, char *path, int amode, \ int flags); } -; Revisit later the MPSAFE-ness of the following calls -510 STD POSIX { mqd_t mq_open(const char * name, int oflag, \ - mode_t mode, struct mq_attr *attr); } -511 STD POSIX { int mq_close(mqd_t mqdes); } -512 STD POSIX { int mq_unlink(const char *name); } -513 STD POSIX { int mq_getattr(mqd_t mqdes, \ - struct mq_attr *mqstat); } -514 STD POSIX { int mq_setattr(mqd_t mqdes, \ - const struct mq_attr *mqstat, \ - struct mq_attr *omqstat); } -515 STD POSIX { int mq_notify(mqd_t mqdes, \ - const struct sigevent *notification); } -516 STD POSIX { int mq_send(mqd_t mqdes, const char *msg_ptr, \ - size_t msg_len, unsigned msg_prio); } -517 STD POSIX { ssize_t mq_receive(mqd_t mqdes, char *msg_ptr, \ - size_t msg_len, unsigned *msg_prio); } -518 STD POSIX { int mq_timedsend(mqd_t mqdes, \ - const char *msg_ptr, size_t msg_len, \ - unsigned msg_prio, \ - const struct timespec *abs_timeout); } -519 STD POSIX { ssize_t mq_timedreceive(mqd_t mqdes, \ - char *msg_ptr, size_t msg_len, unsigned *msg_prio, \ - const struct timespec *abs_timeout); } +; POSIX message queues system calls +510 MPSAFE STD POSIX { mqd_t mq_open(const char * name, int oflag, \ + mode_t mode, struct mq_attr *attr); } +511 MPSAFE STD POSIX { int mq_close(mqd_t mqdes); } +512 MPSAFE STD POSIX { int mq_unlink(const char *name); } +513 MPSAFE STD POSIX { int mq_getattr(mqd_t mqdes, \ + struct mq_attr *mqstat); } +514 MPSAFE STD POSIX { int mq_setattr(mqd_t mqdes, \ + const struct mq_attr *mqstat, \ + struct mq_attr *omqstat); } +515 MPSAFE STD POSIX { int mq_notify(mqd_t mqdes, \ + const struct sigevent *notification); } +516 MPSAFE STD POSIX { int mq_send(mqd_t mqdes, const char *msg_ptr, \ + size_t msg_len, unsigned msg_prio); } +517 MPSAFE STD POSIX { ssize_t mq_receive(mqd_t mqdes, char *msg_ptr, \ + size_t msg_len, unsigned *msg_prio); } +518 MPSAFE STD POSIX { int mq_timedsend(mqd_t mqdes, \ + const char *msg_ptr, size_t msg_len, \ + unsigned msg_prio, \ + const struct timespec *abs_timeout); } +519 MPSAFE STD POSIX { ssize_t mq_timedreceive(mqd_t mqdes, \ + char *msg_ptr, size_t msg_len, unsigned *msg_prio, \ + const struct timespec *abs_timeout); }