X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=KernelLand%2FModules%2FStorage%2FLVM%2Flvm_int.h;h=a2d1f5d7507d499d881a35d4e1a6168142dabb83;hb=e7a76b0d8a0cc6aa77966509780973a6f8216ef7;hp=36f2eb2ca9869e722ebfc5af43a1805b3310dfa2;hpb=48743e39650eb1ef988380e9d95f27fd40d3a9ce;p=tpg%2Facess2.git diff --git a/KernelLand/Modules/Storage/LVM/lvm_int.h b/KernelLand/Modules/Storage/LVM/lvm_int.h index 36f2eb2c..a2d1f5d7 100644 --- a/KernelLand/Modules/Storage/LVM/lvm_int.h +++ b/KernelLand/Modules/Storage/LVM/lvm_int.h @@ -5,4 +5,61 @@ * lvm_int.h * - Internal definitions */ +#ifndef _LVM_LVM_INT_H_ +#define _LVM_LVM_INT_H_ + +#include "include/lvm.h" +#include "lvm.h" +#include +#include + +typedef struct sLVM_SubVolume tLVM_SubVolume; + +enum eLVM_BackType +{ + LVM_BACKING_VFS, + LVM_BACKING_PTRS +}; + +struct sLVM_Vol +{ + tLVM_Vol *Next; + + tVFS_Node DirNode; + tVFS_Node VolNode; + + void *Ptr; + const tLVM_VolType *Type; + + size_t BlockSize; + Uint64 BlockCount; + + int nSubVolumes; + tLVM_SubVolume **SubVolumes; + + tIOCache *CacheHandle; + + char Name[]; +}; + +struct sLVM_SubVolume +{ + tLVM_Vol *Vol; + + tVFS_Node Node; + + // Note: Only for a simple volume + Uint64 FirstBlock; + Uint64 BlockCount; + + char Name[]; +}; + +extern tVFS_NodeType gLVM_SubVolNodeType; +extern tVFS_NodeType gLVM_VolNodeType; + +extern tLVM_Vol *gpLVM_FirstVolume; +extern tLVM_Vol *gpLVM_LastVolume; + +#endif