GLAST / LAT > DAQ and FSW > FSW > Doxygen Index> PBS / V2-12-1 > pbs / rhel6-32


Interface   Data Structures   File List   Data Fields   Globals  

RW_type.h File Reference

Resource Wait, resource wait types. More...


Typedefs

typedef enum _RW_opt RW_opt
 Typedef for enum _RW_opt.
typedef enum _RW_opt_pend_type RW_opt_pend_type
 Typedef for enum _RW_opt_pend_type.
typedef enum _RW_type RW_type
 Typedef for enum _RW_type.

Enumerations

enum  _RW_opt {
  RW_M_OPT_PEND = (1<<0),
  RW_M_OPT_MULTI = (1<<1),
  RW_M_OPT_PEND_TYPE = (1<<2),
  RW_M_OPT_TO = (1<<3)
}
 Enumerates the different pending options. More...
enum  _RW_opt_pend_type {
  RW_M_OPT_PEND_FIFO = 0,
  RW_M_OPT_PEND_PRIORITY = RW_M_OPT_PEND_TYPE
}
 Enumerates the different pend types. More...
enum  _RW_type {
  RW_K_TYPE_LOCKING_ONLY = 0,
  RW_K_TYPE_PENDING,
  RW_K_TYPE_PENDING_WTO,
  RW_K_TYPE_PENDING_FIFO,
  RW_K_TYPE_PENDING_FIFO_WTO,
  RW_K_TYPE_PENDING_PRIORITY,
  RW_K_TYPE_PENDING_PRIORITY_WTO
}
 Enumerates the different RWtypes. More...


Detailed Description

Resource Wait, resource wait types.

Author:
JJRussell - russell@slac.stanford.edu

   CVS $Id: RW_type.h,v 1.4 2004/12/07 16:13:05 russell Exp $

SYNOPSIS
The type of Resource Wait determines the behaviour when the resource is exhausted. It determines whether pending occurs at all and it also determines how multiple pending tasks will be serviced when a resource is returned. This can be in either FIFO or PRIORITY order. Certain platforms (POSIX) only support FIFO pending, so, for portability reasons, it is best not to depend on this behaviour. One may use it for optimization reasons.

When pending is requested, it can be specified as with and without timeouts. Timeouts do take resources, so if one does not need the timeout feature, do not specify it.


Typedef Documentation

Typedef for enum _RW_opt.

These options are presented as a set of bit masks which can be combined to form the RW_type. These are meant to be used only in defining the RW_types. The user should not use these to define the RW type rather he should use the enumeration list RW_type. Some of the combinations one could form with the bit options are nonsensical. RW_type lists only the valid combinations.

Typedef for enum _RW_opt_pend_type.

This option to determines the action when multiple readers attempt to block on the same RW. It is rare that one wishes to do due this.

Due to implementation restrictions of the various platforms, the requested blocking behaviour cannot be guaranteed. The user is therefore discouraged from using this option for any reason other than as a performance enhancement.

Typedef for enum _RW_type.

This option to determines the type synchronization method. The most common is pending with and without timeouts.

The other options determine the action when multiple readers attempt to pend on the same RW. It is rare that one wishes to do due this. Currently two types of pending orders are supported, FIFO and PRIORITY.

The timeout option refers to whether WUT timer support, allowing high resolution timeouts is being requested. Native (read VxWorks ticks on VxWorks platforms and high resolution timeouts on POSIX platforms) are available whether this option is set or not..

Warning:
The underlying mechanism of defining an RW type is as a series of bit fields. The user is requested not to use these, since various combinations do not make sense (NON_PENDING and MULTI-READER). The enumeration lists only those that make sense.
Also, currently the timeout option (i.e. high resolution) timeouts are not supported for the multi-/readers/pending options. This option is difficult to suppport and will be added only if a need arises. Remember that native timeouts are allowed. On the VxWorks platforms native timeouts are limited in resolution by the frequency of the VxWorks clock, typically 50-100 Hz.


Enumeration Type Documentation

enum _RW_opt

Enumerates the different pending options.

These options are presented as a set of bit masks which can be combined to form the RW_type.

Enumerator:
RW_M_OPT_PEND  Pending option bit
RW_M_OPT_MULTI  Multireader pend
RW_M_OPT_PEND_TYPE  Multireader pend type
RW_M_OPT_TO  Timeout option bit

Enumerates the different pend types.

Enumerator:
RW_M_OPT_PEND_FIFO  The pend style is FIFO order
RW_M_OPT_PEND_PRIORITY  The pend style is PRIORITY order

enum _RW_type

Enumerates the different RWtypes.

Enumerator:
RW_K_TYPE_LOCKING_ONLY  Locking mechanism only, no bpend mechanism available
RW_K_TYPE_PENDING  Pending mechanism available, single pender/reader only
RW_K_TYPE_PENDING_WTO  Pending with timeouts, single pender/reader only
RW_K_TYPE_PENDING_FIFO  Use FIFO pending order
RW_K_TYPE_PENDING_FIFO_WTO  Use FIFO pending order with timeouts available
RW_K_TYPE_PENDING_PRIORITY  Use PRIORITY pending order
RW_K_TYPE_PENDING_PRIORITY_WTO  Use PRIORITY pending order with timeouts available


Generated on Mon Aug 1 14:54:43 2011 by  doxygen 1.5.8