OSDN Git Service

* msg.cc (msgctl): Raise SIGSYS if call not available.
authorcorinna <corinna>
Thu, 20 Nov 2003 18:09:44 +0000 (18:09 +0000)
committercorinna <corinna>
Thu, 20 Nov 2003 18:09:44 +0000 (18:09 +0000)
(msgget): Ditto.
(msgrcv): Ditto.
(msgsnd): Ditto.
* sem.cc (semctl): Ditto.
(semget): Ditto.
(semop): Ditto.
* shm.cc (shmat): Ditto.
(shmctl): Ditto.
(shmget): Ditto.
(shmdt): Ditto.

winsup/cygwin/ChangeLog
winsup/cygwin/msg.cc
winsup/cygwin/sem.cc
winsup/cygwin/shm.cc

index 3adbbf0..e070df0 100644 (file)
@@ -1,3 +1,17 @@
+2003-11-20  Corinna Vinschen  <corinna@vinschen.de>
+
+       * msg.cc (msgctl): Raise SIGSYS if call not available.
+       (msgget): Ditto.
+       (msgrcv): Ditto.
+       (msgsnd): Ditto.
+       * sem.cc (semctl): Ditto.
+       (semget): Ditto.
+       (semop): Ditto.
+       * shm.cc (shmat): Ditto.
+       (shmctl): Ditto.
+       (shmget): Ditto.
+       (shmdt): Ditto.
+
 2003-11-19  Corinna Vinschen  <corinna@vinschen.de>
 
        * cygserver.h (client_request::request_code_t): Add
index 368708b..b300a13 100644 (file)
@@ -136,11 +136,14 @@ msgctl (int msqid, int cmd, struct msqid_ds *buf)
     {
       syscall_printf ("-1 [%d] = msgctl ()", request.error_code ());
       set_errno (request.error_code ());
+      if (request.error_code () == ENOSYS)
+        raise (SIGSYS);
       return -1;
     }
   return request.retval ();
 #else
   set_errno (ENOSYS);
+  raise (SIGSYS);
   return -1;
 #endif
 }
@@ -156,11 +159,14 @@ msgget (key_t key, int msgflg)
     {
       syscall_printf ("-1 [%d] = msgget ()", request.error_code ());
       set_errno (request.error_code ());
+      if (request.error_code () == ENOSYS)
+        raise (SIGSYS);
       return -1;
     }
   return request.retval ();
 #else
   set_errno (ENOSYS);
+  raise (SIGSYS);
   return -1;
 #endif
 }
@@ -180,11 +186,14 @@ msgrcv (int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg)
     {
       syscall_printf ("-1 [%d] = msgrcv ()", request.error_code ());
       set_errno (request.error_code ());
+      if (request.error_code () == ENOSYS)
+        raise (SIGSYS);
       return -1;
     }
   return request.rcvval ();
 #else
   set_errno (ENOSYS);
+  raise (SIGSYS);
   return -1;
 #endif
 }
@@ -203,11 +212,14 @@ msgsnd (int msqid, const void *msgp, size_t msgsz, int msgflg)
     {
       syscall_printf ("-1 [%d] = msgsnd ()", request.error_code ());
       set_errno (request.error_code ());
+      if (request.error_code () == ENOSYS)
+        raise (SIGSYS);
       return -1;
     }
   return request.retval ();
 #else
   set_errno (ENOSYS);
+  raise (SIGSYS);
   return -1;
 #endif
 }
index a3085d1..dfe2890 100644 (file)
@@ -115,11 +115,14 @@ semctl (int semid, int semnum, int cmd, ...)
     {
       syscall_printf ("-1 [%d] = semctl ()", request.error_code ());
       set_errno (request.error_code ());
+      if (request.error_code () == ENOSYS)
+        raise (SIGSYS);
       return -1;
     }
   return request.retval ();
 #else
   set_errno (ENOSYS);
+  raise (SIGSYS);
   return -1;
 #endif
 }
@@ -136,11 +139,14 @@ semget (key_t key, int nsems, int semflg)
     {
       syscall_printf ("-1 [%d] = semctl ()", request.error_code ());
       set_errno (request.error_code ());
+      if (request.error_code () == ENOSYS)
+        raise (SIGSYS);
       return -1;
     }
   return request.retval ();
 #else
   set_errno (ENOSYS);
+  raise (SIGSYS);
   return -1;
 #endif
 }
@@ -159,11 +165,14 @@ semop (int semid, struct sembuf *sops, size_t nsops)
     {
       syscall_printf ("-1 [%d] = semctl ()", request.error_code ());
       set_errno (request.error_code ());
+      if (request.error_code () == ENOSYS)
+        raise (SIGSYS);
       return -1;
     }
   return request.retval ();
 #else
   set_errno (ENOSYS);
+  raise (SIGSYS);
   return -1;
 #endif
 }
index ef3248f..bec74ad 100644 (file)
@@ -204,6 +204,8 @@ shmat (int shmid, const void *shmaddr, int shmflg)
       UnmapViewOfFile (ptr);
       delete sph_entry;
       set_errno (request.error_code ());
+      if (request.error_code () == ENOSYS)
+        raise (SIGSYS);
       return NULL;
     }
   sph_entry->ptr = ptr;
@@ -214,6 +216,7 @@ shmat (int shmid, const void *shmaddr, int shmflg)
   return ptr;
 #else
   set_errno (ENOSYS);
+  raise (SIGSYS);
   return NULL;
 #endif
 }
@@ -252,6 +255,8 @@ shmctl (int shmid, int cmd, struct shmid_ds *buf)
     {
       syscall_printf ("-1 [%d] = shmctl ()", request.error_code ());
       set_errno (request.error_code ());
+      if (request.error_code () == ENOSYS)
+        raise (SIGSYS);
       return -1;
     }
   if (cmd == IPC_RMID)
@@ -273,6 +278,7 @@ shmctl (int shmid, int cmd, struct shmid_ds *buf)
   return request.retval ();
 #else
   set_errno (ENOSYS);
+  raise (SIGSYS);
   return -1;
 #endif
 }
@@ -288,6 +294,8 @@ shmdt (const void *shmaddr)
     {
       syscall_printf ("-1 [%d] = shmctl ()", request.error_code ());
       set_errno (request.error_code ());
+      if (request.error_code () == ENOSYS)
+        raise (SIGSYS);
       return -1;
     }
   shm_attached_list *sph_entry, *sph_next_entry;
@@ -306,6 +314,7 @@ shmdt (const void *shmaddr)
   return request.retval ();
 #else
   set_errno (ENOSYS);
+  raise (SIGSYS);
   return -1;
 #endif
 }
@@ -330,6 +339,8 @@ shmget (key_t key, size_t size, int shmflg)
       syscall_printf ("-1 [%d] = shmctl ()", request.error_code ());
       delete ssh_new_entry;
       set_errno (request.error_code ());
+      if (request.error_code () == ENOSYS)
+        raise (SIGSYS);
       return -1;
     }
   int shmid = request.retval ();       /* Shared mem ID */
@@ -357,6 +368,7 @@ shmget (key_t key, size_t size, int shmflg)
   return shmid;
 #else
   set_errno (ENOSYS);
+  raise (SIGSYS);
   return -1;
 #endif
 }