summaryrefslogtreecommitdiff
path: root/kernel/drivers
diff options
context:
space:
mode:
authorAnton Kling <anton@kling.gg>2023-11-10 15:47:08 +0100
committerAnton Kling <anton@kling.gg>2023-11-10 15:47:08 +0100
commit9a1f977e39d8e9fcb6a9cb2a612f4743e802221d (patch)
tree1fc53f6e80eb40d24274f2f8967d584b88c6d664 /kernel/drivers
parent0cb4afef6da5488a128e5aaece435e9aa5f5797e (diff)
Kernel Style: Change uint*_t -> u*
Diffstat (limited to 'kernel/drivers')
-rw-r--r--kernel/drivers/ata.c44
-rw-r--r--kernel/drivers/ata.h16
-rw-r--r--kernel/drivers/keyboard.c29
-rw-r--r--kernel/drivers/keyboard.h2
-rw-r--r--kernel/drivers/mouse.c44
-rw-r--r--kernel/drivers/pci.c40
-rw-r--r--kernel/drivers/pci.h26
-rw-r--r--kernel/drivers/pit.c16
-rw-r--r--kernel/drivers/pit.h6
-rw-r--r--kernel/drivers/rtl8139.c76
-rw-r--r--kernel/drivers/rtl8139.h6
-rw-r--r--kernel/drivers/vbe.c28
12 files changed, 166 insertions, 167 deletions
diff --git a/kernel/drivers/ata.c b/kernel/drivers/ata.c
index 82e745b..190cf5a 100644
--- a/kernel/drivers/ata.c
+++ b/kernel/drivers/ata.c
@@ -28,11 +28,11 @@
#define STATUS_DRQ ((1 << 3))
#define STATUS_ERR ((1 << 0))
-uint32_t io_base;
+u32 io_base;
unsigned char read_buffer[SECTOR_SIZE];
-void select_drive(uint8_t master_slave) {
+void select_drive(u8 master_slave) {
outb(io_base + DRIVE_SELECT, (master_slave) ? 0xA0 : 0xB0);
}
@@ -59,7 +59,7 @@ int identify(int master_slave) {
return -1;
}
- for (uint16_t status;;) {
+ for (u16 status;;) {
status = inb(io_base + STATUS_PORT);
if (1 == (status & STATUS_ERR)) {
@@ -76,13 +76,13 @@ int identify(int master_slave) {
// and store them.
// TODO: This returns some intreasting information.
// https://wiki.osdev.org/ATA_PIO_Mode#Interesting_information_returned_by_IDENTIFY
- uint16_t array[256];
+ u16 array[256];
rep_insw(1 * SECTOR_SIZE / 16, io_base + DATA_PORT, array);
return 1;
}
int poll_status(void) {
- for (uint16_t status;;) {
+ for (u16 status;;) {
// Read the Regular Status port until...
// We read this 15 times to give some
// time for the drive to catch up.
@@ -106,7 +106,7 @@ int poll_status(void) {
// Instructions from: https://wiki.osdev.org/ATA_PIO_Mode#28_bit_PIO
void
-setup_drive_for_command(uint32_t lba, uint32_t sector_count) {
+setup_drive_for_command(u32 lba, u32 sector_count) {
// 1. Send 0xE0 for the "master" or 0xF0 for
// the "slave", ORed with the highest 4 bits
// of the LBA to port 0x1F6
@@ -131,21 +131,21 @@ setup_drive_for_command(uint32_t lba, uint32_t sector_count) {
outb(io_base + LBAhi, (lba >> 16) & 0xFF);
}
-void delayed_rep_outsw(size_t n, uint16_t port, volatile uint8_t *buffer) {
+void delayed_rep_outsw(size_t n, u16 port, volatile u8 *buffer) {
for (volatile size_t i = 0; i < n; i++) {
- outsw(port, (uint32_t)buffer);
+ outsw(port, (u32)buffer);
buffer += 2;
// outsw(port, buffer);
}
}
-void ata_write_lba28(uint32_t lba, uint32_t sector_count,
- volatile const uint8_t *buffer) {
+void ata_write_lba28(u32 lba, u32 sector_count,
+ volatile const u8 *buffer) {
setup_drive_for_command(lba, sector_count);
outb(io_base + COMMAND_PORT, WRITE_SECTORS);
- for (volatile uint32_t i = 0; i < sector_count; i++) {
+ for (volatile u32 i = 0; i < sector_count; i++) {
if (!poll_status()) {
// FIXME: Fail properly
for (;;)
@@ -153,7 +153,7 @@ void ata_write_lba28(uint32_t lba, uint32_t sector_count,
}
delayed_rep_outsw(256, io_base + DATA_PORT,
- (void *)((uint32_t)buffer + i * 256));
+ (void *)((u32)buffer + i * 256));
}
// Cache flush
@@ -161,14 +161,14 @@ void ata_write_lba28(uint32_t lba, uint32_t sector_count,
// Wait for BSY to clear
for (;;) {
- uint16_t status = inb(io_base + STATUS_PORT);
+ u16 status = inb(io_base + STATUS_PORT);
if (!(status & STATUS_BSY))
break;
}
}
// Instructions from: https://wiki.osdev.org/ATA_PIO_Mode#28_bit_PIO
-void ata_read_lba28(uint32_t lba, uint32_t sector_count,
+void ata_read_lba28(u32 lba, u32 sector_count,
volatile void *address) {
// Step 1-6 is done in this function.
setup_drive_for_command(lba, sector_count);
@@ -180,9 +180,9 @@ void ata_read_lba28(uint32_t lba, uint32_t sector_count,
// This step can be found in the for loop
- // 9. Transfer 256 16-bit values, a uint16_t at a time,
+ // 9. Transfer 256 16-bit values, a u16 at a time,
// into your buffer from I/O port 0x1F0
- for (volatile uint32_t i = 0; i < sector_count; i++) {
+ for (volatile u32 i = 0; i < sector_count; i++) {
// 10. Then loop back to waiting for the next IRQ
// or poll again for each successive sector.
// 8. Wait for an IRQ or poll.
@@ -191,7 +191,7 @@ void ata_read_lba28(uint32_t lba, uint32_t sector_count,
for (;;)
;
}
- rep_insw(256, io_base + DATA_PORT, (void *)((uint32_t)address + i * 256));
+ rep_insw(256, io_base + DATA_PORT, (void *)((u32)address + i * 256));
}
}
@@ -210,13 +210,13 @@ void ata_init(void) {
select_drive(1);
}
-void read_lba(uint32_t lba, void *address, size_t size, size_t offset) {
+void read_lba(u32 lba, void *address, size_t size, size_t offset) {
uintptr_t ptr = (uintptr_t)address;
lba += offset / SECTOR_SIZE;
offset = offset % SECTOR_SIZE;
size_t total_read = 0;
for (int i = 0; size > 0; i++) {
- uint32_t read_len =
+ u32 read_len =
(SECTOR_SIZE < (size + offset)) ? (SECTOR_SIZE - offset) : size;
ata_read_lba28(lba + i, 1, read_buffer);
memcpy((void *)ptr, read_buffer + offset, read_len);
@@ -227,16 +227,16 @@ void read_lba(uint32_t lba, void *address, size_t size, size_t offset) {
}
}
-void write_lba(uint32_t lba, volatile void *address, size_t size,
+void write_lba(u32 lba, volatile void *address, size_t size,
size_t offset) {
uintptr_t ptr = (uintptr_t)address;
lba += offset / SECTOR_SIZE;
offset = offset % SECTOR_SIZE;
size_t total_write = 0;
- uint8_t sector_buffer[512];
+ u8 sector_buffer[512];
for (int i = 0; size > 0; i++) {
ata_read_lba28(lba + i, 1, sector_buffer);
- uint32_t write_len =
+ u32 write_len =
(SECTOR_SIZE < (size + offset)) ? (SECTOR_SIZE - offset) : size;
memcpy(sector_buffer + offset, (void *)ptr, write_len);
diff --git a/kernel/drivers/ata.h b/kernel/drivers/ata.h
index 3e88d7f..6aa4906 100644
--- a/kernel/drivers/ata.h
+++ b/kernel/drivers/ata.h
@@ -5,12 +5,12 @@
void ata_init(void);
-void read_drive_chs(uint8_t head_index, uint8_t sector_count,
- uint8_t sector_index, uint8_t cylinder_low_value,
- uint8_t cylinder_high_value, void *address);
-void read_drive_lba(uint32_t lba, uint8_t sector_count, void *address);
-void read_lba(uint32_t lba, void *address, size_t size, size_t offset);
-void write_lba(uint32_t lba, volatile void *address, size_t size,
+void read_drive_chs(u8 head_index, u8 sector_count,
+ u8 sector_index, u8 cylinder_low_value,
+ u8 cylinder_high_value, void *address);
+void read_drive_lba(u32 lba, u8 sector_count, void *address);
+void read_lba(u32 lba, void *address, size_t size, size_t offset);
+void write_lba(u32 lba, volatile void *address, size_t size,
size_t offset);
-void ata_write_lba28(uint32_t lba, uint32_t sector_count,
- volatile const uint8_t *buffer);
+void ata_write_lba28(u32 lba, u32 sector_count,
+ volatile const u8 *buffer);
diff --git a/kernel/drivers/keyboard.c b/kernel/drivers/keyboard.c
index 8c96606..0e3edf8 100644
--- a/kernel/drivers/keyboard.c
+++ b/kernel/drivers/keyboard.c
@@ -5,7 +5,7 @@
#include <fs/fifo.h>
#include <fs/vfs.h>
#include <sched/scheduler.h>
-#include <stdint.h>
+#include <typedefs.h>
#define PS2_REG_DATA 0x60
#define PS2_REG_STATUS 0x64
@@ -24,11 +24,11 @@
#define PS2_CMD_SET_MAKE_RELEASE 0xF8 // has rsp
-uint8_t kb_scancodes[3] = {0x43, 0x41, 0x3f};
+u8 kb_scancodes[3] = {0x43, 0x41, 0x3f};
FIFO_FILE *keyboard_fifo;
-uint8_t ascii_table[] = {
+u8 ascii_table[] = {
'e', '\x1B', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', '-', '=', 8,
'\t',
@@ -57,7 +57,7 @@ uint8_t ascii_table[] = {
' ', // ;
};
-uint8_t capital_ascii_table[] = {
+u8 capital_ascii_table[] = {
'e', '\x1B', '!', '@', '#', '$', '%', '^', '&', '*', '(', ')', '_', '+', 8,
'\t',
@@ -88,7 +88,7 @@ uint8_t capital_ascii_table[] = {
vfs_inode_t *kb_inode;
-uint8_t keyboard_to_ascii(uint16_t key, uint8_t capital) {
+u8 keyboard_to_ascii(u16 key, u8 capital) {
if ((key & 0xFF) > sizeof(ascii_table))
return 'U';
if (capital)
@@ -97,20 +97,20 @@ uint8_t keyboard_to_ascii(uint16_t key, uint8_t capital) {
return ascii_table[key & 0xFF];
}
-uint8_t is_shift_down = 0;
-uint8_t is_alt_down = 0;
+u8 is_shift_down = 0;
+u8 is_alt_down = 0;
struct KEY_EVENT {
char c;
- uint8_t mode; // (shift (0 bit)) (alt (1 bit))
- uint8_t release; // 0 pressed, 1 released
+ u8 mode; // (shift (0 bit)) (alt (1 bit))
+ u8 release; // 0 pressed, 1 released
};
extern process_t *ready_queue;
__attribute__((interrupt)) void
int_keyboard(__attribute__((unused)) struct interrupt_frame *frame) {
outb(0x20, 0x20);
- uint16_t c;
+ u16 c;
c = inb(PS2_REG_DATA);
int released = 0;
if (c & 0x80) {
@@ -143,14 +143,14 @@ int_keyboard(__attribute__((unused)) struct interrupt_frame *frame) {
ev.mode = 0;
ev.mode |= is_shift_down << 0;
ev.mode |= is_alt_down << 1;
- fifo_object_write((uint8_t *)&ev, 0, sizeof(ev), keyboard_fifo);
+ fifo_object_write((u8 *)&ev, 0, sizeof(ev), keyboard_fifo);
kb_inode->has_data = keyboard_fifo->has_data;
}
#define PS2_WAIT_RECV \
{ \
for (;;) { \
- uint8_t status = inb(PS2_REG_STATUS); \
+ u8 status = inb(PS2_REG_STATUS); \
if (status & 0x1) \
break; \
} \
@@ -159,7 +159,7 @@ int_keyboard(__attribute__((unused)) struct interrupt_frame *frame) {
#define PS2_WAIT_SEND \
{ \
for (;;) { \
- uint8_t status = inb(PS2_REG_STATUS); \
+ u8 status = inb(PS2_REG_STATUS); \
if (!(status & (0x1 << 1))) \
break; \
} \
@@ -170,8 +170,7 @@ void install_keyboard(void) {
install_handler(int_keyboard, INT_32_INTERRUPT_GATE(0x3), 0x21);
}
-int keyboard_read(uint8_t *buffer, uint64_t offset, uint64_t len,
- vfs_fd_t *fd) {
+int keyboard_read(u8 *buffer, u64 offset, u64 len, vfs_fd_t *fd) {
(void)offset;
if (0 == fd->inode->has_data) {
diff --git a/kernel/drivers/keyboard.h b/kernel/drivers/keyboard.h
index 4b76f22..002b9c2 100644
--- a/kernel/drivers/keyboard.h
+++ b/kernel/drivers/keyboard.h
@@ -1,7 +1,7 @@
#ifndef KEYBOARD_H
#define KEYBOARD_H
-#include <stdint.h>
+#include <typedefs.h>
#include <cpu/io.h>
#include <cpu/idt.h>
diff --git a/kernel/drivers/mouse.c b/kernel/drivers/mouse.c
index 23619a0..21cb470 100644
--- a/kernel/drivers/mouse.c
+++ b/kernel/drivers/mouse.c
@@ -3,22 +3,22 @@
#include <fs/devfs.h>
#include <fs/fifo.h>
#include <fs/vfs.h>
-#include <stdint.h>
+#include <typedefs.h>
-uint8_t mouse_cycle = 0; // unsigned char
-uint8_t mouse_uint8_t[3]; // signed char
-uint8_t mouse_x = 0; // signed char
-uint8_t mouse_y = 0; // signed char
+u8 mouse_cycle = 0; // unsigned char
+u8 mouse_u8[3]; // signed char
+u8 mouse_x = 0; // signed char
+u8 mouse_y = 0; // signed char
vfs_inode_t *mouse_inode;
vfs_fd_t *mouse_fd;
struct mouse_event {
- uint8_t buttons;
- uint8_t x;
- uint8_t y;
+ u8 buttons;
+ u8 x;
+ u8 y;
};
-int fs_mouse_write(uint8_t *buffer, uint64_t offset, uint64_t len,
+int fs_mouse_write(u8 *buffer, u64 offset, u64 len,
vfs_fd_t *fd) {
int rc = fifo_object_write(buffer, offset, len, fd->inode->internal_object);
FIFO_FILE *f = fd->inode->internal_object;
@@ -26,7 +26,7 @@ int fs_mouse_write(uint8_t *buffer, uint64_t offset, uint64_t len,
return rc;
}
-int fs_mouse_read(uint8_t *buffer, uint64_t offset, uint64_t len,
+int fs_mouse_read(u8 *buffer, u64 offset, u64 len,
vfs_fd_t *fd) {
FIFO_FILE *f = fd->inode->internal_object;
if (!mouse_inode->has_data)
@@ -53,24 +53,24 @@ __attribute__((interrupt)) void int_mouse(registers_t *r) {
EOI(12);
switch (mouse_cycle) {
case 0:
- mouse_uint8_t[0] = inb(0x60);
- if(!(mouse_uint8_t[0] & (1 << 3))) {
+ mouse_u8[0] = inb(0x60);
+ if(!(mouse_u8[0] & (1 << 3))) {
mouse_cycle = 0;
return;
}
mouse_cycle++;
break;
case 1:
- mouse_uint8_t[1] = inb(0x60);
+ mouse_u8[1] = inb(0x60);
mouse_cycle++;
break;
case 2:
- mouse_uint8_t[2] = inb(0x60);
- mouse_x = mouse_uint8_t[1];
- mouse_y = mouse_uint8_t[2];
+ mouse_u8[2] = inb(0x60);
+ mouse_x = mouse_u8[1];
+ mouse_y = mouse_u8[2];
mouse_cycle = 0;
struct mouse_event e;
- e.buttons = mouse_uint8_t[0];
+ e.buttons = mouse_u8[0];
e.x = mouse_x;
e.y = mouse_y;
raw_vfs_pwrite(mouse_fd, &e, sizeof(e), 0);
@@ -78,8 +78,8 @@ __attribute__((interrupt)) void int_mouse(registers_t *r) {
}
}
-void mouse_wait(uint8_t a_type) {
- uint32_t _time_out = 100000;
+void mouse_wait(u8 a_type) {
+ u32 _time_out = 100000;
if (a_type == 0) {
while (_time_out--) {
if ((inb(0x64) & 1) == 1) {
@@ -97,7 +97,7 @@ void mouse_wait(uint8_t a_type) {
}
}
-void mouse_write(uint8_t a_write) {
+void mouse_write(u8 a_write) {
// Wait to be able to send a command
mouse_wait(1);
// Tell the mouse we are sending a command
@@ -108,14 +108,14 @@ void mouse_write(uint8_t a_write) {
outb(0x60, a_write);
}
-uint8_t mouse_read() {
+u8 mouse_read() {
// Get's response from mouse
mouse_wait(0);
return inb(0x60);
}
void install_mouse(void) {
- uint8_t _status; // unsigned char
+ u8 _status; // unsigned char
asm("cli");
// Enable the auxiliary mouse device
mouse_wait(1);
diff --git a/kernel/drivers/pci.c b/kernel/drivers/pci.c
index 5fe14bd..f73b341 100644
--- a/kernel/drivers/pci.c
+++ b/kernel/drivers/pci.c
@@ -6,39 +6,39 @@
#define CONFIG_ADDRESS 0xCF8
#define CONFIG_DATA 0xCFC
-void pci_config_write32(const struct PCI_DEVICE *device, uint8_t func,
- uint8_t offset, uint32_t data) {
- uint32_t address;
- uint32_t lbus = (uint32_t)device->bus;
- uint32_t lslot = (uint32_t)device->slot;
- uint32_t lfunc = (uint32_t)func;
+void pci_config_write32(const struct PCI_DEVICE *device, u8 func,
+ u8 offset, u32 data) {
+ u32 address;
+ u32 lbus = (u32)device->bus;
+ u32 lslot = (u32)device->slot;
+ u32 lfunc = (u32)func;
// Create configuration address as per Figure 1
- address = (uint32_t)((lbus << 16) | (lslot << 11) | (lfunc << 8) |
- (offset & 0xFC) | ((uint32_t)0x80000000));
+ address = (u32)((lbus << 16) | (lslot << 11) | (lfunc << 8) |
+ (offset & 0xFC) | ((u32)0x80000000));
// Write out the address
outl(CONFIG_ADDRESS, address);
outl(CONFIG_DATA, data);
}
-uint32_t pci_config_read32(const struct PCI_DEVICE *device, uint8_t func,
- uint8_t offset) {
- uint32_t address;
- uint32_t lbus = (uint32_t)device->bus;
- uint32_t lslot = (uint32_t)device->slot;
- uint32_t lfunc = (uint32_t)func;
+u32 pci_config_read32(const struct PCI_DEVICE *device, u8 func,
+ u8 offset) {
+ u32 address;
+ u32 lbus = (u32)device->bus;
+ u32 lslot = (u32)device->slot;
+ u32 lfunc = (u32)func;
// Create configuration address as per Figure 1
- address = (uint32_t)((lbus << 16) | (lslot << 11) | (lfunc << 8) |
- (offset & 0xFC) | ((uint32_t)0x80000000));
+ address = (u32)((lbus << 16) | (lslot << 11) | (lfunc << 8) |
+ (offset & 0xFC) | ((u32)0x80000000));
// Write out the address
outl(CONFIG_ADDRESS, address);
return inl(CONFIG_DATA);
}
-int pci_populate_device_struct(uint16_t vendor, uint16_t device,
+int pci_populate_device_struct(u16 vendor, u16 device,
struct PCI_DEVICE *pci_device) {
pci_device->vendor = vendor;
pci_device->device = device;
@@ -48,14 +48,14 @@ int pci_populate_device_struct(uint16_t vendor, uint16_t device,
struct PCI_DEVICE tmp;
tmp.bus = bus;
tmp.slot = slot;
- uint32_t device_vendor = pci_config_read32(&tmp, 0, 0);
+ u32 device_vendor = pci_config_read32(&tmp, 0, 0);
if (vendor != (device_vendor & 0xFFFF))
continue;
if (device != (device_vendor >> 16))
continue;
pci_device->bus = bus;
pci_device->slot = slot;
- uint32_t bar0 = pci_config_read32(pci_device, 0, 0x10);
+ u32 bar0 = pci_config_read32(pci_device, 0, 0x10);
assert(bar0 & 0x1 && "Only support memory IO");
pci_device->gen.base_mem_io = bar0 & (~0x3);
return 1;
@@ -64,6 +64,6 @@ int pci_populate_device_struct(uint16_t vendor, uint16_t device,
return 0;
}
-uint8_t pci_get_interrupt_line(const struct PCI_DEVICE *device) {
+u8 pci_get_interrupt_line(const struct PCI_DEVICE *device) {
return pci_config_read32(device, 0, 0x3C) & 0xFF;
}
diff --git a/kernel/drivers/pci.h b/kernel/drivers/pci.h
index 7511cee..66d7207 100644
--- a/kernel/drivers/pci.h
+++ b/kernel/drivers/pci.h
@@ -1,26 +1,26 @@
-#include <stdint.h>
+#include <typedefs.h>
struct GENERAL_DEVICE {
- uint32_t base_mem_io;
- uint8_t interrupt_line;
+ u32 base_mem_io;
+ u8 interrupt_line;
};
struct PCI_DEVICE {
- uint16_t vendor;
- uint16_t device;
- uint8_t bus;
- uint8_t slot;
+ u16 vendor;
+ u16 device;
+ u8 bus;
+ u8 slot;
union {
struct GENERAL_DEVICE gen;
};
};
-uint32_t pci_config_read32(const struct PCI_DEVICE *device, uint8_t func,
- uint8_t offset);
-void pci_config_write32(const struct PCI_DEVICE *device, uint8_t func,
- uint8_t offset, uint32_t data);
+u32 pci_config_read32(const struct PCI_DEVICE *device, u8 func,
+ u8 offset);
+void pci_config_write32(const struct PCI_DEVICE *device, u8 func,
+ u8 offset, u32 data);
-int pci_populate_device_struct(uint16_t vendor, uint16_t device,
+int pci_populate_device_struct(u16 vendor, u16 device,
struct PCI_DEVICE *pci_device);
-uint8_t pci_get_interrupt_line(const struct PCI_DEVICE *device);
+u8 pci_get_interrupt_line(const struct PCI_DEVICE *device);
diff --git a/kernel/drivers/pit.c b/kernel/drivers/pit.c
index 711883c..f29b3f8 100644
--- a/kernel/drivers/pit.c
+++ b/kernel/drivers/pit.c
@@ -3,14 +3,14 @@
#define PIT_IO_CHANNEL_0 0x40
#define PIT_IO_MODE_COMMAND 0x43
-uint64_t clock_num_ms_ticks = 0;
-uint64_t pit_counter = 0;
-uint16_t hertz;
+u64 clock_num_ms_ticks = 0;
+u64 pit_counter = 0;
+u16 hertz;
-uint64_t pit_num_ms(void) { return clock_num_ms_ticks; }
+u64 pit_num_ms(void) { return clock_num_ms_ticks; }
-uint16_t read_pit_count(void) {
- uint16_t count = 0;
+u16 read_pit_count(void) {
+ u16 count = 0;
outb(PIT_IO_MODE_COMMAND, 0x0 /*0b00000000*/);
@@ -20,8 +20,8 @@ uint16_t read_pit_count(void) {
return count;
}
-void set_pit_count(uint16_t hertz) {
- uint16_t divisor = 1193180 / hertz;
+void set_pit_count(u16 hertz) {
+ u16 divisor = 1193180 / hertz;
/*
* 0b00110110
diff --git a/kernel/drivers/pit.h b/kernel/drivers/pit.h
index 8d9ce98..4d221c1 100644
--- a/kernel/drivers/pit.h
+++ b/kernel/drivers/pit.h
@@ -3,10 +3,10 @@
#include <cpu/idt.h>
#include <cpu/io.h>
#include <sched/scheduler.h>
-#include <stdint.h>
+#include <typedefs.h>
#include <stdio.h>
void pit_install(void);
-void set_pit_count(uint16_t hertz);
-uint64_t pit_num_ms(void);
+void set_pit_count(u16 hertz);
+u64 pit_num_ms(void);
#endif
diff --git a/kernel/drivers/rtl8139.c b/kernel/drivers/rtl8139.c
index 3853eab..cfe5cf2 100644
--- a/kernel/drivers/rtl8139.c
+++ b/kernel/drivers/rtl8139.c
@@ -15,53 +15,53 @@
#define TSAD0 0x20 // transmit start address
struct PCI_DEVICE rtl8139;
-uint8_t *device_buffer;
+u8 *device_buffer;
-uint8_t *send_buffers[4];
+u8 *send_buffers[4];
struct _INT_PACKET_HEADER {
- uint8_t ROK : 1;
- uint8_t FAE : 1;
- uint8_t CRC : 1;
- uint8_t LONG : 1;
- uint8_t RUNT : 1;
- uint8_t ISE : 1;
- uint8_t reserved : 5;
- uint8_t BAR : 1;
- uint8_t PAM : 1;
- uint8_t MAR : 1;
+ u8 ROK : 1;
+ u8 FAE : 1;
+ u8 CRC : 1;
+ u8 LONG : 1;
+ u8 RUNT : 1;
+ u8 ISE : 1;
+ u8 reserved : 5;
+ u8 BAR : 1;
+ u8 PAM : 1;
+ u8 MAR : 1;
};
struct PACKET_HEADER {
union {
- uint16_t raw;
+ u16 raw;
struct _INT_PACKET_HEADER data;
};
};
-uint16_t current_packet_read = 0;
+u16 current_packet_read = 0;
void handle_packet(void) {
- assert(sizeof(struct _INT_PACKET_HEADER) == sizeof(uint16_t));
+ assert(sizeof(struct _INT_PACKET_HEADER) == sizeof(u16));
- uint16_t *buf = (uint16_t *)(device_buffer + current_packet_read);
+ u16 *buf = (u16 *)(device_buffer + current_packet_read);
struct PACKET_HEADER packet_header;
packet_header.raw = *buf;
assert(packet_header.data.ROK);
kprintf("packet_header.raw: %x\n", packet_header.raw);
- uint16_t packet_length = *(buf + 1);
+ u16 packet_length = *(buf + 1);
kprintf("packet_length: %x\n", packet_length);
- uint8_t packet_buffer[8192 + 16];
+ u8 packet_buffer[8192 + 16];
if (current_packet_read + packet_length >= 8192 + 16) {
- uint32_t first_run = ((uint8_t *)buf + (8192 + 16)) - device_buffer;
+ u32 first_run = ((u8 *)buf + (8192 + 16)) - device_buffer;
memcpy(packet_buffer, buf, first_run);
memcpy(packet_buffer, device_buffer, packet_length - first_run);
} else {
memcpy(packet_buffer, buf, packet_length);
}
- handle_ethernet((uint8_t *)packet_buffer + 4, packet_length);
+ handle_ethernet((u8 *)packet_buffer + 4, packet_length);
// Thanks to exscape
// https://github.com/exscape/exscapeOS/blob/master/src/kernel/net/rtl8139.c
@@ -76,7 +76,7 @@ void handle_packet(void) {
__attribute__((interrupt)) void rtl8139_handler(void *regs) {
(void)regs;
- uint16_t status = inw(rtl8139.gen.base_mem_io + 0x3e);
+ u16 status = inw(rtl8139.gen.base_mem_io + 0x3e);
kprintf("status: %x\n", status);
outw(rtl8139.gen.base_mem_io + 0x3E, 0x5);
@@ -91,7 +91,7 @@ __attribute__((interrupt)) void rtl8139_handler(void *regs) {
EOI(0xB);
}
-int rtl8139_send_data(uint8_t *data, uint16_t data_size) {
+int rtl8139_send_data(u8 *data, u16 data_size) {
const struct PCI_DEVICE *device = &rtl8139;
// FIXME: It should block or fail if there is too little space for the
// buffer
@@ -103,30 +103,30 @@ int rtl8139_send_data(uint8_t *data, uint16_t data_size) {
}
memcpy(send_buffers[loop], data, data_size);
outl(device->gen.base_mem_io + 0x20 + loop * 4,
- (uint32_t)virtual_to_physical(send_buffers[loop], NULL));
+ (u32)virtual_to_physical(send_buffers[loop], NULL));
outl(device->gen.base_mem_io + 0x10 + loop * 4, data_size);
loop += 1;
return 1;
}
-void get_mac_address(uint8_t mac[6]) {
- uint32_t base_address = rtl8139.gen.base_mem_io;
+void get_mac_address(u8 mac[6]) {
+ u32 base_address = rtl8139.gen.base_mem_io;
// Read the MAC address
- uint64_t mac_address;
+ u64 mac_address;
{
- uint32_t low_mac = inl(base_address);
- uint16_t high_mac = inw(base_address + 0x4);
- mac_address = ((uint64_t)high_mac << 32) | low_mac;
+ u32 low_mac = inl(base_address);
+ u16 high_mac = inw(base_address + 0x4);
+ mac_address = ((u64)high_mac << 32) | low_mac;
}
kprintf("mac_address: %x\n", mac_address);
- memcpy(mac, &mac_address, sizeof(uint8_t[6]));
+ memcpy(mac, &mac_address, sizeof(u8[6]));
}
-uint8_t rtl8139_get_transmit_status(uint32_t base_address) {
- uint32_t status_register = inl(base_address + 0x3E);
+u8 rtl8139_get_transmit_status(u32 base_address) {
+ u32 status_register = inl(base_address + 0x3E);
if ((status_register >> 3) & 0x1)
kprintf("transmit error :(\n");
- uint8_t status = (status_register >> 2) & 0x1;
+ u8 status = (status_register >> 2) & 0x1;
outl(base_address + 0x3E, 0x5);
return status;
}
@@ -138,14 +138,14 @@ void rtl8139_init(void) {
}
kprintf("RTL8139 found at bus: %x slot: %x\n", rtl8139.bus, rtl8139.slot);
- uint8_t header_type = (pci_config_read32(&rtl8139, 0, 0xC) >> 16) & 0xFF;
+ u8 header_type = (pci_config_read32(&rtl8139, 0, 0xC) >> 16) & 0xFF;
assert(0 == header_type);
- uint32_t base_address = rtl8139.gen.base_mem_io;
- uint8_t interrupt_line = pci_get_interrupt_line(&rtl8139);
+ u32 base_address = rtl8139.gen.base_mem_io;
+ u8 interrupt_line = pci_get_interrupt_line(&rtl8139);
// Enable bus mastering
- uint32_t register1 = pci_config_read32(&rtl8139, 0, 0x4);
+ u32 register1 = pci_config_read32(&rtl8139, 0, 0x4);
register1 |= (1 << 2);
pci_config_write32(&rtl8139, 0, 0x4, register1);
@@ -159,7 +159,7 @@ void rtl8139_init(void) {
device_buffer = ksbrk(8192 + 16);
memset(device_buffer, 0, 8192 + 16);
// Setupt the recieve buffer
- uint32_t rx_buffer = (uint32_t)virtual_to_physical(device_buffer, NULL);
+ u32 rx_buffer = (u32)virtual_to_physical(device_buffer, NULL);
outl(base_address + RBSTART, rx_buffer);
// Set IMR + ISR
diff --git a/kernel/drivers/rtl8139.h b/kernel/drivers/rtl8139.h
index 6e13fdd..7cbca4b 100644
--- a/kernel/drivers/rtl8139.h
+++ b/kernel/drivers/rtl8139.h
@@ -1,4 +1,4 @@
-#include <stdint.h>
-void get_mac_address(uint8_t mac[6]);
+#include <typedefs.h>
+void get_mac_address(u8 mac[6]);
void rtl8139_init(void);
-int rtl8139_send_data(uint8_t *data, uint16_t data_size);
+int rtl8139_send_data(u8 *data, u16 data_size);
diff --git a/kernel/drivers/vbe.c b/kernel/drivers/vbe.c
index c67b7b4..0fb0600 100644
--- a/kernel/drivers/vbe.c
+++ b/kernel/drivers/vbe.c
@@ -5,11 +5,11 @@
#include <mmu.h>
#include <stdio.h>
-uint8_t *framebuffer;
-uint32_t framebuffer_physical;
-uint32_t framebuffer_width;
-uint32_t framebuffer_height;
-uint64_t framebuffer_size;
+u8 *framebuffer;
+u32 framebuffer_physical;
+u32 framebuffer_width;
+u32 framebuffer_height;
+u64 framebuffer_size;
vfs_vm_object_t vbe_vm_object;
@@ -17,9 +17,9 @@ vfs_vm_object_t vbe_vm_object;
#define min(_a, _b) (((_a) > (_b)) ? (_b) : (_a))
struct DISPLAY_INFO {
- uint32_t width;
- uint32_t height;
- uint8_t bpp;
+ u32 width;
+ u32 height;
+ u8 bpp;
};
struct DISPLAY_INFO vbe_info;
@@ -29,27 +29,27 @@ void display_driver_init(multiboot_info_t *mbi) {
framebuffer_width = mbi->framebuffer_width;
framebuffer_height = mbi->framebuffer_height;
- uint32_t bits_pp = mbi->framebuffer_bpp;
- uint32_t bytes_pp = (bits_pp / 8) + (8 - (bits_pp % 8));
+ u32 bits_pp = mbi->framebuffer_bpp;
+ u32 bytes_pp = (bits_pp / 8) + (8 - (bits_pp % 8));
framebuffer_size = bytes_pp * framebuffer_width * framebuffer_height;
framebuffer_physical = mbi->framebuffer_addr;
framebuffer =
- mmu_map_frames((void *)(uint32_t)mbi->framebuffer_addr, framebuffer_size);
+ mmu_map_frames((void *)(u32)mbi->framebuffer_addr, framebuffer_size);
vbe_info.width = framebuffer_width;
vbe_info.height = framebuffer_height;
vbe_info.bpp = mbi->framebuffer_bpp;
}
-vfs_vm_object_t *vbe_get_vm_object(uint64_t length, uint64_t offset,
+vfs_vm_object_t *vbe_get_vm_object(u64 length, u64 offset,
vfs_fd_t *fd) {
(void)fd;
(void)length;
(void)offset;
vbe_vm_object.size = framebuffer_size;
- int n = (uintptr_t)align_page((void *)(uint32_t)framebuffer_size) / 0x1000;
+ int n = (uintptr_t)align_page((void *)(u32)framebuffer_size) / 0x1000;
vbe_vm_object.object = kmalloc(sizeof(void *) * n);
for (int i = 0; i < n; i++) {
vbe_vm_object.object[i] = (void *)framebuffer_physical + (i * 0x1000);
@@ -57,7 +57,7 @@ vfs_vm_object_t *vbe_get_vm_object(uint64_t length, uint64_t offset,
return &vbe_vm_object;
}
-int display_info_read(uint8_t *buffer, uint64_t offset, uint64_t len,
+int display_info_read(u8 *buffer, u64 offset, u64 len,
vfs_fd_t *fd) {
(void)offset;
int read_len = min(sizeof(struct DISPLAY_INFO), len);