IBM General Parallel File System for AIX: Data Management API Guide
[ Bottom of Page | Previous Page | Next Page | Table of Contents | Index ]
Following is a description of GPFS enhancements to data structures defined
in the XDSM standard. For complete C declarations of all DMAPI data
structures that are used in the GPFS implementation of DMAPI, see Appendix A, "DMAPI data types and structures in GPFS".
- All file offsets and sizes in DMAPI data structures are 64 bits
long.
- Names (or paths) that are passed in event messages are character strings,
terminated by a null character. The length of the name buffer, as
specified in the dm_vardata_t structure, includes the null
character.
- The dm_region_t structure has a new 4-byte field,
rg_opaque. The DMAPI implementation does not interpret
rg_opaque. The DM application can use this field to store
additional information within the managed region.
- The dt_change field in the dm_stat structure is not
implemented in the i-node. The value will change each time it is
returned by the dm_get_fileattr function.
- The dt_dtime field in the dm_stat structure is
overloaded on the dt_ctime field.
- The dm_eventmsg structure has a new 4-byte field,
ev_nodeid. It uniquely identifies the node which generated the
event. The id is the SDR node number (attribute node_number in
the SDR).
- The ne_mode field in the dm_namesp_event structure has
an additional flag, DM_LOCAL_MOUNT. For the events preunmount
and unmount when this flag is set, the unmount operation is local to the
session node. (See "Mount and unmount").
- The me_mode field in the dm_mount_event structure has
two additional flags; DM_LOCAL_MOUNT, and
DM_REMOTE_MOUNT. (See "Mount and unmount").
- There are two "quick access" single-bit opaque DM attributes for each
file, stored directly in the i-node. (See "Data Management attributes")
- The data
type dm_eventset_t is implemented as a bit map, containing one bit
for each event that is defined in DMAPI. The bit is set if, and only
if, the event is present.
Variables of type dm_eventset_t should be manipulated only via
special macros. The XDSM standard provides a basic set of such
macros. GPFS provides a number of additional macros. The names
of all such macros begin with the prefix DMEV_.
Following is the list of additional macros that are provided by the GPFS
implementation of DMAPI:
- DMEV_ALL(eset)
- Add all events to eset
- DMEV_ISZERO(eset)
- Check if eset is empty
- DMEV_ISALL(eset)
- Check if eset contains all events
- DMEV_ADD(eset1, eset2)
- Add to eset2 all events in eset1
- DMEV_REM(eset1, eset2)
- Remove from eset2 all events in eset1
- DMEV_RES(eset1, eset2)
- Restrict eset2 by eset1
- DMEV_ISEQ(eset1, eset2)
- Check if eset1 and eset2 are equal
- DMEV_ISDISJ(eset1, eset2)
- Check if eset1 and eset2 are disjoint
- DMEV_ISSUB(eset2)
- Check if eset1 is a subset of eset2
- DMEV_NORM(eset)
- Normalize the internal format of eset, clearing all unused
bits.
- GPFS provides a set of macros for comparison of token ids (value of type
dm_token_t).
- DM_TOKEN_EQ (x,y)
- Check if x and y are the same
- DM_TOKEN_NE (x,y)
- Check if x and y are different
- DM_TOKEN_LT (x,y)
- Check if x is less than y
- DM_TOKEN_GT (x,y)
- Check if x is greater than y
- DM_TOKEN_LE (x,y)
- Check if x is less than or equal to y
- DM_TOKEN_GE (x,y)
- Check if x is greater than or equal to y
[ Top of Page | Previous Page | Next Page | Table of Contents | Index ]