IBM Books

IBM General Parallel File System for AIX: Data Management API Guide

[ Bottom of Page | Previous Page | Next Page | Table of Contents | Index ]


Appendix B. DMAPI functions in GPFS

Following are C declarations of all DMAPI functions in GPFS based on the XDSM standard. This is a listing of the file dmapi.h which is part of the GPFS installation. The file is installed in the directory: /user/lpp/mmfs/include.

#ifndef _DMAPI_H 
 
#define _DMAPI_H 
 
#include "dmapi_types.h" 
 
 
extern int dm_clear_inherit(
        dm_sessid_t            sid,               /* IN */
        void                   *hanp,             /* IN */
        size_t                 hlen,              /* IN */
        dm_token_t             token,             /* IN */
        dm_attrname_t          *attrnamep         /* IN */ 
        );
extern int dm_create_by_handle(
        dm_sessid_t            sid,               /* IN */
        void                   *dirhanp,          /* IN */
        size_t                 dirhlen,           /* IN */
        dm_token_t             token,             /* IN */
        void                   *hanp,             /* IN */
        size_t                 hlen,              /* IN */
        char                   *cname,            /* IN */ 
        );
 
extern int dm_create_session( 
       dm_sessid_t             oldsid,            /* IN */ 
       char                    *sessinfop,        /* IN */ 
       dm_sessid_t             *newsidp           /* OUT */ 
       ); 
extern int dm_create_userevent( 
       dm_sessid_t             sid,               /* IN */ 
       size_t                  msglen,            /* IN */ 
       void                    *msgdatap,         /* IN */ 
       dm_token_t              *tokenp            /* OUT */ 
       ); 
extern int dm_destroy_session( 
       dm_sessid_t             sid                /* IN */ 
       ); 
extern int dm_downgrade_right( 
       dm_sessid_t            sid,                /* IN */ 
       void                   *hanp,              /* IN */ 
       size_t                 hlen,               /* IN */ 
       dm_token_t             token               /* IN */ 
       ); 
extern int dm_fd_to_handle( 
       int                    fd,                 /* IN */ 
       void                   **hanpp,            /* OUT */ 
       size_t                 *hlenp              /* OUT */ 
       ); 
extern int dm_find_eventmsg( 
       dm_sessid_t            sid,                /* IN */ 
       dm_token_t             token,              /* IN */ 
       size_t                 buflen,             /* IN */ 
       void                   *bufp,              /* OUT */ 
       size_t                 *rlenp              /* OUT */ 
       ); 
extern int dm_get_allocinfo( 
       dm_sessid_t            sid,                /* IN */ 
       void                   *hanp,              /* IN */ 
       size_t                 hlen,               /* IN */ 
       dm_token_t             token,              /* IN */ 
       dm_off_t               *offp,              /* IN/OUT */ 
       u_int                  nelem,              /* IN */ 
       dm_extent_t            *extentp,           /* OUT */ 
       u_int                  *nelemp             /* OUT */ 
       ); 
extern int dm_get_bulkall( 
       dm_sessid_t             sid,               /* IN */ 
       void                    *hanp,             /* IN */ 
       size_t                  hlen,              /* IN */ 
       dm_token_t              token,             /* IN */ 
       u_int                   mask,              /* IN */ 
       dm_attrname_t           *attrnamep,        /* IN */ 
       dm_attrloc_t            *locp,             /* IN/OUT */ 
       size_t                  buflen,            /* IN */ 
       void                    *bufp,             /* OUT */ 
       size_t                  *rlenp             /* OUT */ 
       ); 
extern int dm_get_bulkatr( 
       dm_sessid_t             sid,               /* IN */ 
       void                    *hanp,             /* IN */ 
       size_t                  hlen,              /* IN */ 
       dm_token_t              token,             /* IN */ 
       u_int                   mask,              /* IN */ 
       dm_attrloc_t            *locp,             /* IN/OUT */ 
       size_t                  buflen,            /* IN */ 
       void                    *bufp,             /* OUT */ 
       size_t                  *rlenp             /* OUT */ 
       ); 
extern int dm_get_config( 
       void                    *hanp,             /* IN */ 
       size_t                  hlen,              /* IN */ 
       dm_config_t             flagname,          /* IN */ 
       dm_size_t               *retvalp           /* OUT */ 
       ); 
