diff options
author | Jarkko Hietaniemi <jhi@iki.fi> | 1999-04-13 10:21:33 +0000 |
---|---|---|
committer | Jarkko Hietaniemi <jhi@iki.fi> | 1999-04-13 10:21:33 +0000 |
commit | 39398f3f0ecd7e1d0d9f68b83052e76ea7150b75 (patch) | |
tree | c3b4cc1e1f6ed0afc23f17572ea238ca4c261d97 /doio.c | |
parent | d90129d62fd2d94824998b5a6e040be6d7c290fd (diff) | |
download | perl-39398f3f0ecd7e1d0d9f68b83052e76ea7150b75.tar.gz |
Croak if no known ways to semctl() (don't assume union semun).
p4raw-id: //depot/cfgperl@3256
Diffstat (limited to 'doio.c')
-rw-r--r-- | doio.c | 8 |
1 files changed, 8 insertions, 0 deletions
@@ -1499,6 +1499,7 @@ do_ipcctl(I32 optype, SV **mark, SV **sp) #endif #ifdef HAS_SEM case OP_SEMCTL: +#ifdef Semctl if (cmd == IPC_STAT || cmd == IPC_SET) infosize = sizeof(struct semid_ds); else if (cmd == GETALL || cmd == SETALL) @@ -1514,6 +1515,9 @@ do_ipcctl(I32 optype, SV **mark, SV **sp) /* "short" is technically wrong but much more portable than guessing about u_?short(_t)? */ } +#else + croak("%s not implemented", PL_op_desc[optype]); +#endif break; #endif #if !defined(HAS_MSG) || !defined(HAS_SEM) || !defined(HAS_SHM) @@ -1555,10 +1559,14 @@ do_ipcctl(I32 optype, SV **mark, SV **sp) #endif #ifdef HAS_SEM case OP_SEMCTL: { +#ifdef Semctl union semun unsemds; unsemds.buf = (struct semid_ds *)a; ret = Semctl(id, n, cmd, unsemds); +#else + croak("%s not implemented", PL_op_desc[optype]); +#endif } break; #endif |