00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014 #ifndef LC_FS_NODE_H
00015 #define LC_FS_NODE_H
00016
00017 #include <gwenhywfar/misc.h>
00018 #include <gwenhywfar/inherit.h>
00019 #include <gwenhywfar/stringlist2.h>
00020
00021
00022 #define LC_FS_MODE_MASK_NODE 0x0000ffff
00023
00024
00025
00026 #define LC_FS_MODE_MASK_HANDLE 0xffff0000
00027 #define LC_FS_HANDLE_MODE_READ 0x00010000
00028 #define LC_FS_HANDLE_MODE_WRITE 0x00020000
00029
00030
00031 typedef struct LC_FS_NODE LC_FS_NODE;
00032 typedef struct LC_FS_NODE_HANDLE LC_FS_NODE_HANDLE;
00033
00034 #include <chipcard2/chipcard2.h>
00035
00036
00037 GWEN_LIST_FUNCTION_LIB_DEFS(LC_FS_NODE, LC_FSNode, CHIPCARD_API)
00038 GWEN_INHERIT_FUNCTION_LIB_DEFS(LC_FS_NODE, CHIPCARD_API)
00039
00040 #include <chipcard2-client/fs/fs.h>
00041 #include <chipcard2-client/fs/fsmodule.h>
00042
00043
00044 LC_FS_NODE *LC_FSNode_new(LC_FS_MODULE *fs);
00045 void LC_FSNode_free(LC_FS_NODE *fn);
00046 void LC_FSNode_Attach(LC_FS_NODE *fn);
00047
00048 GWEN_TYPE_UINT32 LC_FSNode_GetLockedById(const LC_FS_NODE *fn);
00049 void LC_FSNode_SetLockedById(LC_FS_NODE *fn, GWEN_TYPE_UINT32 id);
00050 GWEN_TYPE_UINT32 LC_FSNode_GetFlags(const LC_FS_NODE *fn);
00051 void LC_FSNode_SetFlags(LC_FS_NODE *fn, GWEN_TYPE_UINT32 fl);
00052 void LC_FSNode_AddFlags(LC_FS_NODE *fn, GWEN_TYPE_UINT32 fl);
00053 void LC_FSNode_SubFlags(LC_FS_NODE *fn, GWEN_TYPE_UINT32 fl);
00054
00055 GWEN_TYPE_UINT32 LC_FSNode_GetFileMode(const LC_FS_NODE *fn);
00056 void LC_FSNode_SetFileMode(LC_FS_NODE *fn, GWEN_TYPE_UINT32 m);
00057
00058 GWEN_TYPE_UINT32 LC_FSNode_GetFileSize(const LC_FS_NODE *fn);
00059 void LC_FSNode_SetFileSize(LC_FS_NODE *fn, GWEN_TYPE_UINT32 s);
00060
00061 LC_FS_NODE *LC_FSNode_GetMounted(const LC_FS_NODE *fn);
00062 void LC_FSNode_SetMounted(LC_FS_NODE *fn, LC_FS_NODE *n);
00063 LC_FS_MODULE *LC_FSNode_GetFileSystem(const LC_FS_NODE *fn);
00064 void LC_FSNode_SetFileSystem(LC_FS_NODE *fn, LC_FS_MODULE *fs);
00065
00066 time_t LC_FSNode_GetCTime(const LC_FS_NODE *fn);
00067 void LC_FSNode_SetCTime(LC_FS_NODE *fn, time_t ti);
00068
00069 time_t LC_FSNode_GetATime(const LC_FS_NODE *fn);
00070 void LC_FSNode_SetATime(LC_FS_NODE *fn, time_t ti);
00071
00072 time_t LC_FSNode_GetMTime(const LC_FS_NODE *fn);
00073 void LC_FSNode_SetMTime(LC_FS_NODE *fn, time_t ti);
00074
00075
00076
00077
00078
00079
00080
00081 LC_FS_NODE_HANDLE *LC_FSNodeHandle_new(const char *name,
00082 LC_FS_NODE *fn,
00083 GWEN_TYPE_UINT32 id);
00084 void LC_FSNodeHandle_free(LC_FS_NODE_HANDLE *fh);
00085 void LC_FSNodeHandle_Attach(LC_FS_NODE_HANDLE *fh);
00086
00087
00088 const char *LC_FSNodeHandle_GetName(const LC_FS_NODE_HANDLE *fh);
00089
00090 GWEN_TYPE_UINT32 LC_FSNodeHandle_GetId(const LC_FS_NODE_HANDLE *fh);
00091
00092 LC_FS_NODE *LC_FSNodeHandle_GetNode(const LC_FS_NODE_HANDLE *fh);
00093
00094 GWEN_TYPE_UINT32 LC_FSNodeHandle_GetFlags(const LC_FS_NODE_HANDLE *fh);
00095 void LC_FSNodeHandle_SetFlags(LC_FS_NODE_HANDLE *fh, GWEN_TYPE_UINT32 fl);
00096 void LC_FSNodeHandle_AddFlags(LC_FS_NODE_HANDLE *fh, GWEN_TYPE_UINT32 fl);
00097 void LC_FSNodeHandle_SubFlags(LC_FS_NODE_HANDLE *fh, GWEN_TYPE_UINT32 fl);
00098
00099 GWEN_TYPE_UINT32 LC_FSNodeHandle_GetFilePointer(const LC_FS_NODE_HANDLE *fh);
00100 void LC_FSNodeHandle_SetFilePointer(LC_FS_NODE_HANDLE *fh,
00101 GWEN_TYPE_UINT32 fpos);
00102
00103 int LC_FSNodeHandle_GetFirstEntry(LC_FS_NODE_HANDLE *fh,
00104 GWEN_BUFFER *ebuf);
00105 int LC_FSNodeHandle_GetNextEntry(LC_FS_NODE_HANDLE *fh,
00106 GWEN_BUFFER *ebuf);
00107 void LC_FSNodeHandle_AddEntry(LC_FS_NODE_HANDLE *fh,
00108 const char *name);
00109
00110 #endif
00111
00112