Changeset 2aab33e5 in rtems


Ignore:
Timestamp:
Jul 6, 1999, 2:52:55 PM (21 years ago)
Author:
Joel Sherrill <joel.sherrill@…>
Branches:
4.10, 4.11, 4.8, 4.9, master
Children:
e74dc82
Parents:
bae90e1
Message:

From Fei Ling <fling@…>.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • doc/itron3.0/msgbuffer.t

    rbae90e1 r2aab33e5  
    1111@section Introduction
    1212
    13 The
    14 message buffer manager is ...
     13The message buffer manager provides functions to create, delete, and
     14control of message buffers.  This manager is based on the ITRON 3.0
     15standard.
    1516
    1617The services provided by the message buffer manager are:
     
    3031@section Background
    3132
     33@subsection T_CMBF Structure
     34
     35The T_CMBF structure is used to define the characteristics of a message
     36buffer and passed as an argument to the @code{cre_mbf} routine. This
     37structure is defined as:
     38
     39@example
     40@group
     41
     42typedef struct t_cmbf @{
     43  VP      exinf;   /* extended information */
     44  ATR     mbfatr;  /* message buffer attributes */
     45  INT     bufsz;   /* buffer size (in bytes) */
     46  INT     maxmsz;  /* maximum message size (in bytes) */
     47  /* (CPU and/or implementation-dependent information may also be
     48  included) */
     49@} T_CMBF;
     50
     51@end group
     52@end example
     53
     54where the meaning of each field is:
     55
     56@table @b
     57@item exinf
     58is for any extended information that the implementation may define. This
     59implementation does not use this field.
     60
     61@item mbfatr
     62is the attributes for the message buffer. The only attributes which can
     63be specified is whether tasks wait in FIFO (@code{TA_TFIFO}) or priority
     64(@code{TA_TPRI}) order.
     65
     66@item bufsz
     67is the size of the message buffer. Since some control data are needed to
     68manage each messages in the message buffer, @code{bufsz} is usually
     69larger than the total of all message sizes in this buffer.
     70
     71@item maxmsz
     72is the maximum message size.
     73
     74@end table
     75
     76@subsection T_RMBF Structure
     77
     78The T_RMBF structure is filled in by the @code{ref_mbf} routine with
     79status and state information of the message buffer. The structure is
     80defined as follows:
     81
     82@example
     83@group
     84
     85typedef struct t_rmbf @{
     86  VP      exinf;   /* extended information */
     87  BOOL_ID wtsk;    /* waiting task information */
     88  BOOL_ID stsk;    /* sending task information */
     89  INT     msgsz;   /* message size (in bytes) */
     90  INT     frbufsz; /* free buffer size (in bytes) */
     91  /* (CPU and/or implementation-dependent information is returned) */
     92@} T_RMBF;
     93
     94@end group
     95@end example
     96
     97@table @b
     98
     99@item exinf
     100is for any extended information that the implementation may define.
     101This implementation does not use this field.
     102
     103@item wtsk
     104is TRUE when there is one or more tasks waiting on this message buffer
     105to send message. It is FALSE when there is no waiting task. The meaning
     106of this field is allowed to vary between ITRON implementations.  It may
     107have the ID of a waiting task, the number of tasks waiting, or a boolean
     108indication that one or more tasks are waiting.
     109
     110@item stsk
     111is TRUE when there is one or more tasks waiting on this message buffer
     112to receive message. It is FALSE when there is no waiting task. The meaning
     113of this field is allowed to vary between ITRON implementations.  It may
     114have the ID of a waiting task, the number of tasks waiting, or a boolean
     115indication that one or more tasks are waiting.
     116
     117@item msgsz
     118is the size of the message that is at the head of the message buffer. If
     119there is no message on the message queue, @code{msgsz} will be returned
     120as FALSE = 0.
     121
     122@item frbufsz
     123is the amount of free memory in the message buffer.
     124
     125@end table
     126
    32127@section Operations
    33128
     
    39134and status codes.
    40135
    41 
    42136@c
    43137@c  cre_mbf
     
    63157@subheading STATUS CODES:
    64158
    65 @code{EXXX} -
     159@code{E_OK} - Normal Completion
     160
     161@code{E_NOMEM} - Insufficient memory (Memory for control block and/or
     162ring buffer cannot be allocted)
     163
     164@code{E_ID} - Invalid ID number (mbfid was invalid or could not be used)
     165
     166@code{E_RSATR} - Reserved attribute (mbfatr was invalid or could not be
     167used)
     168
     169@code{E_OBJ} - Invalid object state (a messagebuffer of the same ID
     170already exists)
     171
     172@code{E_OACV} - Object access violation (A mbfid less than -4 was
     173specified from a user task.  This is implementation dependent.)
     174
     175@code{E_PAR} - Parameter error (pk_cmbf is invalid or bufsz and/or
     176maxmsz is negative or invalid)
     177
     178@code{EN_OBJNO} - An object number which could not be accessed on the
     179target node is specified.
     180
     181
     182@code{EN_CTXID} - Specified an object on another node when the system
     183call was issued from a task in dispatch disabled state or from a
     184task-independent portion
     185
     186@code{EN_PAR} - A value outside the range supported by the target node
     187and/or transmission packet format was specified as a parameter (a value
     188outside supported range was specified for exinf, mbfatr, bufsz and/or
     189maxmsz)
    66190
    67191@subheading DESCRIPTION:
    68192
     193This routine creates a message buffer on the local node. The message
     194buffer is initialized based on the attributes specified in the
     195@code{pk_cmbf} structure. The buffer size and the maximum message size
     196are determined by the @code{bufsz} and @code{maxmsz} fields in this
     197structure.
     198
     199The @code{mbfatr} field represents attributes of the message
     200buffer. If @code{TA_TFIFO} is specified, tasks will be put on the queue
     201on a First In-First Out basis. If @code{TA_TPRI} is specified, tasks
     202will be placed on the queue according to their priority.
     203
    69204@subheading NOTES:
    70205
     206Multiprocessing is not supported.  Thus none of the "EN_" status codes
     207will be returned.
    71208
    72209@c
     
    92229@subheading STATUS CODES:
    93230
    94 @code{EXXX} -
     231@code{E_OK} - Normal Completion
     232
     233@code{E_ID} - Invalid ID number (mbfid was invalid or could not be used)
     234
     235@code{E_NOEXS} - Object does not exist (the messagebuffer specified by
     236mbfid does not exist)
     237
     238@code{E_OACV} - Object access violation (A mbfid less than -4 was
     239specified from a user task.  This is implementation dependent.)
     240
     241@code{EN_OBJNO} - An object number which could not be accessed on the
     242target node is specified.
     243
     244@code{EN_CTXID} - Specified an object on another node when the system
     245call was issued from a task in dispatch disabled state or from a
     246task-independent portion
    95247
    96248@subheading DESCRIPTION:
    97249
     250This routine deletes the message buffer specified by @code{mbfid}.
     251Issuing this system call releases memory area used for the control block of
     252the associated message buffer and the buffer area used for storing messages.
     253
     254This routine will complete normally even if there are tasks waiting to
     255send or receive messages at the message buffer.  In that case, an
     256@code{E_DLT} error will be returned to each waiting task.  If there are
     257messages still in the message buffer, they will be deleted along with
     258the message buffer and no error will result.
     259
    98260@subheading NOTES:
    99261
     262Multiprocessing is not supported.  Thus none of the "EN_" status codes
     263will be returned.
    100264
    101265@c
     
    104268
    105269@page
    106 @subsection snd_mbf - Send Message to MessageBuffer
     270@subsection snd_mbf - Send Message to Message Buffer
    107271
    108272@subheading CALLING SEQUENCE:
     
    123287@subheading STATUS CODES:
    124288
    125 @code{EXXX} -
     289@code{E_OK} - Normal Completion
     290
     291@code{E_ID} - Invalid ID number (mbfid was invalid or could not be used)
     292
     293@code{E_NOEXS} - Object does not exist (the message buffer specified by
     294mbfid does not exist)
     295
     296@code{E_OACV} - Object access violation (A mbfid less than -4 was
     297specified from a user task.  This is implementation dependent.)
     298
     299@code{E_PAR} - Parameter error (msgsz is 0 or less; msgsz is larger than
     300maxmsz; values unsuitable for msg; tmout is -2 or less)
     301
     302@code{E_DLT} - The object being waited for was deleted (the
     303message buffer of interest was deleted while waiting)
     304
     305@code{E_RLWAI} - WAIT state was forcibly released (rel_wai was received
     306while waiting)
     307
     308@code{E_CTX} - Context error (issued from task-independent portions or a
     309task in dispatch disabled state; implementation dependent for psnd_mbf
     310and tsnd_mbf(tmout=TMO_POL))
     311
     312@code{EN_OBJNO} - An object number which could not be accessed on the
     313target node is specified.
     314
     315@code{EN_CTXID} - Specified an object on another node when the system
     316call was issued from a task in dispatch disabled state or from a
     317task-independent portion (implementation-dependent; applicable to
     318psnd_mbf and tsnd_mbf (tmout=TMO_POL) only)
     319
     320@code{EN_PAR} - A value outside the range supported by the target node
     321and/or transmission packet format was specified as a parameter (a value
     322outside supported range was specified for msgsz and/or tmout)
    126323
    127324@subheading DESCRIPTION:
    128325
     326This routine sends the message stored at the address given by @code{msg}
     327to the message buffer specified by @code{mbfid}.  The size of the
     328message is specified by @code{msgsz}; that is, @code{msgsz} number of
     329bytes beginning from @code{msg} are copied to the message buffer
     330specified by @code{mbfid}.  If the available space in the buffer is not
     331enough to include the message given by @code{msg}, the task issuing this
     332system call will wait on a send wait queue until more buffer space
     333becomes available.
     334
    129335@subheading NOTES:
    130336
     337Multiprocessing is not supported.  Thus none of the "EN_" status codes
     338will be returned.
    131339
    132340@c
     
    135343
    136344@page
    137 @subsection psnd_mbf - Poll and Send Message to MessageBuffer
     345@subsection psnd_mbf - Poll and Send Message to Message Buffer
    138346
    139347@subheading CALLING SEQUENCE:
     
    154362@subheading STATUS CODES:
    155363
    156 @code{EXXX} -
     364@code{E_OK} - Normal Completion
     365
     366@code{E_ID} - Invalid ID number (mbfid was invalid or could not be used)
     367
     368@code{E_NOEXS} - Object does not exist (the message buffer specified by
     369mbfid does not exist)
     370
     371@code{E_OACV} - Object access violation (A mbfid less than -4 was
     372specified from a user task.  This is implementation dependent.)
     373
     374@code{E_PAR} - Parameter error (msgsz is 0 or less; msgsz is larger than
     375maxmsz; values unsuitable for msg; tmout is -2 or less)
     376
     377@code{E_DLT} - The object being waited for was deleted (the
     378message buffer of interest was deleted while waiting)
     379
     380@code{E_RLWAI} - WAIT state was forcibly released (rel_wai was received
     381while waiting)
     382
     383@code{E_TMOUT} - Polling failure or timeout
     384
     385@code{E_CTX} - Context error (issued from task-independent portions or a
     386task in dispatch disabled state; implementation dependent for psnd_mbf
     387and tsnd_mbf(tmout=TMO_POL))
     388
     389@code{EN_OBJNO} - An object number which could not be accessed on the
     390target node is specified.
     391
     392@code{EN_CTXID} - Specified an object on another node when the system
     393call was issued from a task in dispatch disabled state or from a
     394task-independent portion (implementation-dependent; applicable to
     395psnd_mbf and tsnd_mbf (tmout=TMO_POL) only)
     396
     397@code{EN_PAR} - A value outside the range supported by the target node
     398and/or transmission packet format was specified as a parameter (a value
     399outside supported range was specified for msgsz and/or tmout)
    157400
    158401@subheading DESCRIPTION:
    159402
     403This routine has the same function as @code{snd_mbf} except for the
     404waiting feature.  @code{Psnd_mbf} polls whether or not the task should
     405wait if @code{snd_mbf} is executed.  The meaning of parameters to
     406@code{psnd_mbf} are the same as for @code{snd_mbf}.  The specific
     407operations by @code{psnd_mbf} are as follows.
     408
     409  - If there is enough space in the buffer, processing is the same as
     410  @code{snd_mbf}: the message is sent and the system call completes
     411  normally.
     412
     413  - If there is not enough space in the buffer, an @code{E_TMOUT} error
     414  is returned to indicate polling failed and the system call finishes.
     415  Unlike @code{snd_mbf}, the issuing task does not wait in this case.
     416  The status of the message buffer and the message queue remain unchanged.
     417
    160418@subheading NOTES:
    161419
     420Multiprocessing is not supported.  Thus none of the "EN_" status codes
     421will be returned.
    162422
    163423@c
     
    166426
    167427@page
    168 @subsection tsnd_mbf - Send Message to MessageBuffer with Timeout
     428@subsection tsnd_mbf - Send Message to Message Buffer with Timeout
    169429
    170430@subheading CALLING SEQUENCE:
     
    186446@subheading STATUS CODES:
    187447
    188 @code{EXXX} -
     448@code{E_OK} - Normal Completion
     449
     450@code{E_ID} - Invalid ID number (mbfid was invalid or could not be used)
     451
     452@code{E_NOEXS} - Object does not exist (the message buffer specified by
     453mbfid does not exist)
     454
     455@code{E_OACV} - Object access violation (A mbfid less than -4 was
     456specified from a user task.  This is implementation dependent.)
     457
     458@code{E_PAR} - Parameter error (msgsz is 0 or less; msgsz is larger than
     459maxmsz; values unsuitable for msg; tmout is -2 or less)
     460
     461@code{E_DLT} - The object being waited for was deleted (the
     462message buffer of interest was deleted while waiting)
     463
     464@code{E_RLWAI} - WAIT state was forcibly released (rel_wai was received
     465while waiting)
     466
     467@code{E_TMOUT} - Polling failure or timeout
     468
     469@code{E_CTX} - Context error (issued from task-independent portions or a
     470task in dispatch disabled state; implementation dependent for psnd_mbf
     471and tsnd_mbf(tmout=TMO_POL))
     472
     473@code{EN_OBJNO} - An object number which could not be accessed on the
     474target node is specified.
     475
     476@code{EN_CTXID} - Specified an object on another node when the system
     477call was issued from a task in dispatch disabled state or from a
     478task-independent portion (implementation-dependent; applicable to
     479psnd_mbf and tsnd_mbf (tmout=TMO_POL) only)
     480
     481@code{EN_PAR} - A value outside the range supported by the target node
     482and/or transmission packet format was specified as a parameter (a value
     483outside supported range was specified for msgsz and/or tmout)
    189484
    190485@subheading DESCRIPTION:
    191486
     487The @code{tsnd_mbf} system call has the same function as @code{snd_mbf}
     488with an additional timeout feature.  A maximum wait time (timeout value)
     489can be specified using the parameter @code{tmout}.  When a timeout is
     490specified, a timeout error, @code{E_TMOUT}, will result and the system
     491call will finish if the period specified by @code{tmout} elapses without
     492conditions for releasing wait being satisfied (i.e. without sufficient
     493buffer space becoming available).
     494
     495Only positive values can be specified for @code{tmout}.  Specifying
     496@code{TMO_POL} = 0 to @code{tsnd_mbf} for @code{tmout} indicates that a
     497timeout value of 0 be used, resulting in exactly the same processing as
     498@code{psnd_mbf}.  Specifying @code{TMO_FEVR} = -1 to @code{tsnd_mbf} for
     499@code{tmout} indicates that an infinite timeout value be used, resulting
     500in exactly the same processing as @code{snd_mbf}.
     501
    192502@subheading NOTES:
    193503
     504Multiprocessing is not supported.  Thus none of the "EN_" status codes
     505will be returned.
     506
    194507
    195508@c
     
    198511
    199512@page
    200 @subsection rcv_mbf - Receive Message from MessageBuffer
     513@subsection rcv_mbf - Receive Message from Message Buffer
    201514
    202515@subheading CALLING SEQUENCE:
     
    217530@subheading STATUS CODES:
    218531
    219 @code{EXXX} -
     532@code{E_OK} - Normal Completion
     533
     534@code{E_ID} - Invalid ID number (mbfid was invalid or could not be used)
     535
     536@code{E_NOEXS} - Object does not exist (the message buffer specified by
     537mbfid does not exist)
     538
     539@code{E_OACV} - Object access violation (A mbfid less than -4 was
     540specified from a user task.  This is implementation dependent.)
     541
     542@code{E_PAR} - Parameter error (values unsuitable for msg; tmout is -2
     543or less)
     544
     545@code{E_DLT} - The object being waited for was deleted (the specified
     546message buffer was deleted while waiting)
     547
     548@code{E_RLWAI} - WAIT state was forcibly released (rel_wai was received
     549while waiting)
     550
     551@code{E_CTX} - Context error (issued from task-independent portions or a
     552task in dispatch disabled state)
     553
     554@code{EN_OBJNO} - An object number which could not be accessed on the
     555target node is specified.
     556
     557@code{EN_PAR} - A value outside the range supported by the target node
     558and/or transmission packet format was specified as a parameter (a value
     559outside supported range was specified for tmout)
     560
     561@code{EN_RPAR} - A value outside the range supported by the issuing node
     562and/or transmission packet format was returned as a return parameter (msgsz is outside supported range for requesting node)
    220563
    221564@subheading DESCRIPTION:
    222565
     566@code{Rcv_mbf} receives the message from the message buffer specified by
     567@code{mbfid}, and stores it at the memory location given by @code{msg}.
     568In other words, the content of the message at the head of the message
     569buffer specified by @code{mbfid} is copied into an area which begins
     570from @code{msg} and whose size is @code{msgsz}.
     571
     572If the message buffer is empty, the task issuing this system call will wait
     573on a receive message wait queue until a message arrives.
     574
    223575@subheading NOTES:
    224576
     577Multiprocessing is not supported.  Thus none of the "EN_" status codes
     578will be returned.
     579
    225580
    226581@c
     
    229584
    230585@page
    231 @subsection prcv_mbf - Poll and Receive Message from MessageBuffer
     586@subsection prcv_mbf - Poll and Receive Message from Message Buffer
    232587
    233588@subheading CALLING SEQUENCE:
     
    248603@subheading STATUS CODES:
    249604
    250 @code{EXXX} -
     605@code{E_OK} - Normal Completion
     606
     607@code{E_ID} - Invalid ID number (mbfid was invalid or could not be used)
     608
     609@code{E_NOEXS} - Object does not exist (the message buffer specified by
     610mbfid does not exist)
     611
     612@code{E_OACV} - Object access violation (A mbfid less than -4 was
     613specified from a user task.  This is implementation dependent.)
     614
     615@code{E_PAR} - Parameter error (values unsuitable for msg; tmout is -2
     616or less)
     617
     618@code{E_DLT} - The object being waited for was deleted (the specified
     619message buffer was deleted while waiting)
     620
     621@code{E_RLWAI} - WAIT state was forcibly released (rel_wai was received
     622while waiting)
     623
     624@code{E_TMOUT} - Polling failure or timeout
     625
     626@code{E_CTX} - Context error (issued from task-independent portions or a
     627task in dispatch disabled state)
     628
     629@code{EN_OBJNO} - An object number which could not be accessed on the
     630target node is specified.
     631
     632@code{EN_PAR} - A value outside the range supported by the target node
     633and/or transmission packet format was specified as a parameter (a value
     634outside supported range was specified for tmout)
     635
     636@code{EN_RPAR} - A value outside the range supported by the issuing node
     637and/or transmission packet format was returned as a return parameter (msgsz is outside supported range for requesting node)
     638
    251639
    252640@subheading DESCRIPTION:
     641The @code{prcv_mbf} system call has the same function as @code{rcv_mbf}
     642except for the waiting feature.  @code{Prcv_mbf} polls whether or not
     643the task should wait if @code{rcv_mbf} is executed.  The meaning of
     644parameters to @code{prcv_mbf} are the same as for @code{rcv_mbf}.  The
     645specific operations by @code{prcv_mbf} are as follows.
     646
     647  - If there is a message in the specified message buffer, processing is
     648the same as @code{rcv_mbf}: the first message on the message buffer is
     649retrieved and the system call completes normally.
     650
     651  - If there is no message in the specified message buffer, an
     652@code{E_TMOUT} error is returned to indicate polling failed and the
     653system call finishes.  Unlike @code{rcv_mbf}, the issuing task does not
     654wait in this case.  The status of the message buffer remain unchanged.
    253655
    254656@subheading NOTES:
    255657
     658Multiprocessing is not supported.  Thus none of the "EN_" status codes
     659will be returned.
     660
    256661
    257662@c
     
    260665
    261666@page
    262 @subsection trcv_mbf - Receive Message from MessageBuffer with Timeout
     667@subsection trcv_mbf - Receive Message from Message Buffer with Timeout
    263668
    264669@subheading CALLING SEQUENCE:
     
    280685@subheading STATUS CODES:
    281686
    282 @code{EXXX} -
     687@code{E_OK} - Normal Completion
     688
     689@code{E_ID} - Invalid ID number (mbfid was invalid or could not be used)
     690
     691@code{E_NOEXS} - Object does not exist (the message buffer specified by
     692mbfid does not exist)
     693
     694@code{E_OACV} - Object access violation (A mbfid less than -4 was
     695specified from a user task.  This is implementation dependent.)
     696
     697@code{E_PAR} - Parameter error (values unsuitable for msg; tmout is -2
     698or less)
     699
     700@code{E_DLT} - The object being waited for was deleted (the specified
     701message buffer was deleted while waiting)
     702
     703@code{E_RLWAI} - WAIT state was forcibly released (rel_wai was received
     704while waiting)
     705
     706@code{E_TMOUT} - Polling failure or timeout
     707
     708@code{E_CTX} - Context error (issued from task-independent portions or a
     709task in dispatch disabled state)
     710
     711@code{EN_OBJNO} - An object number which could not be accessed on the
     712target node is specified.
     713
     714@code{EN_PAR} - A value outside the range supported by the target node
     715and/or transmission packet format was specified as a parameter (a value
     716outside supported range was specified for tmout)
     717
     718@code{EN_RPAR} - A value outside the range supported by the issuing node
     719and/or transmission packet format was returned as a return parameter (msgsz is outside supported range for requesting node)
    283720
    284721@subheading DESCRIPTION:
     722The @code{trcv_mbf} system call has the same function as @code{rcv_mbf}
     723with an additional timeout feature.  A maximum wait time (timeout value)
     724can be specified using the parameter @code{tmout}.  When a timeout is
     725specified, a timeout error, @code{E_TMOUT}, will result and the system
     726call will finish if the period specified by @code{tmout} elapses without
     727conditions for releasing wait being satisfied (i.e. without a message
     728arriving).
     729
     730Only positive values can be specified for @code{tmout}.  Specifying
     731@code{TMO_POL} = 0 to @code{trcv_mbf} for @code{tmout} indicates that a
     732timeout value of 0 be used, resulting in exactly the same processing as
     733@code{prcv_mbf}.  Specifying @code{TMO_FEVR} = -1 to @code{trcv_mbf} for
     734tmout indicates that an infinite timeout value be used, resulting in
     735exactly the same processing as @code{rcv_mbf}.
    285736
    286737@subheading NOTES:
    287738
     739Multiprocessing is not supported.  Thus none of the "EN_" status codes
     740will be returned.
    288741
    289742@c
     
    292745
    293746@page
    294 @subsection ref_mbf - Reference MessageBuffer Status
     747@subsection ref_mbf - Reference Message Buffer Status
    295748
    296749@subheading CALLING SEQUENCE:
     
    310763@subheading STATUS CODES:
    311764
    312 @code{EXXX} -
     765@code{E_OK} - Normal Completion
     766
     767@code{E_ID} - Invalid ID number (mbfid was invalid or could not be used)
     768
     769@code{E_NOEXS} - Object does not exist (the message buffer specified by
     770mbfid does not exist)
     771
     772@code{E_OACV} - Object access violation (A mbfid less than -4 was
     773specified from a user task.  This is implementation dependent.)
     774
     775@code{E_PAR} - Parameter error (the packet address for the return
     776parameters could not be used)
     777
     778@code{EN_OBJNO} - An object number which could not be accessed on the
     779target node is specified.
     780
     781@code{EN_CTXID} - Specified an object on another node when the system
     782call was issued from a task in dispatch disabled state or from a
     783task-independent portion
     784
     785@code{EN_RPAR} - A value outside the range supported by the issuing node
     786and/or transmission packet format was returned as a return parameter (a
     787value outside supported range for exinf, wtsk, stsk, msgsz and/or
     788frbufsz on a requesting node)
    313789
    314790@subheading DESCRIPTION:
     791This system call refers to the state of the message buffer specified by
     792@code{mbfid}, and returns information of a task waiting to send a
     793message (@code{stsk}), the size of the next message to be received
     794(@code{msgsz}), the free buffer size (@code{frbufsz}), information of a
     795task waiting to receive a message (@code{wtsk}), and its extended
     796information (@code{exinf}).
     797
     798@code{Wtsk} and @code{stsk} indicate whether or not there is a task
     799waiting for the message buffer in question.  If there is no waiting
     800task, @code{wtsk} and @code{stsk} are returned as @code{FALSE} = 0.  If
     801there is a waiting task, @code{wtsk} and @code{stsk} are returned as
     802values other than 0.
     803
     804An @code{E_NOEXS} error will result if the message buffer specified to
     805@code{ref_mbf} does not exist.
     806
     807The size of the message at the head of the message buffer (the next
     808message to be received) is returned to @code{msgsz}.  If there are no
     809messages on the message buffer, @code{msgsz} will be returned as
     810@code{FALSE} = 0.  A message whose size is zero cannot be sent.
     811
     812At least one of @code{msgsz} = @code{FALSE} and @code{wtsk} =
     813@code{FALSE} is always true in this system call.
     814
     815@code{Frbufsz} indicates the amount of free memory in the message
     816buffer.  This value can be used to know the total approximate size of
     817the messages which can be sent to the message buffer.
    315818
    316819@subheading NOTES:
    317820
     821Multiprocessing is not supported.  Thus none of the "EN_" status codes
     822will be returned.
Note: See TracChangeset for help on using the changeset viewer.