mqPxShow.c
上传用户:nvosite88
上传日期:2007-01-17
资源大小:4983k
文件大小:3k
源码类别:

VxWorks

开发平台:

C/C++

  1. /* mqPxShow.c - POSIX message queue show */
  2. /* Copyright 1984-1996 Wind River Systems, Inc. */
  3. #include "copyright_wrs.h"
  4. /*
  5. modification history
  6. --------------------
  7. 01e,17mar99,jdi  doc: updated w/ info about proj facility (SPR 25727).
  8. 01d,19aug96,dbt  modified test of name in mqPxShow (fixed SPR #4228).
  9. 01c,19jan95,jdi  doc cleanup.
  10. 01c,03feb94,dvs  changed show format; added include of private/mqPxLibP.h.
  11. 01b,01feb94,dvs  documentation tweaks.
  12. 01a,16jun93,smb  created.
  13. */
  14. /*
  15. DESCRIPTION
  16. This library provides a show routine for POSIX objects.
  17. */
  18. #include "vxWorks.h"
  19. #include "stdio.h"
  20. #include "sys/types.h"
  21. #include "taskLib.h"
  22. #include "classLib.h"
  23. #include "private/objLibP.h"
  24. #include "private/stdioP.h"
  25. #include "private/mqPxLibP.h"
  26. #include "mqueue.h"
  27. extern CLASS_ID mqClassId;
  28. /*******************************************************************************
  29. *
  30. * mqPxShow - display message queue internals
  31. *
  32. * NOMANUAL
  33. */
  34. STATUS mqPxShow
  35.     (
  36.     mqd_t mqDesc,
  37.     int level
  38.     )
  39.     {
  40.     struct mq_attr attr;
  41.     if (mq_getattr(mqDesc, &attr) != 0)
  42. return (ERROR);
  43. #if 0
  44.     printf ("%-32s: %-10sn", "Message queue name", 
  45.     mqDesc->f_data->mq_name);
  46.     printf ("%-32s: %-10dn", "open message queue descriptors", 
  47.     mqDesc->f_data->close);
  48.     printf ("%-32s: %#-10hxn", "Flags", mqDesc->f_flag);
  49. #endif
  50.     printf ("%-32s: %sn", "Message queue name", 
  51.     (mqDesc->f_data->msgq_sym.name == NULL) ? "<NONE>" : 
  52.  mqDesc->f_data->msgq_sym.name);
  53.     printf ("%-32s: %-10dn", "No. of messages in queue", attr.mq_curmsgs);
  54.     printf ("%-32s: %-10dn", "Maximum no. of messages", attr.mq_maxmsg);
  55.     printf ("%-32s: %-10dn", "Maximum message size", attr.mq_msgsize);
  56.     printf ("n");
  57.     /* someday display the buffer contents with level >= 1 */
  58.     return (OK);
  59.     }
  60. /******************************************************************************
  61. *
  62. * mqPxShowInit - initialize the POSIX message queue show facility
  63. *
  64. * This routine links the POSIX message queue show routine into the VxWorks 
  65. * system. It is called automatically when this show facility is configured
  66. * into VxWorks using either of the following methods:
  67. * .iP
  68. * If you use the configuration header files, define
  69. * INCLUDE_SHOW_ROUTINES in config.h.
  70. * .iP
  71. * If you use the Tornado project facility, select INCLUDE_POSIX_MQ_SHOW.
  72. *
  73. * RETURNS: OK, or ERROR if an error occurs installing the file pointer show 
  74. * routine.
  75. */
  76. STATUS mqPxShowInit (void)
  77.     {
  78.     classShowConnect (mqClassId, (FUNCPTR)mqPxShow);
  79.     return (OK);
  80.     }