Initial checkin.
[people/mcb30/legacybios.git] / src / disk.h
1 // Definitions for X86 bios disks.
2 //
3 // Copyright (C) 2008  Kevin O'Connor <kevin@koconnor.net>
4 //
5 // This file may be distributed under the terms of the GNU GPLv3 license.
6
7 #include "ioport.h" // outb
8
9 #define DISK_RET_SUCCESS     0x00
10 #define DISK_RET_EPARAM      0x01
11 #define DISK_RET_ECHANGED    0x06
12 #define DISK_RET_EBOUNDARY   0x09
13 #define DISK_RET_ECONTROLLER 0x20
14 #define DISK_RET_ETIMEOUT    0x80
15 #define DISK_RET_EMEDIA      0xC0
16
17 static inline void
18 eoi_master_pic()
19 {
20     outb(PIC1_IRQ5, PORT_PIC1);
21 }
22
23 static inline void
24 eoi_both_pics()
25 {
26     outb(PIC2_IRQ13, PORT_PIC2);
27     eoi_master_pic();
28 }
29
30 // floppy.c
31 struct bregs;
32 void floppy_13(struct bregs *regs, u8 drive);
33 void floppy_tick();