/* Generated from fs.xg */
#ifndef _FS_
#define _FS_

#include <atypes.h>
#include <rx/rx.h>
#include <rx/rx_null.h>
#ifndef _COMMON_
#define _COMMON_
#define AFSNAMEMAX 256

#define AFSNAMEMAX_SIZE 0
struct AFSFid {
     u_int32_t Volume;
     u_int32_t Vnode;
     u_int32_t Unique;
};
typedef struct AFSFid AFSFid;

#define AFSFID_SIZE 12
char *ydr_encode_AFSFid(AFSFid *o, char *ptr);
char *ydr_decode_AFSFid(AFSFid *o, char *ptr);
struct VenusFid {
     int32_t Cell;
     struct AFSFid fid;
};
typedef struct VenusFid VenusFid;

#define VENUSFID_SIZE 16
char *ydr_encode_VenusFid(VenusFid *o, char *ptr);
char *ydr_decode_VenusFid(VenusFid *o, char *ptr);
struct AFSCallBack {
     u_int32_t CallBackVersion;
     u_int32_t ExpirationTime;
     u_int32_t CallBackType;
};
typedef struct AFSCallBack AFSCallBack;

#define AFSCALLBACK_SIZE 12
char *ydr_encode_AFSCallBack(AFSCallBack *o, char *ptr);
char *ydr_decode_AFSCallBack(AFSCallBack *o, char *ptr);
enum CallBackType {
     CBEXCLUSIVE = 1,
     CBSHARED = 2,
     CBDROPPED = 3
};
typedef enum CallBackType CallBackType;

#define CALLBACKTYPE_SIZE 4
char *ydr_encode_CallBackType(CallBackType *o, char *ptr);
char *ydr_decode_CallBackType(CallBackType *o, char *ptr);
struct AFSVolSync {
     u_int32_t spare1;
     u_int32_t spare2;
     u_int32_t spare3;
     u_int32_t spare4;
     u_int32_t spare5;
     u_int32_t spare6;
};
typedef struct AFSVolSync AFSVolSync;

#define AFSVOLSYNC_SIZE 24
char *ydr_encode_AFSVolSync(AFSVolSync *o, char *ptr);
char *ydr_decode_AFSVolSync(AFSVolSync *o, char *ptr);
#define TYPE_FILE 1

#define TYPE_FILE_SIZE 0
#define TYPE_DIR 2

#define TYPE_DIR_SIZE 0
#define TYPE_LINK 3

#define TYPE_LINK_SIZE 0
struct AFSFetchStatus {
     u_int32_t InterfaceVersion;
     u_int32_t FileType;
     u_int32_t LinkCount;
     u_int32_t Length;
     u_int32_t DataVersion;
     u_int32_t Author;
     u_int32_t Owner;
     u_int32_t CallerAccess;
     u_int32_t AnonymousAccess;
     u_int32_t UnixModeBits;
     u_int32_t ParentVnode;
     u_int32_t ParentUnique;
     u_int32_t SegSize;
     u_int32_t ClientModTime;
     u_int32_t ServerModTime;
     u_int32_t Group;
     u_int32_t SyncCount;
     u_int32_t spare1;
     u_int32_t spare2;
     u_int32_t spare3;
     u_int32_t spare4;
};
typedef struct AFSFetchStatus AFSFetchStatus;

#define AFSFETCHSTATUS_SIZE 84
char *ydr_encode_AFSFetchStatus(AFSFetchStatus *o, char *ptr);
char *ydr_decode_AFSFetchStatus(AFSFetchStatus *o, char *ptr);
struct AFSStoreStatus {
     u_int32_t Mask;
     u_int32_t ClientModTime;
     u_int32_t Owner;
     u_int32_t Group;
     u_int32_t UnixModeBits;
     u_int32_t SegSize;
};
typedef struct AFSStoreStatus AFSStoreStatus;

#define AFSSTORESTATUS_SIZE 24
char *ydr_encode_AFSStoreStatus(AFSStoreStatus *o, char *ptr);
char *ydr_decode_AFSStoreStatus(AFSStoreStatus *o, char *ptr);
#define AFSOPAQUEMAX 1024

#define AFSOPAQUEMAX_SIZE 0
typedef struct {
unsigned len;
char *val;
} AFSOpaque;

char *ydr_encode_AFSOpaque(AFSOpaque *o, char *ptr);
char *ydr_decode_AFSOpaque(AFSOpaque *o, char *ptr);
#define AFSCBMAX 50

#define AFSCBMAX_SIZE 0
typedef struct {
unsigned len;
struct AFSCallBack *val;
} AFSCBs;

char *ydr_encode_AFSCBs(AFSCBs *o, char *ptr);
char *ydr_decode_AFSCBs(AFSCBs *o, char *ptr);
typedef struct {
unsigned len;
struct AFSFid *val;
} AFSCBFids;

char *ydr_encode_AFSCBFids(AFSCBFids *o, char *ptr);
char *ydr_decode_AFSCBFids(AFSCBFids *o, char *ptr);
#endif  

#endif /* FS */
