/* Generated by ./xlat/gen.sh from ./xlat/ipccalls.in; do not edit. */
#if !(defined(SEMOP) || (defined(HAVE_DECL_SEMOP) && HAVE_DECL_SEMOP))
# define SEMOP 1
#endif
#if !(defined(SEMGET) || (defined(HAVE_DECL_SEMGET) && HAVE_DECL_SEMGET))
# define SEMGET 2
#endif
#if !(defined(SEMCTL) || (defined(HAVE_DECL_SEMCTL) && HAVE_DECL_SEMCTL))
# define SEMCTL 3
#endif
#if !(defined(SEMTIMEDOP) || (defined(HAVE_DECL_SEMTIMEDOP) && HAVE_DECL_SEMTIMEDOP))
# define SEMTIMEDOP 4
#endif
#if !(defined(MSGSND) || (defined(HAVE_DECL_MSGSND) && HAVE_DECL_MSGSND))
# define MSGSND 11
#endif
#if !(defined(MSGRCV) || (defined(HAVE_DECL_MSGRCV) && HAVE_DECL_MSGRCV))
# define MSGRCV 12
#endif
#if !(defined(MSGGET) || (defined(HAVE_DECL_MSGGET) && HAVE_DECL_MSGGET))
# define MSGGET 13
#endif
#if !(defined(MSGCTL) || (defined(HAVE_DECL_MSGCTL) && HAVE_DECL_MSGCTL))
# define MSGCTL 14
#endif
#if !(defined(SHMAT) || (defined(HAVE_DECL_SHMAT) && HAVE_DECL_SHMAT))
# define SHMAT 21
#endif
#if !(defined(SHMDT) || (defined(HAVE_DECL_SHMDT) && HAVE_DECL_SHMDT))
# define SHMDT 22
#endif
#if !(defined(SHMGET) || (defined(HAVE_DECL_SHMGET) && HAVE_DECL_SHMGET))
# define SHMGET 23
#endif
#if !(defined(SHMCTL) || (defined(HAVE_DECL_SHMCTL) && HAVE_DECL_SHMCTL))
# define SHMCTL 24
#endif

#ifdef IN_MPERS

# error static const struct xlat ipccalls in mpers mode

#else

static
const struct xlat ipccalls[] = {
 XLAT(SEMOP),
 XLAT(SEMGET),
 XLAT(SEMCTL),
 XLAT(SEMTIMEDOP),
 XLAT(MSGSND),
 XLAT(MSGRCV),
 XLAT(MSGGET),
 XLAT(MSGCTL),
 XLAT(SHMAT),
 XLAT(SHMDT),
 XLAT(SHMGET),
 XLAT(SHMCTL),
 XLAT_END
};

#endif /* !IN_MPERS */
