OurOS 0.1
Operating System built by McGill Students
 
Loading...
Searching...
No Matches
pic.h File Reference
#include "port_io.h"
#include <stdint.h>

Go to the source code of this file.

Macros

#define PIC1   0x20 /* IO base address for master PIC */
 
#define PIC2   0xA0 /* IO base address for slave PIC */
 
#define PIC1_COMMAND   PIC1
 
#define PIC1_DATA   (PIC1+1)
 
#define PIC2_COMMAND   PIC2
 
#define PIC2_DATA   (PIC2+1)
 
#define PIC_EOI   0x20 /* End-of-interrupt command code */
 
#define ICW1_ICW4   0x01 /* Indicates that ICW4 will be present */
 
#define ICW1_SINGLE   0x02 /* Single (cascade) mode */
 
#define ICW1_INTERVAL4   0x04 /* Call address interval 4 (8) */
 
#define ICW1_LEVEL   0x08 /* Level triggered (edge) mode */
 
#define ICW1_INIT   0x10 /* Initialization - required! */
 
#define ICW4_8086   0x01 /* 8086/88 (MCS-80/85) mode */
 
#define ICW4_AUTO   0x02 /* Auto (normal) EOI */
 
#define ICW4_BUF_SLAVE   0x08 /* Buffered mode/slave */
 
#define ICW4_BUF_MASTER   0x0C /* Buffered mode/master */
 
#define ICW4_SFNM   0x10 /* Special fully nested (not) */
 
#define PIC_MASTER_IRQ_OFFSET   0x20
 
#define PIC_SLAVE_IRQ_OFFSET   0x28
 
#define CASCADE_IRQ   2
 

Functions

static void PIC_sendEOI (uint8_t irq)
 
void PIC_init ()
 
void PIC_remap (int offset1, int offset2)
 
void PIC_unmask (void)
 
void PIC_mask (void)
 
void PIC_set_mask (uint8_t IRQline)
 
void PIC_clear_mask (uint8_t IRQline)
 

Macro Definition Documentation

◆ CASCADE_IRQ

#define CASCADE_IRQ   2

◆ ICW1_ICW4

#define ICW1_ICW4   0x01 /* Indicates that ICW4 will be present */

◆ ICW1_INIT

#define ICW1_INIT   0x10 /* Initialization - required! */

◆ ICW1_INTERVAL4

#define ICW1_INTERVAL4   0x04 /* Call address interval 4 (8) */

◆ ICW1_LEVEL

#define ICW1_LEVEL   0x08 /* Level triggered (edge) mode */

◆ ICW1_SINGLE

#define ICW1_SINGLE   0x02 /* Single (cascade) mode */

◆ ICW4_8086

#define ICW4_8086   0x01 /* 8086/88 (MCS-80/85) mode */

◆ ICW4_AUTO

#define ICW4_AUTO   0x02 /* Auto (normal) EOI */

◆ ICW4_BUF_MASTER

#define ICW4_BUF_MASTER   0x0C /* Buffered mode/master */

◆ ICW4_BUF_SLAVE

#define ICW4_BUF_SLAVE   0x08 /* Buffered mode/slave */

◆ ICW4_SFNM

#define ICW4_SFNM   0x10 /* Special fully nested (not) */

◆ PIC1

#define PIC1   0x20 /* IO base address for master PIC */

◆ PIC1_COMMAND

#define PIC1_COMMAND   PIC1

◆ PIC1_DATA

#define PIC1_DATA   (PIC1+1)

◆ PIC2

#define PIC2   0xA0 /* IO base address for slave PIC */

◆ PIC2_COMMAND

#define PIC2_COMMAND   PIC2

◆ PIC2_DATA

#define PIC2_DATA   (PIC2+1)

◆ PIC_EOI

#define PIC_EOI   0x20 /* End-of-interrupt command code */

◆ PIC_MASTER_IRQ_OFFSET

#define PIC_MASTER_IRQ_OFFSET   0x20

◆ PIC_SLAVE_IRQ_OFFSET

#define PIC_SLAVE_IRQ_OFFSET   0x28

Function Documentation

◆ PIC_clear_mask()

void PIC_clear_mask ( uint8_t  IRQline)

◆ PIC_init()

void PIC_init ( )

◆ PIC_mask()

void PIC_mask ( void  )

◆ PIC_remap()

void PIC_remap ( int  offset1,
int  offset2 
)

◆ PIC_sendEOI()

static void PIC_sendEOI ( uint8_t  irq)
inlinestatic

◆ PIC_set_mask()

void PIC_set_mask ( uint8_t  IRQline)

◆ PIC_unmask()

void PIC_unmask ( void  )