vfs: FsNode::new()
This commit is contained in:
parent
52ff9f8a3c
commit
9ed5ffc521
|
@ -41,8 +41,24 @@ pub struct FsNode {
|
|||
}
|
||||
|
||||
impl FsNode {
|
||||
pub fn new(
|
||||
flags: FsNodeFlags,
|
||||
length: u32,
|
||||
inode: u32,
|
||||
device_handle: Handle,
|
||||
ptr: Weak<FsNode>,
|
||||
) -> Self {
|
||||
Self {
|
||||
flags,
|
||||
length,
|
||||
inode,
|
||||
device_handle,
|
||||
ptr,
|
||||
}
|
||||
}
|
||||
|
||||
// TODO: make this take flags
|
||||
fn open(&self) -> Result<Handle> {
|
||||
pub fn open(&self) -> Result<Handle> {
|
||||
let state = KERNEL_STATE.lock();
|
||||
let device = state
|
||||
.get_storage_device(self.device_handle)
|
||||
|
@ -51,7 +67,7 @@ impl FsNode {
|
|||
device.open(self)
|
||||
}
|
||||
|
||||
fn close(&self) -> Result<()> {
|
||||
pub fn close(&self) -> Result<()> {
|
||||
let state = KERNEL_STATE.lock();
|
||||
let device = state
|
||||
.get_storage_device(self.device_handle)
|
||||
|
@ -60,7 +76,7 @@ impl FsNode {
|
|||
device.close(self)
|
||||
}
|
||||
|
||||
fn read(&self, offset: u32, size: u32) -> Result<Box<[u8]>> {
|
||||
pub fn read(&self, offset: u32, size: u32) -> Result<Box<[u8]>> {
|
||||
let state = KERNEL_STATE.lock();
|
||||
let device = state
|
||||
.get_storage_device(self.device_handle)
|
||||
|
@ -69,7 +85,7 @@ impl FsNode {
|
|||
device.read(self, offset, size)
|
||||
}
|
||||
|
||||
fn write(&self, offset: u32, buffer: Box<[u8]>) -> Result<()> {
|
||||
pub fn write(&self, offset: u32, buffer: Box<[u8]>) -> Result<()> {
|
||||
let state = KERNEL_STATE.lock();
|
||||
let device = state
|
||||
.get_storage_device(self.device_handle)
|
||||
|
@ -78,7 +94,7 @@ impl FsNode {
|
|||
device.write(self, offset, buffer)
|
||||
}
|
||||
|
||||
fn read_dir(&self, index: u32) -> Result<DirectoryEntry> {
|
||||
pub fn read_dir(&self, index: u32) -> Result<DirectoryEntry> {
|
||||
let state = KERNEL_STATE.lock();
|
||||
let device = state
|
||||
.get_storage_device(self.device_handle)
|
||||
|
@ -87,7 +103,7 @@ impl FsNode {
|
|||
device.read_dir(self, index)
|
||||
}
|
||||
|
||||
fn find_dir(&self, name: &str) -> Result<FsNode> {
|
||||
pub fn find_dir(&self, name: &str) -> Result<FsNode> {
|
||||
let state = KERNEL_STATE.lock();
|
||||
let device = state
|
||||
.get_storage_device(self.device_handle)
|
||||
|
|
Loading…
Reference in a new issue