ip_mreq
ipc
ipc_msg
+ipc_msg-Xabbrev
+ipc_msg-Xraw
+ipc_msg-Xverbose
ipc_msgbuf
+ipc_msgbuf-Xabbrev
+ipc_msgbuf-Xraw
+ipc_msgbuf-Xverbose
ipc_sem
+ipc_sem-Xabbrev
+ipc_sem-Xraw
+ipc_sem-Xverbose
ipc_shm
+ipc_shm-Xabbrev
+ipc_shm-Xraw
+ipc_shm-Xverbose
is_linux_mips_n64
kcmp
kcmp-y
ip_mreq -e trace=setsockopt
ipc -a19
ipc_msg +ipc.sh -a26
+ipc_msg-Xabbrev +ipc.sh -Xabbrev -a26
+ipc_msg-Xraw +ipc.sh -Xraw -a16
+ipc_msg-Xverbose +ipc.sh -Xverbose -a34
+ipc_msgbuf-Xabbrev +ipc_msgbuf.test -Xabbrev
+ipc_msgbuf-Xraw +ipc_msgbuf.test -Xraw -a22
+ipc_msgbuf-Xverbose +ipc_msgbuf.test -Xverbose
ipc_sem +ipc.sh -a29
+ipc_sem-Xabbrev +ipc.sh -Xabbrev -a29
+ipc_sem-Xraw +ipc.sh -Xraw -a19
+ipc_sem-Xverbose +ipc.sh -Xverbose -a36
ipc_shm +ipc.sh -a29
+ipc_shm-Xabbrev +ipc.sh -Xabbrev -a29
+ipc_shm-Xraw +ipc.sh -Xraw -a19
+ipc_shm-Xverbose +ipc.sh -Xverbose -a36
kcmp -a22
kcmp-y -a22 -y -e trace=kcmp
kern_features -a16
. "${srcdir=.}/init.sh"
run_prog > /dev/null
-run_strace -eipc $args > "$EXP"
+run_strace -eipc "$@" $args > "$EXP"
match_grep "$LOG" "$EXP"
exit 0
--- /dev/null
+#include "ipc_msg.c"
--- /dev/null
+#define XLAT_RAW 1
+#include "ipc_msg.c"
--- /dev/null
+#define XLAT_VERBOSE 1
+#include "ipc_msg.c"
# define TEST_MSGCTL_BOGUS_ADDR 1
#endif
+#if XLAT_RAW
+# define str_ipc_excl_nowait "0xface1c00"
+# define str_ipc_private "0"
+# define str_ipc_rmid "0"
+# define str_ipc_set "0x1"
+# define str_ipc_stat "0x2"
+# define str_msg_stat "0xb"
+# define str_msg_info "0xc"
+# define str_ipc_64 "0x100"
+# define str_bogus_cmd "0xdeadbeef"
+#elif XLAT_VERBOSE
+# define str_ipc_excl_nowait \
+ "0xface1c00 /\\* IPC_EXCL\\|IPC_NOWAIT\\|0xface1000 \\*/"
+# define str_ipc_private "0 /\\* IPC_PRIVATE \\*/"
+# define str_ipc_rmid "0 /\\* IPC_RMID \\*/"
+# define str_ipc_set "0x1 /\\* IPC_SET \\*/"
+# define str_ipc_stat "0x2 /\\* IPC_STAT \\*/"
+# define str_msg_stat "0xb /\\* MSG_STAT \\*/"
+# define str_msg_info "0xc /\\* MSG_INFO \\*/"
+# define str_ipc_64 "0x100 /\\* IPC_64 \\*/"
+# define str_bogus_cmd "0xdeadbeef /\\* MSG_\\?\\?\\? \\*/"
+#else
+# define str_ipc_excl_nowait "IPC_EXCL\\|IPC_NOWAIT\\|0xface1000"
+# define str_ipc_private "IPC_PRIVATE"
+# define str_ipc_rmid "IPC_RMID"
+# define str_ipc_set "IPC_SET"
+# define str_ipc_stat "IPC_STAT"
+# define str_msg_stat "MSG_STAT"
+# define str_msg_info "MSG_INFO"
+# define str_ipc_64 "IPC_64"
+# define str_bogus_cmd "0xdeadbeef /\\* MSG_\\?\\?\\? \\*/"
+#endif
+
static int id = -1;
static void
cleanup(void)
{
msgctl(id, IPC_RMID, NULL);
- printf("msgctl\\(%d, (IPC_64\\|)?IPC_RMID, NULL\\) = 0\n", id);
+ printf("msgctl\\(%d, (%s\\|)?%s, NULL\\) += 0\n",
+ id, str_ipc_64, str_ipc_rmid);
id = -1;
}
{
static const key_t private_key =
(key_t) (0xffffffff00000000ULL | IPC_PRIVATE);
- static const key_t bogus_key = (key_t) 0xeca86420fdb97531ULL;
+ static const key_t bogus_key = (key_t) 0xeca86420fdb9f531ULL;
static const int bogus_msgid = 0xfdb97531;
static const int bogus_cmd = 0xdeadbeef;
#if TEST_MSGCTL_BOGUS_ADDR
struct msqid_ds ds;
rc = msgget(bogus_key, bogus_flags);
- printf("msgget\\(%#llx, %s%s%s%#x\\|%#04o\\) = %s\n",
+ printf("msgget\\(%#llx, %s\\|%#04o\\) = %s\n",
zero_extend_signed_to_ull(bogus_key),
- IPC_CREAT & bogus_flags ? "IPC_CREAT\\|" : "",
- IPC_EXCL & bogus_flags ? "IPC_EXCL\\|" : "",
- IPC_NOWAIT & bogus_flags ? "IPC_NOWAIT\\|" : "",
- bogus_flags & ~(0777 | IPC_CREAT | IPC_EXCL | IPC_NOWAIT),
+ str_ipc_excl_nowait,
bogus_flags & 0777, sprintrc_grep(rc));
id = msgget(private_key, 0600);
if (id < 0)
perror_msg_and_skip("msgget");
- printf("msgget\\(IPC_PRIVATE, 0600\\) = %d\n", id);
+ printf("msgget\\(%s, 0600\\) = %d\n", str_ipc_private, id);
atexit(cleanup);
rc = msgctl(bogus_msgid, bogus_cmd, NULL);
- printf("msgctl\\(%d, (IPC_64\\|)?%#x /\\* MSG_\\?\\?\\? \\*/, NULL\\)"
- " = %s\n", bogus_msgid, bogus_cmd, sprintrc_grep(rc));
+ printf("msgctl\\(%d, (%s\\|)?%s, NULL\\) = %s\n",
+ bogus_msgid, str_ipc_64, str_bogus_cmd, sprintrc_grep(rc));
#if TEST_MSGCTL_BOGUS_ADDR
rc = msgctl(bogus_msgid, IPC_SET, bogus_addr);
- printf("msgctl\\(%d, (IPC_64\\|)?IPC_SET, %p\\) = %s\n",
- bogus_msgid, bogus_addr, sprintrc_grep(rc));
+ printf("msgctl\\(%d, (%s\\|)?%s, %p\\) = %s\n",
+ bogus_msgid, str_ipc_64, str_ipc_set, bogus_addr,
+ sprintrc_grep(rc));
#endif
if (msgctl(id, IPC_STAT, &ds))
perror_msg_and_skip("msgctl IPC_STAT");
- printf("msgctl\\(%d, (IPC_64\\|)?IPC_STAT, \\{msg_perm=\\{uid=%u"
+ printf("msgctl\\(%d, (%s\\|)?%s, \\{msg_perm=\\{uid=%u"
", gid=%u, mode=%#o, key=%u, cuid=%u, cgid=%u\\}, msg_stime=%u"
", msg_rtime=%u, msg_ctime=%u, msg_qnum=%u, msg_qbytes=%u"
", msg_lspid=%u, msg_lrpid=%u\\}\\) = 0\n",
- id, (unsigned) ds.msg_perm.uid, (unsigned) ds.msg_perm.gid,
+ id, str_ipc_64, str_ipc_stat,
+ (unsigned) ds.msg_perm.uid, (unsigned) ds.msg_perm.gid,
(unsigned) ds.msg_perm.mode, (unsigned) ds.msg_perm.__key,
(unsigned) ds.msg_perm.cuid, (unsigned) ds.msg_perm.cgid,
(unsigned) ds.msg_stime, (unsigned) ds.msg_rtime,
if (msgctl(id, IPC_SET, &ds))
perror_msg_and_skip("msgctl IPC_SET");
- printf("msgctl\\(%d, (IPC_64\\|)?IPC_SET, \\{msg_perm=\\{uid=%u"
+ printf("msgctl\\(%d, (%s\\|)?%s, \\{msg_perm=\\{uid=%u"
", gid=%u, mode=%#o\\}, ...\\}\\) = 0\n",
- id, (unsigned) ds.msg_perm.uid, (unsigned) ds.msg_perm.gid,
- (unsigned) ds.msg_perm.mode);
+ id, str_ipc_64, str_ipc_set, (unsigned) ds.msg_perm.uid,
+ (unsigned) ds.msg_perm.gid, (unsigned) ds.msg_perm.mode);
rc = msgctl(0, MSG_INFO, &ds);
- printf("msgctl\\(0, (IPC_64\\|)?MSG_INFO, %p\\) = %s\n",
- &ds, sprintrc_grep(rc));
+ printf("msgctl\\(0, (%s\\|)?%s, %p\\) = %s\n",
+ str_ipc_64, str_msg_info, &ds, sprintrc_grep(rc));
rc = msgctl(id, MSG_STAT, &ds);
- printf("msgctl\\(%d, (IPC_64\\|)?MSG_STAT, %p\\) = %s\n",
- id, &ds, sprintrc_grep(rc));
+ printf("msgctl\\(%d, (%s\\|)?%s, %p\\) = %s\n",
+ id, str_ipc_64, str_msg_stat, &ds, sprintrc_grep(rc));
return 0;
}
--- /dev/null
+#include "ipc_msgbuf.c"
--- /dev/null
+#define XLAT_RAW 1
+#include "ipc_msgbuf.c"
--- /dev/null
+#define XLAT_VERBOSE 1
+#include "ipc_msgbuf.c"
static int msqid = -1;
+#if XLAT_RAW
+# define str_ipc_creat "0x200"
+# define str_ipc_private "0"
+# define str_ipc_rmid "0"
+# define str_ipc_64 "0x100"
+#elif XLAT_VERBOSE
+# define str_ipc_creat "0x200 /\\* IPC_CREAT \\*/"
+# define str_ipc_private "0 /\\* IPC_PRIVATE \\*/"
+# define str_ipc_rmid "0 /\\* IPC_RMID \\*/"
+# define str_ipc_64 "0x100 /\\* IPC_64 \\*/"
+#else
+# define str_ipc_creat "IPC_CREAT"
+# define str_ipc_private "IPC_PRIVATE"
+# define str_ipc_rmid "IPC_RMID"
+# define str_ipc_64 "IPC_64"
+#endif
+
static int
cleanup(void)
{
if (msqid != -1) {
int rc = msgctl(msqid, IPC_RMID, 0);
- printf("msgctl\\(%d, (IPC_64\\|)?IPC_RMID, NULL\\) = 0\n",
- msqid);
+ printf("msgctl\\(%d, (%s\\|)?%s, NULL\\) = 0\n",
+ msqid, str_ipc_64, str_ipc_rmid);
msqid = -1;
if (rc == -1)
return 77;
msqid = msgget(IPC_PRIVATE, IPC_CREAT | S_IRWXU);
if (msqid == -1)
perror_msg_and_skip("msgget");
- printf("msgget\\(IPC_PRIVATE, IPC_CREAT\\|0700\\) = %d\n", msqid);
+ printf("msgget\\(%s, %s\\|0700\\) = %d\n",
+ str_ipc_private, str_ipc_creat, msqid);
typedef void (*atexit_func)(void);
atexit((atexit_func) cleanup);
. "${srcdir=.}/init.sh"
run_prog
-run_strace -a31 -v -e msgget,msgsnd,msgrcv,msgctl $args > "$EXP"
+run_strace -a31 -v -e msgget,msgsnd,msgrcv,msgctl "$@" $args > "$EXP"
match_grep "$LOG" "$EXP"
exit 0
--- /dev/null
+#include "ipc_sem.c"
--- /dev/null
+#define XLAT_RAW 1
+#include "ipc_sem.c"
--- /dev/null
+#define XLAT_VERBOSE 1
+#include "ipc_sem.c"
#include "xlat.h"
#include "xlat/resource_flags.h"
+#if XLAT_RAW
+# define str_ipc_flags "0xface1e00"
+# define str_ipc_private "0"
+# define str_ipc_rmid "0"
+# define str_ipc_stat "0x2"
+# define str_sem_stat "0x12"
+# define str_sem_info "0x13"
+# define str_ipc_64 "0x100"
+# define str_bogus_cmd "0xdeadbeef"
+#elif XLAT_VERBOSE
+# define str_ipc_flags \
+ "0xface1e00 /\\* IPC_CREAT\\|IPC_EXCL\\|IPC_NOWAIT\\|0xface1000 \\*/"
+# define str_ipc_private "0 /\\* IPC_PRIVATE \\*/"
+# define str_ipc_rmid "0 /\\* IPC_RMID \\*/"
+# define str_ipc_stat "0x2 /\\* IPC_STAT \\*/"
+# define str_sem_stat "0x12 /\\* SEM_STAT \\*/"
+# define str_sem_info "0x13 /\\* SEM_INFO \\*/"
+# define str_ipc_64 "0x100 /\\* IPC_64 \\*/"
+# define str_bogus_cmd "0xdeadbeef /\\* SEM_\\?\\?\\? \\*/"
+#else
+# define str_ipc_flags "IPC_CREAT\\|IPC_EXCL\\|IPC_NOWAIT\\|0xface1000"
+# define str_ipc_private "IPC_PRIVATE"
+# define str_ipc_rmid "IPC_RMID"
+# define str_ipc_stat "IPC_STAT"
+# define str_sem_stat "SEM_STAT"
+# define str_sem_info "SEM_INFO"
+# define str_ipc_64 "IPC_64"
+# define str_bogus_cmd "0xdeadbeef /\\* SEM_\\?\\?\\? \\*/"
+#endif
+
union semun {
int val; /* Value for SETVAL */
struct semid_ds *buf; /* Buffer for IPC_STAT, IPC_SET */
cleanup(void)
{
semctl(id, 0, IPC_RMID, 0);
- printf("semctl\\(%d, 0, (IPC_64\\|)?IPC_RMID, \\[?NULL\\]?\\) = 0\n",
- id);
+ printf("semctl\\(%d, 0, (%s\\|)?%s, \\[?NULL\\]?\\) = 0\n",
+ id, str_ipc_64, str_ipc_rmid);
id = -1;
}
struct seminfo info;
rc = semget(bogus_key, bogus_size, bogus_flags);
- printf("semget\\(%#llx, %d, %s%s%s%#x\\|%#04o\\) = %s\n",
+ printf("semget\\(%#llx, %d, %s\\|%#04o\\) = %s\n",
zero_extend_signed_to_ull(bogus_key), bogus_size,
- IPC_CREAT & bogus_flags ? "IPC_CREAT\\|" : "",
- IPC_EXCL & bogus_flags ? "IPC_EXCL\\|" : "",
- IPC_NOWAIT & bogus_flags ? "IPC_NOWAIT\\|" : "",
- bogus_flags & ~(0777 | IPC_CREAT | IPC_EXCL | IPC_NOWAIT),
- bogus_flags & 0777, sprintrc_grep(rc));
+ str_ipc_flags, bogus_flags & 0777, sprintrc_grep(rc));
id = semget(private_key, 1, 0600);
if (id < 0)
perror_msg_and_skip("semget");
- printf("semget\\(IPC_PRIVATE, 1, 0600\\) = %d\n", id);
+ printf("semget\\(%s, 1, 0600\\) = %d\n", str_ipc_private, id);
atexit(cleanup);
rc = semctl(bogus_semid, bogus_semnum, bogus_cmd, bogus_arg);
#define SEMCTL_BOGUS_ARG_FMT "(%#lx|\\[(%#lx|NULL)\\]|NULL)"
- printf("semctl\\(%d, %d, (IPC_64\\|)?%#x /\\* SEM_\\?\\?\\? \\*/"
- ", " SEMCTL_BOGUS_ARG_FMT "\\) = %s\n",
- bogus_semid, bogus_semnum, bogus_cmd,
+ printf("semctl\\(%d, %d, (%s\\|)?%s, " SEMCTL_BOGUS_ARG_FMT "\\) = %s\n",
+ bogus_semid, bogus_semnum, str_ipc_64, str_bogus_cmd,
bogus_arg, bogus_arg, sprintrc_grep(rc));
un.buf = &ds;
if (semctl(id, 0, IPC_STAT, un))
perror_msg_and_skip("semctl IPC_STAT");
- printf("semctl\\(%d, 0, (IPC_64\\|)?IPC_STAT, \\[?%p\\]?\\) = 0\n",
- id, &ds);
+ printf("semctl\\(%d, 0, (%s\\|)?%s, \\[?%p\\]?\\) = 0\n",
+ id, str_ipc_64, str_ipc_stat, &ds);
un.__buf = &info;
rc = semctl(0, 0, SEM_INFO, un);
- printf("semctl\\(0, 0, (IPC_64\\|)?SEM_INFO, \\[?%p\\]?\\) = %s\n",
- &info, sprintrc_grep(rc));
+ printf("semctl\\(0, 0, (%s\\|)?%s, \\[?%p\\]?\\) = %s\n",
+ str_ipc_64, str_sem_info, &info, sprintrc_grep(rc));
un.buf = &ds;
rc = semctl(id, 0, SEM_STAT, un);
- printf("semctl\\(%d, 0, (IPC_64\\|)?SEM_STAT, \\[?%p\\]?\\) = %s\n",
- id, &ds, sprintrc_grep(rc));
+ printf("semctl\\(%d, 0, (%s\\|)?%s, \\[?%p\\]?\\) = %s\n",
+ id, str_ipc_64, str_sem_stat, &ds, sprintrc_grep(rc));
return 0;
}
--- /dev/null
+#include "ipc_shm.c"
--- /dev/null
+#define XLAT_RAW 1
+#include "ipc_shm.c"
--- /dev/null
+#define XLAT_VERBOSE 1
+#include "ipc_shm.c"
#include "xlat.h"
#include "xlat/shm_resource_flags.h"
+#if XLAT_RAW
+# define str_ipc_flags "0x2ce1e00"
+# define str_shm_huge "21<<26"
+# define str_ipc_private "0"
+# define str_ipc_rmid "0"
+# define str_ipc_set "0x1"
+# define str_ipc_stat "0x2"
+# define str_shm_stat "0xd"
+# define str_shm_info "0xe"
+# define str_ipc_64 "0x100"
+# define str_bogus_cmd "0xdefaced2"
+#elif XLAT_VERBOSE
+# define str_ipc_flags \
+ "0x2ce1e00 /\\* IPC_CREAT\\|IPC_EXCL\\|SHM_HUGETLB\\|SHM_NORESERVE" \
+ "\\|0x2ce0000 \\*/"
+# define str_shm_huge "21<<26 /\\* SHM_HUGE_SHIFT \\*/"
+# define str_ipc_private "0 /\\* IPC_PRIVATE \\*/"
+# define str_ipc_rmid "0 /\\* IPC_RMID \\*/"
+# define str_ipc_set "0x1 /\\* IPC_SET \\*/"
+# define str_ipc_stat "0x2 /\\* IPC_STAT \\*/"
+# define str_shm_stat "0xd /\\* SHM_STAT \\*/"
+# define str_shm_info "0xe /\\* SHM_INFO \\*/"
+# define str_ipc_64 "0x100 /\\* IPC_64 \\*/"
+# define str_bogus_cmd "0xdefaced2 /\\* SHM_\\?\\?\\? \\*/"
+#else
+# define str_ipc_flags \
+ "IPC_CREAT\\|IPC_EXCL\\|SHM_HUGETLB\\|SHM_NORESERVE\\|0x2ce0000"
+# define str_shm_huge "21<<SHM_HUGE_SHIFT"
+# define str_ipc_private "IPC_PRIVATE"
+# define str_ipc_rmid "IPC_RMID"
+# define str_ipc_set "IPC_SET"
+# define str_ipc_stat "IPC_STAT"
+# define str_shm_stat "SHM_STAT"
+# define str_shm_info "SHM_INFO"
+# define str_ipc_64 "IPC_64"
+# define str_bogus_cmd "0xdefaced2 /\\* SHM_\\?\\?\\? \\*/"
+#endif
+
static int id = -1;
static void
cleanup(void)
{
shmctl(id, IPC_RMID, NULL);
- printf("shmctl\\(%d, (IPC_64\\|)?IPC_RMID, NULL\\) = 0\n", id);
+ printf("shmctl\\(%d, (%s\\|)?%s, NULL\\) = 0\n",
+ id, str_ipc_64, str_ipc_rmid);
id = -1;
}
rc = shmget(bogus_key, bogus_size, huge_flags);
printf("shmget\\(%#llx, %zu, %s\\|%#03o\\) = %s\n",
zero_extend_signed_to_ull(bogus_key), bogus_size,
- "21<<SHM_HUGE_SHIFT", 0, sprintrc_grep(rc));
+ str_shm_huge, 0, sprintrc_grep(rc));
bogus_flags = 0xface1e55 & ~(bogus_ipc_shm_flags | huge_mask);
rc = shmget(bogus_key, bogus_size, bogus_flags);
bogus_flags |= bogus_ipc_shm_flags;
rc = shmget(bogus_key, bogus_size, bogus_flags);
- printf("shmget\\(%#llx, %zu, %s\\|%#x\\|%#03o\\) = %s\n",
+ printf("shmget\\(%#llx, %zu, %s\\|%#03o\\) = %s\n",
zero_extend_signed_to_ull(bogus_key), bogus_size,
- "IPC_CREAT\\|IPC_EXCL\\|SHM_HUGETLB\\|SHM_NORESERVE",
- bogus_flags & ~(0777 | bogus_ipc_shm_flags),
+ str_ipc_flags,
bogus_flags & 0777, sprintrc_grep(rc));
bogus_flags |= huge_flags;
rc = shmget(bogus_key, bogus_size, bogus_flags);
- printf("shmget\\(%#llx, %zu, %s\\|%#x\\|%s\\|%#03o\\) = %s\n",
+ printf("shmget\\(%#llx, %zu, %s\\|%s\\|%#03o\\) = %s\n",
zero_extend_signed_to_ull(bogus_key), bogus_size,
- "IPC_CREAT\\|IPC_EXCL\\|SHM_HUGETLB\\|SHM_NORESERVE",
- bogus_flags & ~(0777 | bogus_ipc_shm_flags | huge_mask),
- "21<<SHM_HUGE_SHIFT",
+ str_ipc_flags, str_shm_huge,
bogus_flags & 0777, sprintrc_grep(rc));
bogus_flags &= ~bogus_ipc_shm_flags;
printf("shmget\\(%#llx, %zu, %#x\\|%s\\|%#03o\\) = %s\n",
zero_extend_signed_to_ull(bogus_key), bogus_size,
bogus_flags & ~(0777 | huge_mask),
- "21<<SHM_HUGE_SHIFT",
+ str_shm_huge,
bogus_flags & 0777, sprintrc_grep(rc));
id = shmget(private_key, 1, 0600);
if (id < 0)
perror_msg_and_skip("shmget");
- printf("shmget\\(IPC_PRIVATE, 1, 0600\\) = %d\n", id);
+ printf("shmget\\(%s, 1, 0600\\) = %d\n", str_ipc_private, id);
atexit(cleanup);
rc = shmctl(bogus_id, bogus_cmd, NULL);
- printf("shmctl\\(%d, (IPC_64\\|)?%#x /\\* SHM_\\?\\?\\? \\*/, NULL\\)"
- " = %s\n", bogus_id, bogus_cmd, sprintrc_grep(rc));
+ printf("shmctl\\(%d, (%s\\|)?%s, NULL\\) = %s\n",
+ bogus_id, str_ipc_64, str_bogus_cmd, sprintrc_grep(rc));
rc = shmctl(bogus_id, IPC_STAT, bogus_addr);
- printf("shmctl\\(%d, (IPC_64\\|)?IPC_STAT, %p\\) = %s\n",
- bogus_id, bogus_addr, sprintrc_grep(rc));
+ printf("shmctl\\(%d, (%s\\|)?%s, %p\\) = %s\n",
+ bogus_id, str_ipc_64, str_ipc_stat, bogus_addr,
+ sprintrc_grep(rc));
if (shmctl(id, IPC_STAT, &ds))
perror_msg_and_skip("shmctl IPC_STAT");
- printf("shmctl\\(%d, (IPC_64\\|)?IPC_STAT, \\{shm_perm=\\{uid=%u, gid=%u, "
+ printf("shmctl\\(%d, (%s\\|)?%s, \\{shm_perm=\\{uid=%u, gid=%u, "
"mode=%#o, key=%u, cuid=%u, cgid=%u\\}, shm_segsz=%u, shm_cpid=%u, "
"shm_lpid=%u, shm_nattch=%u, shm_atime=%u, shm_dtime=%u, "
"shm_ctime=%u\\}\\) = 0\n",
- id, (unsigned) ds.shm_perm.uid, (unsigned) ds.shm_perm.gid,
+ id, str_ipc_64, str_ipc_stat,
+ (unsigned) ds.shm_perm.uid, (unsigned) ds.shm_perm.gid,
(unsigned) ds.shm_perm.mode, (unsigned) ds.shm_perm.__key,
(unsigned) ds.shm_perm.cuid, (unsigned) ds.shm_perm.cgid,
(unsigned) ds.shm_segsz, (unsigned) ds.shm_cpid,
if (shmctl(id, IPC_SET, &ds))
perror_msg_and_skip("shmctl IPC_SET");
- printf("shmctl\\(%d, (IPC_64\\|)?IPC_SET, \\{shm_perm=\\{uid=%u, gid=%u"
+ printf("shmctl\\(%d, (%s\\|)?%s, \\{shm_perm=\\{uid=%u, gid=%u"
", mode=%#o\\}, ...\\}\\) = 0\n",
- id, (unsigned) ds.shm_perm.uid, (unsigned) ds.shm_perm.gid,
+ id, str_ipc_64, str_ipc_set,
+ (unsigned) ds.shm_perm.uid, (unsigned) ds.shm_perm.gid,
(unsigned) ds.shm_perm.mode);
rc = shmctl(0, SHM_INFO, &ds);
- printf("shmctl\\(0, (IPC_64\\|)?SHM_INFO, %p\\) = %s\n",
- &ds, sprintrc_grep(rc));
+ printf("shmctl\\(0, (%s\\|)?%s, %p\\) = %s\n",
+ str_ipc_64, str_shm_info, &ds, sprintrc_grep(rc));
rc = shmctl(id, SHM_STAT, &ds);
- printf("shmctl\\(%d, (IPC_64\\|)?SHM_STAT, %p\\) = %s\n",
- id, &ds, sprintrc_grep(rc));
+ printf("shmctl\\(%d, (%s\\|)?%s, %p\\) = %s\n",
+ id, str_ipc_64, str_shm_stat, &ds, sprintrc_grep(rc));
return 0;
}
ip_mreq
ipc
ipc_msg
+ipc_msg-Xabbrev
+ipc_msg-Xraw
+ipc_msg-Xverbose
ipc_msgbuf
+ipc_msgbuf-Xabbrev
+ipc_msgbuf-Xraw
+ipc_msgbuf-Xverbose
ipc_sem
+ipc_sem-Xabbrev
+ipc_sem-Xraw
+ipc_sem-Xverbose
ipc_shm
+ipc_shm-Xabbrev
+ipc_shm-Xraw
+ipc_shm-Xverbose
kcmp
kcmp-y
kern_features