1 /* 2 * 3 * Copyright (c) International Business Machines Corp., 2001 4 * 5 * This program is free software; you can redistribute it and/or modify 6 * it under the terms of the GNU General Public License as published by 7 * the Free Software Foundation; either version 2 of the License, or 8 * (at your option) any later version. 9 * 10 * This program is distributed in the hope that it will be useful, 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See 13 * the GNU General Public License for more details. 14 * 15 * You should have received a copy of the GNU General Public License 16 * along with this program; if not, write to the Free Software 17 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 18 */ 19 20 /* 21 * ipcmsg.h - common definitions for the IPC message tests. 22 */ 23 24 #ifndef __IPCMSG_H 25 #define __IPCMSG_H 1 26 27 #include <errno.h> 28 #include <sys/ipc.h> 29 #include <sys/msg.h> 30 #include <sys/types.h> 31 32 #include "test.h" 33 34 void cleanup(void); 35 void setup(void); 36 37 #define MSG_RD 0400 /* read permission for the queue */ 38 #define MSG_WR 0200 /* write permission for the queue */ 39 #define MSG_RW MSG_RD | MSG_WR 40 41 #define MSGSIZE 1024 /* a resonable size for a message */ 42 #define MSGTYPE 1 /* a type ID for a message */ 43 44 #define NR_MSGQUEUES 16 /* MSGMNI as defined in linux/msg.h */ 45 46 typedef struct mbuf { /* a generic message structure */ 47 long mtype; 48 char mtext[MSGSIZE + 1]; /* add 1 here so the message can be 1024 */ 49 } MSGBUF; /* characters long with a '\0' termination */ 50 51 #ifdef LIBIPC 52 key_t msgkey; /* the ftok() generated message key */ 53 #else 54 extern key_t msgkey; /* the ftok() generated message key */ 55 #endif 56 57 void init_buf(MSGBUF *, int, int); 58 void rm_queue(int); 59 60 key_t getipckey(); 61 int getuserid(char *); 62 63 int get_max_msgqueues(void); 64 int get_used_msgqueues(void); 65 66 #endif /* ipcmsg.h */ 67