extern int dm_get_config_events( 
       void                    *hanp,             /* IN */ 
       size_t                  hlen,              /* IN */ 
       u_int                   nelem,             /* IN */ 
       dm_eventset_t           *eventsetp,        /* OUT */ 
       u_int                   *nelemp            /* OUT */ 
       ); 
extern int dm_get_dirattrs( 
       dm_sessid_t             sid,               /* IN */ 
       void                    *hanp,             /* IN */ 
       size_t                  hlen,              /* IN */ 
       dm_token_t              token,             /* IN */ 
       u_int                   mask,              /* IN */ 
       dm_attrloc_t            *locp,             /* IN/OUT */ 
       size_t                  buflen,            /* IN */ 
       void                    *bufp,             /* OUT */ 
       size_t                  *rlenp             /* OUT */ 
       ); 
extern int dm_get_dmattr( 
       dm_sessid_t             sid,               /* IN */ 
       void                    *hanp,             /* IN */ 
       size_t                  hlen,              /* IN */ 
       dm_token_t              token,             /* IN */ 
       dm_attrname_t           *attrnamep,        /* IN */ 
       size_t                  buflen,            /* IN */ 
       void                    *bufp,             /* OUT */ 
       size_t                  *rlenp             /* OUT */ 
       ); 
extern int dm_get_eventlist( 
       dm_sessid_t             sid,               /* IN */ 
       void                    *hanp,             /* IN */ 
       size_t                  hlen,              /* IN */ 
       dm_token_t              token,             /* IN */ 
       u_int                   nelem,             /* IN */ 
       dm_eventset_t           *eventsetp,        /* OUT */ 
       u_int                   *nelemp            /* OUT */ 
       ); 
extern int dm_get_events( 
       dm_sessid_t             sid,               /* IN */ 
       u_int                   maxmsgs,           /* IN */ 
       u_int                   flags,             /* IN */ 
       size_t                  buflen,            /* IN */ 
       void                    *bufp,             /* OUT */ 
       size_t                  *rlenp             /* OUT */ 
       );
extern int dm_get_fileattr( 
       dm_sessid_t             sid,               /* IN */ 
       void                    *hanp,             /* IN */ 
       size_t                  hlen,              /* IN */ 
       dm_token_t              token,             /* IN */ 
       u_int                   mask,              /* IN */ 
       dm_stat_t               *statp             /* OUT */ 
       );
extern int dm_get_mountinfo( 
       dm_sessid_t             sid,               /* IN */ 
       void                    *hanp,             /* IN */ 
       size_t                  hlen,              /* IN */ 
       dm_token_t              token,             /* IN */ 
       size_t                  buflen,            /* IN */ 
       void                    *bufp,             /* OUT */ 
       size_t                  *rlenp             /* OUT */ 
       ); 
extern int dm_get_region( 
       dm_sessid_t             sid,               /* IN */ 
       void                    *hanp,             /* IN */ 
       size_t                  hlen,              /* IN */ 
       dm_token_t              token,             /* IN */ 
       u_int                   nelem,             /* IN */ 
       dm_region_t             *regbufp,          /* OUT */ 
       u_int                   *nelemp            /* OUT */ 
       ); 
extern int dm_getall_disp( 
       dm_sessid_t             sid,               /* IN */ 
       size_t                  buflen,            /* IN */ 
       void                    *bufp,             /* OUT */ 
       size_t                  *rlenp             /* OUT */ 
       ); 
extern int dm_getall_dmattr( 
       dm_sessid_t             sid,               /* IN */ 
       void                    *hanp,             /* IN */ 
       size_t                  hlen,              /* IN */ 
       dm_token_t              token,             /* IN */ 
       size_t                  buflen,            /* IN */ 
       void                    *bufp,             /* OUT */ 
       size_t                  *rlenp             /* OUT */ 
       ); 
extern int dm_getall_inherit( 
       dm_sessid_t             sid,               /* IN */ 
       void                    *hanp,             /* IN */ 
       size_t                  hlen,              /* IN */ 
       dm_token_t              token,             /* IN */ 
       u_int                   nelem,             /* IN */ 
       dm_inherit_t            *inheritbufp,      /* OUT */ 
       u_int                   *nelemp            /* OUT */ 
       ); 
