CeDOS - include/cedos/pic.h

include/cedos/pic.h (view raw)

/*! \file
 * Interface for accessing the programmable interrupt contoller (PIC).
 */
#ifndef PIC_H
#define PIC_H

#define PIC1_COMMAND			0x20
#define PIC1_DATA				0x21
#define PIC2_COMMAND			0xA0
#define PIC2_DATA				0xA1

#define PIC_END_OF_INTERRUPT	0x20

#define PIC1_OFFSET				0x20
#define PIC2_OFFSET				0x28

/*!
 * Moves irqs to appropriate addresses and enables all PIC interrupts
 * \return 1 on success, 0 on fail
 */
int pic_init(void);

/*!
 * Unmasks interrupt number \p irq.
 * \param irq Number of the interrupt to unmask.
 * \return 1 on success, 0 on fail
 */
int pic_unmask_interrupt(int irq);

/*!
 * Masks interrupt number \p irq.
 * \param irq Number of the interrupt to mask.
 * \return 1 on success, 0 on fail
 */
int pic_mask_interrupt(int irq);

#endif