Modules - Working on LVM layer (not integrated yet)
[tpg/acess2.git] / KernelLand / Modules / Storage / LVM / lvm_int.h
1 /*
2  * Acess2 Logical Volume Manager
3  * - By John Hodge (thePowersGang)
4  *
5  * lvm_int.h
6  * - Internal definitions
7  */
8 #ifndef _LVM_LVM_INT_H_
9 #define _LVM_LVM_INT_H_
10
11 #include "lvm.h"
12 #include <vfs.h>
13
14 typedef struct sLVM_SubVolume   tLVM_SubVolume;
15
16 struct sLVM_Vol
17 {
18         tLVM_Vol        *Next;
19         
20         tVFS_Node       Node;
21         
22          int    BackingDescriptor;
23         size_t  BlockSize;
24         
25          int    nSubVolumes;
26         tLVM_SubVolume  **SubVolumes;
27
28         char    Name[];
29 };
30
31 struct sLVM_SubVolume
32 {
33         tLVM_Vol        *Vol;
34         
35         tVFS_Node       Node;
36
37         // Note: Only for a simple volume
38         Uint64  FirstBlock;
39         Uint64  BlockCount;
40
41         char    Name[];
42 };
43
44 extern tVFS_NodeType    gLVM_SubVolNodeType;
45
46 #endif
47

UCC git Repository :: git.ucc.asn.au