Lines Matching defs:msgque
35 int restore_queue(struct msgque_data *msgque)
45 sprintf(buf, "%d", msgque->msq_id);
53 id = msgget(msgque->key, msgque->mode | IPC_CREAT | IPC_EXCL);
59 if (id != msgque->msq_id) {
61 , id, msgque->msq_id);
66 for (i = 0; i < msgque->qnum; i++) {
67 if (msgsnd(msgque->msq_id, &msgque->messages[i].mtype,
68 msgque->messages[i].msize, IPC_NOWAIT) != 0) {
82 int check_and_destroy_queue(struct msgque_data *msgque)
88 ret = msgrcv(msgque->msq_id, &message.mtype, MAX_MSG_SIZE,
97 if (ret != msgque->messages[cnt].msize) {
98 ksft_test_result_fail("Wrong message size: %d (expected %d)\n", ret, msgque->messages[cnt].msize);
102 if (message.mtype != msgque->messages[cnt].mtype) {
107 if (memcmp(message.mtext, msgque->messages[cnt].mtext, ret)) {
115 if (cnt != msgque->qnum) {
123 if (msgctl(msgque->msq_id, IPC_RMID, NULL)) {
130 int dump_queue(struct msgque_data *msgque)
146 if (ret == msgque->msq_id)
150 msgque->messages = malloc(sizeof(struct msg1) * ds.msg_qnum);
151 if (msgque->messages == NULL) {
156 msgque->qnum = ds.msg_qnum;
157 msgque->mode = ds.msg_perm.mode;
158 msgque->qbytes = ds.msg_qbytes;
160 for (i = 0; i < msgque->qnum; i++) {
161 ret = msgrcv(msgque->msq_id, &msgque->messages[i].mtype,
170 msgque->messages[i].msize = ret;
175 int fill_msgque(struct msgque_data *msgque)
181 if (msgsnd(msgque->msq_id, &msgbuf.mtype, sizeof(TEST_STRING),
189 if (msgsnd(msgque->msq_id, &msgbuf.mtype, sizeof(ANOTHER_TEST_STRING),
200 struct msgque_data msgque;
205 msgque.key = ftok(argv[0], 822155650);
206 if (msgque.key == -1) {
211 msgque.msq_id = msgget(msgque.key, IPC_CREAT | IPC_EXCL | 0666);
212 if (msgque.msq_id == -1) {
218 err = fill_msgque(&msgque);
224 err = dump_queue(&msgque);
230 err = check_and_destroy_queue(&msgque);
236 err = restore_queue(&msgque);
242 err = check_and_destroy_queue(&msgque);
250 if (msgctl(msgque.msq_id, IPC_RMID, NULL)) {