Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion kernel/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,8 @@ crate-type = ["staticlib"]
x86_64 = "0.14.10"
bitflags = "1.3.2"
virtio-drivers = "0.2.0"

# 一个无锁MPSC队列
thingbuf = { version = "0.1.3", default-features = false, features = ["alloc"] }

# 构建时依赖项
[build-dependencies]
Expand Down
2 changes: 1 addition & 1 deletion kernel/src/driver/Makefile
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@

CFLAGS += -I .

kernel_driver_subdirs:=video interrupt usb pci acpi disk keyboard mouse multiboot2 timers tty hid virtio
kernel_driver_subdirs:=video interrupt usb pci acpi disk keyboard mouse multiboot2 timers hid virtio

ECHO:
@echo "$@"
Expand Down
3 changes: 2 additions & 1 deletion kernel/src/driver/disk/ahci/ahci_inode.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
use crate::filesystem::devfs::{DevFS, DeviceINode};
use crate::filesystem::vfs::file::FileMode;
use crate::filesystem::vfs::{
core::generate_inode_id, make_rawdev, FilePrivateData, FileSystem, FileType, IndexNode,
Metadata, PollStatus,
Expand Down Expand Up @@ -77,7 +78,7 @@ impl IndexNode for LockedAhciInode {
self
}

fn open(&self, _data: &mut FilePrivateData) -> Result<(), i32> {
fn open(&self, _data: &mut FilePrivateData, _mode: &FileMode) -> Result<(), i32> {
Err(-(ENOTSUP as i32))
}

Expand Down
10 changes: 6 additions & 4 deletions kernel/src/driver/keyboard/ps2_keyboard.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ use alloc::sync::{Arc, Weak};
use crate::{
filesystem::{
devfs::{devfs_register, DevFS, DeviceINode},
vfs::{core::generate_inode_id, FileType, IndexNode, Metadata, PollStatus},
vfs::{core::generate_inode_id, file::FileMode, FileType, IndexNode, Metadata, PollStatus},
},
include::bindings::bindings::{vfs_file_operations_t, vfs_file_t, vfs_index_node_t, ENOTSUP},
kdebug,
Expand Down Expand Up @@ -68,10 +68,8 @@ impl DeviceINode for LockedPS2KeyBoardInode {

#[no_mangle] // 不重命名
pub extern "C" fn ps2_keyboard_register(f_ops: &vfs_file_operations_t) {
kdebug!("register keyboard = {:p}", f_ops);
devfs_register("ps2_keyboard", LockedPS2KeyBoardInode::new(f_ops))
.expect("Failed to register ps/2 keyboard");
kdebug!("register keyboard = {:p}", f_ops);
}

impl IndexNode for LockedPS2KeyBoardInode {
Expand Down Expand Up @@ -105,7 +103,11 @@ impl IndexNode for LockedPS2KeyBoardInode {
return Err(-(ENOTSUP as i32));
}

fn open(&self, _data: &mut crate::filesystem::vfs::FilePrivateData) -> Result<(), i32> {
fn open(
&self,
_data: &mut crate::filesystem::vfs::FilePrivateData,
_mode: &FileMode,
) -> Result<(), i32> {
let guard = self.0.lock();
let func = guard.f_ops.open.unwrap();
let _ = unsafe { func(0 as *mut vfs_index_node_t, 0 as *mut vfs_file_t) };
Expand Down
1 change: 1 addition & 0 deletions kernel/src/driver/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,6 @@ pub mod disk;
pub mod keyboard;
pub mod pci;
pub mod timers;
pub mod tty;
pub mod uart;
pub mod virtio;
8 changes: 0 additions & 8 deletions kernel/src/driver/tty/Makefile

This file was deleted.

Loading