original files of m241
This commit is contained in:
@@ -0,0 +1,153 @@
|
||||
/* mqPxShow.c - POSIX message queue show */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1993-1996, 1999, 2003-2004, 2006, 2007, 2010
|
||||
* Wind River Systems, Inc.
|
||||
*
|
||||
* The right to copy, distribute or otherwise make use of this software
|
||||
* may be licensed only pursuant to the terms of an applicable Wind River
|
||||
* license agreement.
|
||||
*/
|
||||
|
||||
/*
|
||||
modification history
|
||||
--------------------
|
||||
01j,20apr10,jpb Updated classShowConnect typecast.
|
||||
01i,06sep07,mfj documentation fix for apigen
|
||||
01h,21apr06,kk publish mqPxShow() since show() no longer works on POSIX msgQs
|
||||
01g,11feb04,m_s fixed man page warnings
|
||||
01f,26jun03,ymz changed name obtain method (objCore moved to msq_que).
|
||||
01e,17mar99,jdi doc: updated w/ info about proj facility (SPR 25727).
|
||||
01d,19aug96,dbt modified test of name in mqPxShow (fixed SPR #4228).
|
||||
01c,19jan95,jdi doc cleanup.
|
||||
01c,03feb94,dvs changed show format; added include of private/mqPxLibP.h.
|
||||
01b,01feb94,dvs documentation tweaks.
|
||||
01a,16jun93,smb created.
|
||||
*/
|
||||
|
||||
/*
|
||||
DESCRIPTION
|
||||
This library provides a show routine for display information on POSIX
|
||||
message queue objects. The information displayed is for debugging purposes
|
||||
and is intended to be a snapshot of the system at the time the call is made.
|
||||
|
||||
INCLUDE FILES: mqPxShow.h
|
||||
|
||||
*/
|
||||
|
||||
|
||||
#include <vxWorks.h>
|
||||
#include <stdio.h>
|
||||
#include <sys/types.h>
|
||||
#include <classLib.h>
|
||||
#include <private/classLibP.h>
|
||||
#include <private/objLibP.h>
|
||||
#include <private/stdioP.h>
|
||||
#include <private/mqPxLibP.h>
|
||||
#include <mqueue.h>
|
||||
#include <string.h>
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* mqPxShow - display message queue internals
|
||||
*
|
||||
* This routine displays information on a POSIX message queue.
|
||||
*
|
||||
* RETURNS: OK or ERROR if the descriptor is invalid.
|
||||
*
|
||||
* ERRNO:
|
||||
* \is
|
||||
* \i S_objLib_OBJ_ID_ERROR
|
||||
* message queue is invalid.
|
||||
* \ie
|
||||
*/
|
||||
|
||||
STATUS mqPxShow
|
||||
(
|
||||
mqd_t mqDesc,
|
||||
int level
|
||||
)
|
||||
{
|
||||
struct mq_attr attr;
|
||||
char * name;
|
||||
char pString[128];
|
||||
int flags = 0;
|
||||
|
||||
pString[0] = EOS;
|
||||
|
||||
if (OBJ_VERIFY (mqDesc->f_data, mqClassId) != OK)
|
||||
{
|
||||
return (ERROR);
|
||||
}
|
||||
|
||||
if (mq_getattr(mqDesc, &attr) != 0)
|
||||
return (ERROR);
|
||||
|
||||
name = objNamePtrGet (mqDesc->f_data);
|
||||
|
||||
printf ("%-32s: %s\n", "Message queue name",
|
||||
(name == NULL) ? "<NONE>" : name);
|
||||
|
||||
printf ("%-32s: %-10d\n", "No. of messages in queue", attr.mq_curmsgs);
|
||||
printf ("%-32s: %-10d\n", "Maximum no. of messages", attr.mq_maxmsg);
|
||||
printf ("%-32s: %-10d\n", "Maximum message size", attr.mq_msgsize);
|
||||
|
||||
/* now parse the flags for the msgQ */
|
||||
|
||||
if ((mqDesc->f_flag & (MQ_FLAG_READ | MQ_FLAG_WRITE))
|
||||
== (MQ_FLAG_READ | MQ_FLAG_WRITE))
|
||||
{
|
||||
strcat (pString, "O_RDWR ");
|
||||
flags = O_RDWR;
|
||||
}
|
||||
else if (mqDesc->f_flag & MQ_FLAG_READ)
|
||||
{
|
||||
strcat (pString, "O_RDONLY ");
|
||||
flags = O_RDONLY;
|
||||
}
|
||||
else if (mqDesc->f_flag & MQ_FLAG_WRITE)
|
||||
{
|
||||
strcat (pString, "O_WRONLY ");
|
||||
flags = O_WRONLY;
|
||||
}
|
||||
|
||||
if (mqDesc->f_flag & MQ_FLAG_NONBLOCK)
|
||||
{
|
||||
strcat (pString, "O_NONBLOCK ");
|
||||
flags |= O_NONBLOCK;
|
||||
}
|
||||
|
||||
|
||||
printf ("%-32s: %s (0x%-10x)\n", "Flags", pString, flags);
|
||||
|
||||
printf ("\n");
|
||||
|
||||
/* someday display the buffer contents with level >= 1 */
|
||||
|
||||
return (OK);
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* mqPxShowInit - initialize the POSIX message queue show facility
|
||||
*
|
||||
* This routine links the POSIX message queue show routine into the VxWorks
|
||||
* system. It is called automatically when this show facility is configured
|
||||
* into VxWorks using either of the following methods:
|
||||
* \is
|
||||
* \i If you use the configuration header files, define INCLUDE_SHOW_ROUTINES.
|
||||
* \i If you use the project facility, select INCLUDE_POSIX_MQ_SHOW.
|
||||
* \ie
|
||||
*
|
||||
* RETURNS: OK always
|
||||
*
|
||||
* ERRNO: N/A
|
||||
*
|
||||
*/
|
||||
|
||||
STATUS mqPxShowInit (void)
|
||||
{
|
||||
classShowConnect (mqClassId, (OBJ_SHOW_FUNC) mqPxShow);
|
||||
|
||||
return (OK);
|
||||
}
|
||||
Reference in New Issue
Block a user