msq.h
上传用户:szlgq88
上传日期:2009-04-28
资源大小:48287k
文件大小:2k
源码类别:

嵌入式Linux

开发平台:

Unix_Linux

  1. /* Copyright (C) 1995, 1996, 1997, 2000 Free Software Foundation, Inc.
  2.    This file is part of the GNU C Library.
  3.    The GNU C Library is free software; you can redistribute it and/or
  4.    modify it under the terms of the GNU Lesser General Public
  5.    License as published by the Free Software Foundation; either
  6.    version 2.1 of the License, or (at your option) any later version.
  7.    The GNU C Library is distributed in the hope that it will be useful,
  8.    but WITHOUT ANY WARRANTY; without even the implied warranty of
  9.    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  10.    Lesser General Public License for more details.
  11.    You should have received a copy of the GNU Lesser General Public
  12.    License along with the GNU C Library; if not, write to the Free
  13.    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  14.    02111-1307 USA.  */
  15. #ifndef _SYS_MSG_H
  16. # error "Never use <bits/msq.h> directly; include <sys/msg.h> instead."
  17. #endif
  18. #include <bits/types.h>
  19. /* Define options for message queue functions.  */
  20. #define MSG_NOERROR 010000 /* no error if message is too big */
  21. #ifdef __USE_GNU
  22. # define MSG_EXCEPT 020000 /* recv any msg except of specified type */
  23. #endif
  24. /* Types used in the structure definition.  */
  25. typedef unsigned long int msgqnum_t;
  26. typedef unsigned long int msglen_t;
  27. /* Structure of record for one message inside the kernel.
  28.    The type `struct msg' is opaque.  */
  29. struct msqid_ds
  30. {
  31.   struct ipc_perm msg_perm; /* structure describing operation permission */
  32.   __time_t msg_stime; /* time of last msgsnd command */
  33.   unsigned long int __unused1;
  34.   __time_t msg_rtime; /* time of last msgrcv command */
  35.   unsigned long int __unused2;
  36.   __time_t msg_ctime; /* time of last change */
  37.   unsigned long int __unused3;
  38.   unsigned long int __msg_cbytes; /* current number of bytes on queue */
  39.   msgqnum_t msg_qnum; /* number of messages currently on queue */
  40.   msglen_t msg_qbytes; /* max number of bytes allowed on queue */
  41.   __pid_t msg_lspid; /* pid of last msgsnd() */
  42.   __pid_t msg_lrpid; /* pid of last msgrcv() */
  43.   unsigned long int __unused4;
  44.   unsigned long int __unused5;
  45. };
  46. #ifdef __USE_MISC
  47. # define msg_cbytes __msg_cbytes
  48. /* ipcs ctl commands */
  49. # define MSG_STAT 11
  50. # define MSG_INFO 12
  51. /* buffer for msgctl calls IPC_INFO, MSG_INFO */
  52. struct msginfo
  53.   {
  54.     int msgpool;
  55.     int msgmap;
  56.     int msgmax;
  57.     int msgmnb;
  58.     int msgmni;
  59.     int msgssz;
  60.     int msgtql;
  61.     unsigned short int msgseg;
  62.   };
  63. #endif /* __USE_MISC */