32,8 → 32,15 |
* OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, |
* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
*/ |
|
/** @addtogroup FileSystemImpl |
* @{ |
*/ |
|
/* Data block. */ |
/** |
* @file block.h |
* @brief Data block. |
*/ |
|
#ifndef _BLOCK_H |
#define _BLOCK_H |
40,24 → 47,32 |
|
#include "dir.h" |
|
#define DIRECTORY_BLOCK 1 /* directory block */ |
#define INDIRECT_BLOCK 2 /* pointer block */ |
#define DIRECTORY_BLOCK 1 /**< directory block */ |
#define INDIRECT_BLOCK 2 /**< pointer block */ |
|
/** |
* Data block |
*/ |
typedef struct { |
union { |
char b__data[BLOCK_SIZE]; /* ordinary user data */ |
direct_t b__dir[NR_DIR_ENTRIES]; /* directory block */ |
directex_t b__direx[NR_DIR_ENTRIES_EX]; /* extended directory block */ |
zone1_t b__v1_ind[V1_INDIRECTS]; /* V1 indirect block */ |
zone_t b__v2_ind[V2_INDIRECTS]; /* V2 indirect block */ |
d1_inode_t b__v1_ino[V1_INODES_PER_BLOCK]; /* V1 inode block */ |
d2_inode_t b__v2_ino[V2_INODES_PER_BLOCK]; /* V2 inode block */ |
char b__data[BLOCK_SIZE]; /**< ordinary user data */ |
direct_t b__dir[NR_DIR_ENTRIES]; /**< directory block */ |
directex_t b__direx[NR_DIR_ENTRIES_EX]; /**< extended directory block */ |
zone1_t b__v1_ind[V1_INDIRECTS]; /**< V1 indirect block */ |
zone_t b__v2_ind[V2_INDIRECTS]; /**< V2 indirect block */ |
d1_inode_t b__v1_ino[V1_INODES_PER_BLOCK]; /**< V1 inode block */ |
d2_inode_t b__v2_ino[V2_INODES_PER_BLOCK]; /**< V2 inode block */ |
} b; |
|
block_num_t b_blocknr; /* number of block */ |
char b_count; /* number of users of this block */ |
block_num_t b_blocknr; /**< number of block */ |
char b_count; /**< number of users of this block */ |
} block_t; |
|
extern block_t* work_block; |
|
#endif /* _BLOCK_H */ |
|
/** |
* } |
*/ |
|