37 lines
875 B
C
37 lines
875 B
C
|
void setpic(void)
|
||
|
{
|
||
|
/* MASTER */
|
||
|
/* Initialisation de ICW1 */
|
||
|
outbp(0x20,0x11);
|
||
|
/* Initialisation de ICW2 - vecteur de depart = 32 */
|
||
|
outbp(0x21,0x20);
|
||
|
/* Initialisation de ICW3 */
|
||
|
outbp(0x21,0x04);
|
||
|
/* Initialisation de ICW4 */
|
||
|
outbp(0x21,0x01);
|
||
|
/* masquage des interruptions */
|
||
|
outbp(0x21,0xFF);
|
||
|
/* SLAVE */
|
||
|
/* Initialisation de ICW1 */
|
||
|
outbp(0xA0,0x11);
|
||
|
/* Initialisation de ICW2 - vecteur de depart = 96 */
|
||
|
outbp(0xA1,0x70);
|
||
|
/* Initialisation de ICW3 */
|
||
|
outbp(0xA1,0x02);
|
||
|
/* Initialisation de ICW4 */
|
||
|
outbp(0xA1,0x01);
|
||
|
/* masquage des interruptions */
|
||
|
outbp(0xA1,0xFF);
|
||
|
/* Demasquage des irqs */
|
||
|
outbp(0x21,0xFD);
|
||
|
}
|
||
|
|
||
|
void makeidtdesc(u32 offset, u16 select, u16 type, idtdesc* desc)
|
||
|
{
|
||
|
desc->offset0_15 = (offset & 0xffff);
|
||
|
desc->select = select;
|
||
|
desc->type = type;
|
||
|
desc->offset16_31 = (offset & 0xffff0000) >> 16;
|
||
|
return;
|
||
|
}
|