extern int dm_getall_sessions( 
       u_int                   nelem,             /* IN */ 
       dm_sessid_t             *sidbufp,          /* OUT */ 
       u_int                   *nelemp            /* OUT */ 
       );
extern int dm_getall_tokens( 
       dm_sessid_t             sid,               /* IN */ 
       u_int                   nelem,             /* IN */ 
       dm_token_t              *tokenbufp,        /* OUT */ 
       u_int                   *nelemp            /* OUT */ 
       ); 
extern int dm_handle_cmp( 
       void                    *hanp1,            /* IN */ 
       size_t                  hlen1,             /* IN */ 
       void                    *hanp2,            /* IN */ 
       size_t                  hlen2              /* IN */ 
       ); 
extern void dm_handle_free( 
       void                    *hanp,             /* IN */ 
       size_t                  hlen               /* IN */ 
       ); 
extern u_int dm_handle_hash( 
       void                    *hanp,             /* IN */ 
       size_t                  hlen               /* IN */ 
       ); 
extern dm_boolean_t dm_handle_is_valid( 
       void                    *hanp,             /* IN */ 
       size_t                  hlen               /* IN */ 
       ); 
extern int dm_handle_to_fshandle( 
       void                    *hanp,             /* IN */ 
       size_t                  hlen,              /* IN */ 
       void                    **fshanpp,         /* OUT */ 
       size_t                  *fslenp            /* OUT */ 
       ); 
extern int dm_handle_to_fsid( 
       void                    *hanp,             /* IN */ 
       size_t                  hlen,              /* IN */ 
       dm_fsid_t               *fsidp             /* OUT */ 
       ); 
extern int dm_handle_to_igen( 
       void                    *hanp,             /* IN */ 
       size_t                  hlen,              /* IN */ 
       dm_igen_t               *igenp             /* OUT */ 
       ); 
extern int dm_handle_to_ino( 
       void                    *hanp,             /* IN */ 
       size_t                  hlen,              /* IN */ 
       dm_ino_t                *inop              /* OUT */ 
        ); 
extern int dm_handle_to_path( 
       void                    *dirhanp,          /* IN */ 
       size_t                  dirhlen1,          /* IN */ 
       void                    *targhanp,         /* IN */ 
       size_t                  targhlen,          /* IN */ 
       size_t                  buflen,            /* IN */ 
       char                    *pathbufp,         /* OUT */ 
       size_t                  *rlenp             /* OUT */ 
       ); 
extern int dm_init_attrloc( 
       dm_sessid_t             sid,               /* IN */ 
       void                    *hanp,             /* IN */ 
       size_t                  hlen,              /* IN */ 
       dm_token_t              token,             /* IN */ 
       dm_attrloc_t            *locp              /* OUT */ 
       ); 
extern int dm_init_service( 
       char                    **versionstrpp     /* OUT */ 
       ); 
extern int dm_make_fshandle( 
       dm_fsid_t               *fsidp,            /* IN */ 
       void                    **hanpp,           /* OUT */ 
       size_t                  *hlenp             /* OUT */ 
       ); 
extern int dm_make_handle( 
       dm_fsid_t               *fsidp,            /* IN */ 
       dm_ino_t                *inop,             /* IN */ 
       dm_igen_t               *igenp,            /* IN */ 
       void                    **hanpp,           /* OUT */ 
       size_t                  *hlenp             /* OUT */ 
       ); 
extern int dm_mkdir_by_handle( 
       dm_sessid_t             sid,               /* IN */ 
       void                    *dirhanp,          /* IN */ 
       size_t                  dirhlen,           /* IN */ 
       dm_token_t              token,             /* IN */ 
       void                    *hanp,             /* IN */ 
       size_t                  hlen,              /* IN */ 
       char                    *cname             /* IN */ 
       ); 
extern int dm_move_event( 
       dm_sessid_t             srcsid,            /* IN */ 
       dm_token_t              token,             /* IN */ 
       dm_sessid_t             targetsid,         /* IN */ 
       dm_token_t              *rtokenp           /* OUT */ 
       ); 
extern int dm_obj_ref_hold( 
       dm_sessid_t             sid,               /* IN */ 
       dm_token_t              token,             /* IN */ 
       void                    *hanp,             /* IN */ 
       size_t                  hlen               /* IN */ 
       ); 
