pub struct DevFileObject {
node: Arc<DevNode>,
position: RwLock<u64>,
device_id: usize,
device_type: DeviceType,
device_guard: Option<Arc<dyn Device>>,
}
Expand description
A file object for device files in DevFS
This struct provides a FileObject implementation that delegates device operations to the underlying device registered in DeviceManager.
Fields§
§node: Arc<DevNode>
Reference to the DevNode
position: RwLock<u64>
Current file position (for seekable devices)
device_id: usize
Device ID for lookup in DeviceManager
device_type: DeviceType
Device type
device_guard: Option<Arc<dyn Device>>
Optional device guard for device files
Implementations§
Source§impl DevFileObject
impl DevFileObject
Sourcepub fn new(
node: Arc<DevNode>,
device_id: usize,
device_type: DeviceType,
) -> Result<Self, FileSystemError>
pub fn new( node: Arc<DevNode>, device_id: usize, device_type: DeviceType, ) -> Result<Self, FileSystemError>
Create a new file object for device files
Sourcefn read_device(&self, buffer: &mut [u8]) -> Result<usize, FileSystemError>
fn read_device(&self, buffer: &mut [u8]) -> Result<usize, FileSystemError>
Read from the underlying device
Sourcefn write_device(&self, buffer: &[u8]) -> Result<usize, FileSystemError>
fn write_device(&self, buffer: &[u8]) -> Result<usize, FileSystemError>
Write to the underlying device
Trait Implementations§
Source§impl FileObject for DevFileObject
impl FileObject for DevFileObject
Source§fn seek(&self, whence: SeekFrom) -> Result<u64, StreamError>
fn seek(&self, whence: SeekFrom) -> Result<u64, StreamError>
Seek to a position in the file stream
Source§fn metadata(&self) -> Result<FileMetadata, StreamError>
fn metadata(&self) -> Result<FileMetadata, StreamError>
Get metadata about the file
Source§fn truncate(&self, _size: u64) -> Result<(), StreamError>
fn truncate(&self, _size: u64) -> Result<(), StreamError>
Truncate the file to the specified size Read more
Source§impl StreamOps for DevFileObject
impl StreamOps for DevFileObject
Source§fn read(&self, buffer: &mut [u8]) -> Result<usize, StreamError>
fn read(&self, buffer: &mut [u8]) -> Result<usize, StreamError>
Read data from the stream
Source§fn write(&self, buffer: &[u8]) -> Result<usize, StreamError>
fn write(&self, buffer: &[u8]) -> Result<usize, StreamError>
Write data to the stream