/* IBM_PROLOG_BEGIN_TAG */ /* This is an automatically generated prolog. */ /* */ /* bos720 src/bos/kernel/sys/xfops.h 1.2 */ /* */ /* Licensed Materials - Property of IBM */ /* */ /* Restricted Materials of IBM */ /* */ /* COPYRIGHT International Business Machines Corp. 2015 */ /* All Rights Reserved */ /* */ /* US Government Users Restricted Rights - Use, duplication or */ /* disclosure restricted by GSA ADP Schedule Contract with IBM Corp. */ /* */ /* IBM_PROLOG_END_TAG */ /* @(#)77 1.2 src/bos/kernel/sys/xfops.h, syslfs, bos720, 1522A_720 5/23/15 07:55:32 */ #ifndef _H_XFOPS #define _H_XFOPS /* * COMPONENT_NAME: SYSLFS - Logical File System */ #include #include #include #ifdef __cplusplus extern "C" { #endif #ifdef _KERNEL /* File system operation external validator */ typedef struct fskv { int kv_version; /* structure version */ char kv_name[12]; /* validator id */ int (*kv_open)(struct xfid *xfp, /* open callout */ long flags, void *nrp, cred_ext_t *crxp); int (*kv_setattr)(struct xfid *xfp, /* setattr callout */ long op, long arg1, long arg2, long arg3, void *nrp, cred_ext_t *crxp); } fskv_t; /* Version numbering */ /* Version 1 supports only open and setattr callouts */ #define FSKV_VERSION_1 1 #define FSKV_VERSION FSKV_VERSION_1 /* Special version number indicating no validator is configured */ #define FSKV_NONE -1 /* External file identifier struct */ typedef struct xfid { fsid_t x_fsid; fid_t x_fid; } xfid_t; /* Globals */ extern int32 fskvState; extern fskv_t fskvalidator; /* Global state values */ #define KV_UNCONFIGURED 0 #define KV_INITIALIZING 1 #define KV_CONFIGURED 2 #ifndef _NO_PROTO int fskv_reg(fskv_t *fs_kv, ulong options); int fskv_unreg(ulong options); int nameToXfid(char *pathname, struct xfid *xfp, struct vattr *vap, long flags); int xfidToName(struct xfid *xfp, void *nrp, char *pathname, unsigned int pbuflen, long flags); #else int fskv_reg(); int fskv_unreg(); int nameToXfid(); int xfidToName(); #endif /*_NO_PROTO*/ #endif /*_KERNEL*/ #ifdef __cplusplus } #endif #endif /* _H_XFOPS */