extern int dm_obj_ref_query( 
       dm_sessid_t             sid,               /* IN */ 
       dm_token_t              token,             /* IN */ 
       void                    *hanp,             /* IN */ 
       size_t                  hlen               /* IN */
       ); 
extern int dm_obj_ref_rele( 
       dm_sessid_t             sid,               /* IN */ 
       dm_token_t              token,             /* IN */ 
       void                    *hanp,             /* IN */ 
       size_t                  hlen               /* IN */ 
       ); 
extern int dm_path_to_fshandle( 
       char                    *path,             /* IN */ 
       void                    **hanpp,           /* OUT */ 
       size_t                  *hlenp             /* OUT */ 
       ); 
extern int dm_path_to_handle( 
       char                    *path,             /* IN */ 
       void                    **hanpp,           /* OUT */ 
       size_t                  *hlenp             /* OUT */ 
       ); 
extern int dm_pending( 
       dm_sessid_t             sid,               /* IN */ 
       dm_token_t              token,             /* IN */ 
       dm_timestruct_t         *delay             /* IN */ 
       ); 
extern int dm_probe_hole( 
       dm_sessid_t             sid,               /* IN */ 
       void                    *hanp,             /* IN */ 
       size_t                  hlen,              /* IN */ 
       dm_token_t              token,             /* IN */ 
       dm_off_t                off,               /* IN */ 
       dm_size_t               len,               /* IN */ 
       dm_off_t                *roffp,            /* OUT */ 
       dm_size_t               *rlenp             /* OUT */ 
       ); 
extern int dm_punch_hole( 
       dm_sessid_t             sid,               /* IN */ 
       void                    *hanp,             /* IN */ 
       size_t                  hlen,              /* IN */ 
       dm_token_t              token,             /* IN */ 
       dm_off_t                off,               /* IN */ 
       dm_size_t               len                /* IN */ 
       ); 
extern int dm_query_right( 
       dm_sessid_t             sid,               /* IN */ 
       void                    *hanp,             /* IN */ 
       size_t                  hlen,              /* IN */ 
       dm_token_t              token,             /* IN */ 
       dm_right_t              *rightp            /* OUT */ 
       );
extern int dm_query_session( 
       dm_sessid_t             sid,               /* IN */ 
       size_t                  buflen,            /* IN */ 
       void                    *bufp,             /* OUT */ 
       size_t                  *rlenp             /* OUT */ 
       ); 
extern dm_ssize_t dm_read_invis( 
       dm_sessid_t             sid,               /* IN */ 
       void                    *hanp,             /* IN */ 
       size_t                  hlen,              /* IN */ 
       dm_token_t              token,             /* IN */ 
       dm_off_t                off,               /* IN */ 
       dm_size_t               len,               /* IN */ 
       void                    *bufp              /* OUT */ 
       ); 
extern int dm_release_right( 
       dm_sessid_t             sid,               /* IN */ 
       void                    *hanp,             /* IN */ 
       size_t                  hlen,              /* IN */ 
       dm_token_t              token              /* IN */ 
       ); 
extern int dm_remove_dmattr( 
       dm_sessid_t             sid,               /* IN */ 
       void                    *hanp,             /* IN */ 
       size_t                  hlen,              /* IN */ 
       dm_token_t              token,             /* IN */ 
       int                     setdtime,          /* IN */ 
       dm_attrname_t           *attrnamep         /* IN */ 
       ); 
extern int dm_request_right( 
       dm_void                 *hanp,             /* IN */ 
       size_t                  hlen,              /* IN */ 
       dm_token_t              token,             /* IN */ 
       u_int                   flags,             /* IN */ 
       dm_right_t              right              /* IN */ 
       ); 
extern int dm_respond_event( 
       dm_sessid_t             sid,               /* IN */ 
       dm_token_t              token,             /* IN */ 
       dm_response_t           response,          /* IN */ 
       int                     reterror,          /* IN */ 
       size_t                  buflen,            /* IN */ 
       void                    *respbufp          /* IN */ 
       ); 
extern int dm_send_msg( 
       dm_sessid_t             targetsid,         /* IN */ 
       dm_msgtype_t            msgtype,           /* IN */ 
       size_t                  buflen,            /* IN */ 
       void                    *bufp              /* IN */ 
       ); 
