GitOS
Operating system exercise
Loading...
Searching...
No Matches
pic.h
Go to the documentation of this file.
1#pragma once
2#include <stdint.h>
3
4#define PIC1 0x20 /* IO base address for master PIC */
5#define PIC2 0xA0 /* IO base address for slave PIC */
6#define PIC1_COMMAND PIC1
7#define PIC1_DATA (PIC1+1)
8#define PIC2_COMMAND PIC2
9#define PIC2_DATA (PIC2+1)
10
11void pic_Remap(uint8_t offset1, uint8_t offset2);
12void pic_EOI(unsigned char irq);
13void pic_SetHz(uint16_t hz);
14/*
15
168259A Input pin Interrupt Number Description
17IRQ0 0x08 Timer
18IRQ1 0x09 Keyboard
19IRQ2 0x0A Cascade for 8259A Slave controller
20IRQ3 0x0B Serial port 2
21IRQ4 0x0C Serial port 1
22IRQ5 0x0D AT systems: Parallel Port 2. PS/2 systems: reserved
23IRQ6 0x0E Diskette drive
24IRQ7 0x0F Parallel Port 1
25IRQ8/IRQ0 0x70 CMOS Real time clock
26IRQ9/IRQ1 0x71 CGA vertical retrace
27IRQ10/IRQ2 0x72 Reserved
28IRQ11/IRQ3 0x73 Reserved
29IRQ12/IRQ4 0x74 AT systems: reserved. PS/2: auxiliary device
30IRQ13/IRQ5 0x75 FPU
31IRQ14/IRQ6 0x76 Hard disk controller
32IRQ15/IRQ7 0x77 Reserved
33
34*/
void pic_EOI(unsigned char irq)
Sends End Of Interrupt to PIC.
Definition pic.c:61
void pic_Remap(uint8_t offset1, uint8_t offset2)
Remaps master PIC and slave PIC to specified interupts numbers.
Definition pic.c:25
void pic_SetHz(uint16_t hz)
Sets PIT Channel 0 frequency.
Definition pic.c:48