From 162d024a53e1e31e00ff0b6f47dd4590edebc551 Mon Sep 17 00:00:00 2001 From: Marvin Borner Date: Sun, 9 Aug 2020 16:51:01 +0200 Subject: Heavy restructuring of libc, kernel and apps --- src/drivers/ide.c | 41 ----------------------------------------- 1 file changed, 41 deletions(-) delete mode 100644 src/drivers/ide.c (limited to 'src/drivers/ide.c') diff --git a/src/drivers/ide.c b/src/drivers/ide.c deleted file mode 100644 index fe3955c..0000000 --- a/src/drivers/ide.c +++ /dev/null @@ -1,41 +0,0 @@ -// MIT License, Copyright (c) 2020 Marvin Borner - -#include -#include -#include - -int ide_wait(int check) -{ - char r; - - // Wait while drive is busy. Once just ready is set, exit the loop - while (((r = (char)inb(IDE_IO | IDE_CMD)) & (IDE_BUSY | IDE_READY)) != IDE_READY) - ; - - // Check for errors - if (check && (r & (IDE_DRIVE_FAULT | IDE_ERROR)) != 0) - return 0xF; - return 0; -} - -void *ide_read(void *b, u32 block) -{ - int sector_per_block = BLOCK_SIZE / SECTOR_SIZE; // 2 - int sector = block * sector_per_block; - - ide_wait(0); - outb(IDE_IO | IDE_SECTOR_COUNT, sector_per_block); // Number of sectors - outb(IDE_IO | IDE_LOW, LBA_LOW(sector)); - outb(IDE_IO | IDE_MID, LBA_MID(sector)); - outb(IDE_IO | IDE_HIGH, LBA_HIGH(sector)); - - // Slave/Master << 4 and last 4 bits - outb(IDE_IO | IDE_HEAD, 0xE0 | (1 << 4) | LBA_LAST(sector)); - outb(IDE_IO | IDE_CMD, IDE_CMD_READ); - ide_wait(0); - - // Read-only - insl(IDE_IO, b, BLOCK_SIZE / 4); - - return b; -} -- cgit v1.2.3