extern int dm_set_disp( 
       dm_sessid_t             sid,               /* IN */ 
       void                    *hanp,             /* IN */ 
       size_t                  hlen,              /* IN */ 
       dm_token_t              token,             /* IN */ 
       dm_eventset_t           *eventsetp,        /* IN */ 
       u_int                   maxevent           /* IN */ 
       ); 
extern int dm_set_dmattr( 
       dm_sessid_t             sid,               /* IN */ 
       void                    *hanp,             /* IN */ 
       size_t                  hlen,              /* IN */ 
       dm_token_t              token,             /* IN */ 
       dm_attrname_t           *attrnamep,        /* IN */ 
       int                     setdtime,          /* IN */ 
       size_t                  buflen,            /* IN */ 
       void                    *bufp              /* IN */ 
       ); 
extern int dm_set_eventlist( 
       dm_sessid_t             sid,               /* IN */ 
       void                    *hanp,             /* IN */ 
       size_t                  hlen,              /* IN */ 
       dm_token_t              token,             /* IN */ 
       dm_eventset_t           *eventsetp,        /* IN */ 
       u_int                   maxevent           /* IN */ 
       ); 
extern int dm_set_fileattr( 
       dm_sessid_t             sid,               /* IN */ 
       void                    *hanp,             /* IN */ 
       size_t                  hlen,              /* IN */ 
       dm_token_t              token,             /* IN */ 
       u_int                   mask,              /* IN */ 
       dm_fileattr_t           *attrp             /* IN */ 
       ); 
extern int dm_set_inherit( 
       dm_sessid_t             sid,               /* IN */ 
       void                    *hanp,             /* IN */ 
       size_t                  hlen,              /* IN */ 
       dm_token_t              token,             /* IN */ 
       dm_attrname_t           *attrnamep,        /* IN */ 
       mode_t                  mode               /* IN */ 
       ); 
extern int dm_set_region( 
       dm_sessid_t             sid,               /* IN */ 
       void                    *hanp,             /* IN */ 
       size_t                  hlen,              /* IN */ 
       dm_token_t              token,             /* IN */ 
       u_int                   nelem,             /* IN */ 
       dm_region_t             *regbufp,          /* IN */ 
       dm_boolean_t            *exactflagp        /* OUT */ 
       );  
extern int dm_set_return_on_destroy( 
       dm_sessid_t             sid,               /* IN */ 
       void                    *hanp,             /* IN */ 
       size_t                  hlen,              /* IN */ 
       dm_token_t              token,             /* IN */ 
       dm_attrname_t           *attrnamep,        /* IN */ 
       dm_boolean_t            enable             /* IN */ 
       );  
extern int dm_symlink_by_handle( 
       dm_sessid_t             sid,               /* IN */ 
       void                    *dirhanp,          /* IN */ 
       size_t                  dirhlen,           /* IN */ 
       dm_token_t              token,             /* IN */ 
       void                    *hanp,             /* IN */ 
       size_t                  hlen,              /* IN */ 
       char                    *cname,            /* IN */ 
       char                    *path              /* IN */ 
       ); 
extern int dm_sync_by_handle( 
       dm_sessid_t             sid,               /* IN */ 
       void                    *hanp,             /* IN */ 
       size_t                  hlen,              /* IN */ 
       dm_token_t              token              /* IN */ 
       ); 
extern int dm_upgrade_right( 
       dm_sessid_t             sid,               /* IN */ 
       void                    *hanp,             /* IN */ 
       size_t                  hlen,              /* IN */ 
       dm_token_t              token              /* IN */ 
       ); 
extern dm_ssize_t dm_write_invis( 
       dm_sessid_t             sid,               /* IN */ 
       void                    *hanp,             /* IN */ 
       size_t                  hlen,              /* IN */ 
       dm_token_t              token,             /* IN */ 
       int                     flags,             /* IN */ 
       dm_off_t                off,               /* IN */ 
       dm_size_t               len,               /* IN */ 
       void                    *bufp              /* IN */ 
       ); 
#endif /* _DMAPI_H */ 


[ Top of Page | Previous Page | Next Page | Table of Contents | Index ]