feat: ensemble de fonctions permettant la gestion des I/O

This commit is contained in:
Nicolas Hordé 2007-04-02 13:03:47 +00:00
parent 7b41bd6595
commit d03e3ce1ae
1 changed files with 66 additions and 0 deletions

66
lib/port.c Normal file
View File

@ -0,0 +1,66 @@
#include "types.h"
#include "asm.h"
void outreg(u16 port,u8 *src,u16 num)
{
int i;
for(i=0;i<num;i++)
{
outb(port,i);
outb(port+1,*src++);
}
}
void outregsame(u16 port,u8 *src,u16 num)
{
int i;
for(i=0;i<num;i++)
{
inw(port);
outb(port,i);
outb(port,*src++);
}
}
void inreg(u16 port,u8 *src,u16 num)
{
int i;
for(i=0;i<num;i++)
{
outb(port,i);
*src++=inb(port+1);
}
}
void inregsame(u16 port,u8 *src,u16 num)
{
int i;
for(i=0;i<num;i++)
{
inw(port);
outb(port,i);
*src++=inb(port);
}
}
void initreg(u16 port,u8 *src,u16 num)
{
int i;
for(i=0;i<num;i++)
{
outb(port,*src++);
outb(port+1,*src++);
}
}
void initregsame(u16 port,u8 *src,u16 num)
{
int i;
for(i=0;i<num;i++)
{
inw(port);
outb(port,*src++);
outb(port,*src++);
}
}