#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)
/* "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)
#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
# define Semctl(id, num, cmd, semun) semctl(id, num, cmd, semun.buf)
# endif
# endif
-# ifndef Semctl /* Place our bets on the semun horse. */
-# define Semctl(id, num, cmd, semun) semctl(id, num, cmd, semun)
-# endif
#endif
/* Mention