mqueues: Mark syscalls as MPSAFE.
authorStathis Kamperis <beket@dragonflybsd.org>
Thu, 5 Nov 2009 14:12:38 +0000 (16:12 +0200)
committerStathis Kamperis <beket@dragonflybsd.org>
Thu, 5 Nov 2009 18:05:46 +0000 (20:05 +0200)
Partially-tested-by: Saifi Khan and YONETANI Tomokazu.
sys/kern/init_sysent.c
sys/kern/syscalls.master

index f9eda3d..095bb96 100644 (file)
@@ -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 */
 };
index 2184266..e6fcc3f 100644 (file)
 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); }