Ext
 All Files Functions
inode.h
Go to the documentation of this file.
1 
7 #ifndef EXT_FILESYSTEM_INODE_H_
8 #define EXT_FILESYSTEM_INODE_H_
9 
10 #include <stdint.h>
11 #include <stdbool.h>
12 #include "superblock.h"
13 
19 struct __attribute__((__packed__)) inode_info {
20  uint16_t id;
21  uint16_t blocks_count;
22  bool is_file;
23 };
24 
30 struct __attribute__((__packed__)) inode {
31  struct inode_info* inode_info;
32  uint16_t* block_ids;
33 };
34 
40 size_t sizeof_inode(const struct superblock* superblock);
41 
48 void init_inode(struct inode* inode,
49  uint16_t id,
50  bool is_file,
51  const struct superblock* superblock);
52 
57 void destroy_inode(struct inode* inode);
58 
68 ssize_t read_inode(int fd,
69  struct inode* inode,
70  uint16_t inode_id,
71  const struct superblock* superblock);
72 
81 ssize_t write_inode(int fd,
82  struct inode* inode,
83  const struct superblock* superblock);
84 
90 uint16_t sizeof_inodes_block(const struct superblock* superblock);
91 
92 #endif //EXT_FILESYSTEM_INODE_H_
ssize_t write_inode(int fd, struct inode *inode, const struct superblock *superblock)
Write inode from memory.
Definition: inode.c:83
struct __attribute__((__packed__)) inode_info
Contains information about inode.
Definition: inode.h:19
void destroy_inode(struct inode *inode)
Destructor of inode.
Definition: inode.c:44
Contains superblock struct and its methods.
uint16_t sizeof_inodes_block(const struct superblock *superblock)
Calculate size of block of all inodes.
Definition: inode.c:111
void init_inode(struct inode *inode, uint16_t id, bool is_file, const struct superblock *superblock)
Constructor of inode.
Definition: inode.c:34
ssize_t read_inode(int fd, struct inode *inode, uint16_t inode_id, const struct superblock *superblock)
Read inode from memory.
Definition: inode.c:49
size_t sizeof_inode(const struct superblock *superblock)
Count size of inode in bytes.
Definition: inode.c:12