Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCorinna Vinschen <corinna@vinschen.de>2003-11-20 21:09:44 +0300
committerCorinna Vinschen <corinna@vinschen.de>2003-11-20 21:09:44 +0300
commitbd0e35213d635df40a1c6f8b2c91710bc67c6a3e (patch)
treeee4338a42b3a3f864b4fa825321aa5268dbb7469 /winsup/cygwin
parent72f11cac6559b9ba3637d3e21ca15f9fa865a19c (diff)
* 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.
Diffstat (limited to 'winsup/cygwin')
-rw-r--r--winsup/cygwin/ChangeLog14
-rw-r--r--winsup/cygwin/msg.cc12
-rw-r--r--winsup/cygwin/sem.cc9
-rw-r--r--winsup/cygwin/shm.cc12
4 files changed, 47 insertions, 0 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog
index 3adbbf015..e070df011 100644
--- a/winsup/cygwin/ChangeLog
+++ b/winsup/cygwin/ChangeLog
@@ -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
diff --git a/winsup/cygwin/msg.cc b/winsup/cygwin/msg.cc
index 368708b1d..b300a133f 100644
--- a/winsup/cygwin/msg.cc
+++ b/winsup/cygwin/msg.cc
@@ -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
}
diff --git a/winsup/cygwin/sem.cc b/winsup/cygwin/sem.cc
index a3085d160..dfe28908f 100644
--- a/winsup/cygwin/sem.cc
+++ b/winsup/cygwin/sem.cc
@@ -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
}
diff --git a/winsup/cygwin/shm.cc b/winsup/cygwin/shm.cc
index ef3248f4f..bec74ad03 100644
--- a/winsup/cygwin/shm.cc
+++ b/winsup/cygwin/shm.cc
@@ -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
}