diff --git a/Cargo.lock b/Cargo.lock index ac92d1f8b9..bce49e16c3 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -216,21 +216,6 @@ dependencies = [ "redox_syscall 0.7.3", ] -[[package]] -name = "bgad" -version = "0.1.0" -dependencies = [ - "common", - "daemon", - "inputd", - "libredox", - "log", - "orbclient", - "pcid", - "redox-scheme", - "redox_syscall 0.7.3", -] - [[package]] name = "bincode" version = "1.3.3" diff --git a/Cargo.toml b/Cargo.toml index 5b9b6e24fb..63e2b9a6b2 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -33,7 +33,6 @@ members = [ "drivers/audio/ihdad", "drivers/audio/sb16d", - "drivers/graphics/bgad", "drivers/graphics/console-draw", "drivers/graphics/fbbootlogd", "drivers/graphics/driver-graphics", diff --git a/drivers/README.md b/drivers/README.md index 1ef40ba8eb..5f33f2c70a 100644 --- a/drivers/README.md +++ b/drivers/README.md @@ -66,7 +66,6 @@ ### Graphics -- [graphics/bgad](graphics/bgad/) - Bochs video driver - [graphics/ihdgd](graphics/ihdgd/) - Intel graphics driver - [graphics/vesad](graphics/vesad/) - VESA video driver - [graphics/virtio-gpud](graphics/virtio-gpud/) - VirtIO-GPU device driver diff --git a/drivers/acpid/src/scheme.rs b/drivers/acpid/src/scheme.rs index e6d4645480..5a5040c385 100644 --- a/drivers/acpid/src/scheme.rs +++ b/drivers/acpid/src/scheme.rs @@ -19,7 +19,7 @@ use syscall::error::{Error, Result}; use syscall::error::{EACCES, EBADF, EBADFD, EINVAL, EIO, EISDIR, ENOENT, ENOTDIR}; use syscall::flag::{MODE_DIR, MODE_FILE}; use syscall::flag::{O_ACCMODE, O_DIRECTORY, O_RDONLY, O_STAT, O_SYMLINK}; -use syscall::{EOPNOTSUPP, EOVERFLOW, EPERM}; +use syscall::{EOVERFLOW, EPERM}; use crate::acpi::{AcpiContext, AmlSymbols, SdtSignature}; @@ -397,17 +397,6 @@ impl SchemeSync for AcpiScheme<'_, '_> { Ok(buf) } - fn write( - &mut self, - _id: usize, - _buf: &[u8], - _offset: u64, - _fcntl: u32, - _ctx: &CallerCtx, - ) -> Result { - Err(Error::new(EBADF)) - } - fn call( &mut self, id: usize, diff --git a/drivers/audio/ac97d/src/device.rs b/drivers/audio/ac97d/src/device.rs index a83c9bcc48..66d732ef3a 100644 --- a/drivers/audio/ac97d/src/device.rs +++ b/drivers/audio/ac97d/src/device.rs @@ -1,5 +1,3 @@ -#![allow(dead_code)] - use common::io::Pio; use redox_scheme::scheme::SchemeSync; use redox_scheme::CallerCtx; diff --git a/drivers/audio/ac97d/src/main.rs b/drivers/audio/ac97d/src/main.rs index 94d5e28e55..ca1d9b0f3a 100644 --- a/drivers/audio/ac97d/src/main.rs +++ b/drivers/audio/ac97d/src/main.rs @@ -1,9 +1,3 @@ -//#![deny(warnings)] - -extern crate event; -extern crate spin; -extern crate syscall; - use std::io::{Read, Write}; use std::os::unix::io::AsRawFd; use std::usize; diff --git a/drivers/audio/ihdad/src/main.rs b/drivers/audio/ihdad/src/main.rs index f762fb454c..9d3f6963a5 100755 --- a/drivers/audio/ihdad/src/main.rs +++ b/drivers/audio/ihdad/src/main.rs @@ -1,8 +1,3 @@ -extern crate bitflags; -extern crate event; -extern crate spin; -extern crate syscall; - use redox_scheme::scheme::register_sync_scheme; use redox_scheme::wrappers::ReadinessBased; use redox_scheme::Socket; diff --git a/drivers/audio/sb16d/src/device.rs b/drivers/audio/sb16d/src/device.rs index 54055c69d9..289522cff6 100644 --- a/drivers/audio/sb16d/src/device.rs +++ b/drivers/audio/sb16d/src/device.rs @@ -1,5 +1,3 @@ -#![allow(dead_code)] - use std::{thread, time}; use common::io::{Io, Pio, ReadOnly, WriteOnly}; diff --git a/drivers/audio/sb16d/src/main.rs b/drivers/audio/sb16d/src/main.rs index 6abae32772..14358c35f6 100644 --- a/drivers/audio/sb16d/src/main.rs +++ b/drivers/audio/sb16d/src/main.rs @@ -1,5 +1,3 @@ -//#![deny(warnings)] - use libredox::{flag, Fd}; use redox_scheme::scheme::register_sync_scheme; use redox_scheme::wrappers::ReadinessBased; diff --git a/drivers/graphics/bgad/Cargo.toml b/drivers/graphics/bgad/Cargo.toml deleted file mode 100644 index 47fb0fbc29..0000000000 --- a/drivers/graphics/bgad/Cargo.toml +++ /dev/null @@ -1,20 +0,0 @@ -[package] -name = "bgad" -description = "Bochs graphics driver" -version = "0.1.0" -edition = "2021" - -[dependencies] -orbclient.workspace = true -log.workspace = true -redox-scheme.workspace = true -redox_syscall.workspace = true - -common = { path = "../../common" } -daemon = { path = "../../../daemon" } -inputd = { path = "../../inputd" } -pcid = { path = "../../pcid" } -libredox.workspace = true - -[lints] -workspace = true diff --git a/drivers/graphics/bgad/config.toml b/drivers/graphics/bgad/config.toml deleted file mode 100644 index c76de694b1..0000000000 --- a/drivers/graphics/bgad/config.toml +++ /dev/null @@ -1,6 +0,0 @@ -[[drivers]] -name = "QEMU Graphics Array" -class = 0x03 -vendor = 0x1234 -device = 0x1111 -command = ["bgad"] diff --git a/drivers/graphics/bgad/src/bga.rs b/drivers/graphics/bgad/src/bga.rs deleted file mode 100644 index 5014100c2f..0000000000 --- a/drivers/graphics/bgad/src/bga.rs +++ /dev/null @@ -1,51 +0,0 @@ -const BGA_INDEX_XRES: u16 = 1; -const BGA_INDEX_YRES: u16 = 2; -const BGA_INDEX_BPP: u16 = 3; -const BGA_INDEX_ENABLE: u16 = 4; - -pub struct Bga { - bar: *mut u8, -} - -impl Bga { - pub unsafe fn new(bar: *mut u8) -> Bga { - Bga { bar } - } - - fn bochs_dispi_addr(&mut self, index: u16) -> *mut u16 { - assert!(index <= 0x10); - unsafe { - self.bar - .byte_add(0x500) - .cast::() - .add(usize::from(index)) - } - } - - fn bochs_dispi_read(&mut self, index: u16) -> u16 { - unsafe { self.bochs_dispi_addr(index).read_volatile() } - } - - fn bochs_dispi_write(&mut self, index: u16, data: u16) { - assert!(index <= 0x10); - unsafe { - self.bochs_dispi_addr(index).write_volatile(data); - } - } - - pub fn width(&mut self) -> u16 { - self.bochs_dispi_read(BGA_INDEX_XRES) - } - - pub fn height(&mut self) -> u16 { - self.bochs_dispi_read(BGA_INDEX_YRES) - } - - pub fn set_size(&mut self, width: u16, height: u16) { - self.bochs_dispi_write(BGA_INDEX_ENABLE, 0); - self.bochs_dispi_write(BGA_INDEX_XRES, width); - self.bochs_dispi_write(BGA_INDEX_YRES, height); - self.bochs_dispi_write(BGA_INDEX_BPP, 32); - self.bochs_dispi_write(BGA_INDEX_ENABLE, 0x41); - } -} diff --git a/drivers/graphics/bgad/src/main.rs b/drivers/graphics/bgad/src/main.rs deleted file mode 100644 index 266c430c74..0000000000 --- a/drivers/graphics/bgad/src/main.rs +++ /dev/null @@ -1,79 +0,0 @@ -//! - -use inputd::ProducerHandle; -use pcid_interface::PciFunctionHandle; -use redox_scheme::{ - scheme::{register_sync_scheme, SchemeState}, - RequestKind, SignalBehavior, Socket, -}; - -use crate::bga::Bga; -use crate::scheme::BgaScheme; - -mod bga; -mod scheme; - -// FIXME add a driver-graphics implementation - -fn main() { - pcid_interface::pci_daemon(daemon); -} - -fn daemon(daemon: daemon::Daemon, mut pcid_handle: PciFunctionHandle) -> ! { - let pci_config = pcid_handle.config(); - - let mut name = pci_config.func.name(); - name.push_str("_bga"); - - common::setup_logging( - "graphics", - "pci", - &name, - common::output_level(), - common::file_level(), - ); - - log::info!("BGA {}", pci_config.func.display()); - - let socket = Socket::create().expect("bgad: failed to create bga scheme"); - - let bar = unsafe { pcid_handle.map_bar(2) }.ptr.as_ptr(); - - let mut bga = unsafe { Bga::new(bar) }; - log::debug!("BGA {}x{}", bga.width(), bga.height()); - - let mut state = SchemeState::new(); - let mut scheme = BgaScheme { - bga, - display: ProducerHandle::new().ok(), - }; - - register_sync_scheme(&socket, "bga", &mut scheme).expect("bgad: failed to register bga scheme"); - - daemon.ready(); - - libredox::call::setrens(0, 0).expect("bgad: failed to enter null namespace"); - - loop { - let Some(request) = socket - .next_request(SignalBehavior::Restart) - .expect("bgad: failed to get next scheme request") - else { - // Scheme likely got unmounted - std::process::exit(0); - }; - match request.kind() { - RequestKind::Call(call) => { - let response = call.handle_sync(&mut scheme, &mut state); - - socket - .write_response(response, SignalBehavior::Restart) - .expect("bgad: failed to write next scheme response"); - } - RequestKind::OnClose { id } => { - scheme.on_close(id); - } - _ => (), - } - } -} diff --git a/drivers/graphics/bgad/src/scheme.rs b/drivers/graphics/bgad/src/scheme.rs deleted file mode 100644 index 2401fcf6de..0000000000 --- a/drivers/graphics/bgad/src/scheme.rs +++ /dev/null @@ -1,116 +0,0 @@ -use inputd::ProducerHandle; -use redox_scheme::scheme::SchemeSync; -use redox_scheme::{CallerCtx, OpenResult}; -use std::str; -use syscall::data::Stat; -use syscall::schemev2::NewFdFlags; -use syscall::{Error, Result, EACCES, EINVAL, MODE_CHR}; - -use crate::bga::Bga; - -pub struct BgaScheme { - pub bga: Bga, - pub display: Option, -} - -const SCHEME_ROOT_ID: usize = 1; - -impl SchemeSync for BgaScheme { - fn scheme_root(&mut self) -> Result { - Ok(SCHEME_ROOT_ID) - } - fn openat( - &mut self, - dirfd: usize, - _path: &str, - _flags: usize, - _fcntl_flags: u32, - ctx: &CallerCtx, - ) -> Result { - if dirfd != SCHEME_ROOT_ID { - return Err(Error::new(EACCES)); - } - if ctx.uid == 0 { - Ok(OpenResult::ThisScheme { - number: 0, - flags: NewFdFlags::empty(), - }) - } else { - Err(Error::new(EACCES)) - } - } - - fn read( - &mut self, - _id: usize, - buf: &mut [u8], - _offset: u64, - _fcntl_flags: u32, - _ctx: &CallerCtx, - ) -> Result { - let mut i = 0; - let data = format!("{},{}\n", self.bga.width(), self.bga.height()).into_bytes(); - while i < buf.len() && i < data.len() { - buf[i] = data[i]; - i += 1; - } - Ok(i) - } - - fn write( - &mut self, - _id: usize, - buf: &[u8], - _offset: u64, - _fcntl_flags: u32, - _ctx: &CallerCtx, - ) -> Result { - let string = str::from_utf8(buf).or(Err(Error::new(EINVAL)))?; - let string = string.trim(); - - let mut parts = string.split(','); - - let width = if let Some(part) = parts.next() { - part.parse::().or(Err(Error::new(EINVAL)))? - } else { - self.bga.width() - }; - - let height = if let Some(part) = parts.next() { - part.parse::().or(Err(Error::new(EINVAL)))? - } else { - self.bga.height() - }; - - self.bga.set_size(width, height); - - Ok(buf.len()) - } - - fn fpath(&mut self, _file: usize, buf: &mut [u8], _ctx: &CallerCtx) -> Result { - let mut i = 0; - let scheme_path = b"bga"; - while i < buf.len() && i < scheme_path.len() { - buf[i] = scheme_path[i]; - i += 1; - } - Ok(i) - } - - fn fstat(&mut self, _id: usize, stat: &mut Stat, _ctx: &CallerCtx) -> Result<()> { - *stat = Stat { - st_mode: MODE_CHR | 0o666, - ..Default::default() - }; - - Ok(()) - } - - fn fcntl(&mut self, _id: usize, _cmd: usize, _arg: usize, _ctx: &CallerCtx) -> Result { - Ok(0) - } -} - -impl BgaScheme { - pub fn on_close(&mut self, _id: usize) {} -}