change name init_inode to new_inode, return struct inode pointer
This commit is contained in:
parent
ee66c10796
commit
aacb3e0193
@ -9,7 +9,7 @@ class FilesOperation {
|
|||||||
FilesOperation(RawDisk&);
|
FilesOperation(RawDisk&);
|
||||||
int read_datablock(INode& inode, u_int64_t index, char* buffer);
|
int read_datablock(INode& inode, u_int64_t index, char* buffer);
|
||||||
int write_datablock(INode& inode, u_int64_t index, char* buffer);
|
int write_datablock(INode& inode, u_int64_t index, char* buffer);
|
||||||
void init_inode(u_int64_t inode_number, u_int64_t permissions);
|
INode* new_inode(u_int64_t inode_number, u_int64_t permissions);
|
||||||
void initialize_rootinode();
|
void initialize_rootinode();
|
||||||
u_int64_t mkfile(u_int64_t parent_inode_number, const char* name, u_int64_t permissions);
|
u_int64_t mkfile(u_int64_t parent_inode_number, const char* name, u_int64_t permissions);
|
||||||
u_int64_t namei(const char* path);
|
u_int64_t namei(const char* path);
|
||||||
|
@ -72,22 +72,25 @@ int FilesOperation::write_datablock(INode& inode, u_int64_t index, char* buffer)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void FilesOperation::init_inode(u_int64_t inode_number, u_int64_t permissions) {
|
INode* FilesOperation::new_inode(u_int64_t inode_number, u_int64_t permissions) {
|
||||||
// zero out disk space of inode, because in memory inode is uninitialized by default
|
// zero out disk space of inode, because in memory inode is uninitialized by default
|
||||||
char buffer[SECTOR_SIZE] = {0};
|
char buffer[SECTOR_SIZE] = {0};
|
||||||
disk.rawdisk_write(inode_number*SECTOR_SIZE, buffer, sizeof(buffer));
|
disk.rawdisk_write(inode_number*SECTOR_SIZE, buffer, sizeof(buffer));
|
||||||
INode inode;
|
INode *inode = new INode;
|
||||||
inode.inode_construct(inode_number, disk);
|
inode->inode_construct(inode_number, disk);
|
||||||
inode.block_number = inode_number;
|
inode->block_number = inode_number;
|
||||||
inode.permissions = permissions;
|
inode->permissions = permissions;
|
||||||
inode.inode_save(disk);
|
inode->inode_save(disk);
|
||||||
|
|
||||||
|
return inode;
|
||||||
}
|
}
|
||||||
|
|
||||||
void FilesOperation::initialize_rootinode() {
|
void FilesOperation::initialize_rootinode() {
|
||||||
// this method must be called explicitly right after initializion
|
// this method must be called explicitly right after initializion
|
||||||
root_inode = inop.inode_allocate(disk);
|
root_inode = inop.inode_allocate(disk);
|
||||||
printf("Info: root inode number: %llu\n", root_inode);
|
printf("Info: root inode number: %llu\n", root_inode);
|
||||||
init_inode(root_inode, 1);
|
INode *get_inode = new_inode(root_inode, 1);
|
||||||
|
delete get_inode;
|
||||||
}
|
}
|
||||||
|
|
||||||
u_int64_t FilesOperation::mkfile(u_int64_t parent_inode_number, const char* name, u_int64_t permissions) {
|
u_int64_t FilesOperation::mkfile(u_int64_t parent_inode_number, const char* name, u_int64_t permissions) {
|
||||||
@ -127,8 +130,8 @@ u_int64_t FilesOperation::mkfile(u_int64_t parent_inode_number, const char* name
|
|||||||
inode.inode_save(disk);
|
inode.inode_save(disk);
|
||||||
|
|
||||||
// initialize new file
|
// initialize new file
|
||||||
init_inode(new_inode_number, permissions);
|
INode *get_inode = new_inode(new_inode_number, permissions);
|
||||||
|
delete get_inode;
|
||||||
return new_inode_number;
|
return new_inode_number;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user