Added pci_init1.c, pci_attr_r16.c, pci_attr_w8.c, pci_attr_w16.c,
and pci_rescan_bus.c
This commit is contained in:
parent
2ac648b695
commit
f18faca855
7 changed files with 164 additions and 9 deletions
|
@ -42,14 +42,19 @@ libsys_OBJECTS = \
|
|||
sys_vm_setbuf.o \
|
||||
sys_vm_map.o \
|
||||
pci_attr_r8.o \
|
||||
pci_attr_r16.o \
|
||||
pci_attr_r32.o \
|
||||
pci_attr_w8.o \
|
||||
pci_attr_w16.o \
|
||||
pci_attr_w32.o \
|
||||
pci_dev_name.o \
|
||||
pci_find_dev.o \
|
||||
pci_first_dev.o \
|
||||
pci_ids.o \
|
||||
pci_init.o \
|
||||
pci_init1.o \
|
||||
pci_next_dev.o \
|
||||
pci_rescan_bus.o \
|
||||
pci_reserve.o \
|
||||
pci_slot_name.o \
|
||||
|
||||
|
|
31
lib/syslib/pci_attr_r16.c
Normal file
31
lib/syslib/pci_attr_r16.c
Normal file
|
@ -0,0 +1,31 @@
|
|||
/*
|
||||
pci_attr_r16.c
|
||||
*/
|
||||
|
||||
#include "syslib.h"
|
||||
#include <minix/sysutil.h>
|
||||
|
||||
/*===========================================================================*
|
||||
* pci_attr_r16 *
|
||||
*===========================================================================*/
|
||||
PUBLIC u16_t pci_attr_r16(devind, port)
|
||||
int devind;
|
||||
int port;
|
||||
{
|
||||
int r;
|
||||
message m;
|
||||
|
||||
m.m_type= BUSC_PCI_ATTR_R16;
|
||||
m.m2_i1= devind;
|
||||
m.m2_i2= port;
|
||||
|
||||
r= sendrec(PCI_PROC_NR, &m);
|
||||
if (r != 0)
|
||||
panic("pci", "pci_attr_r16: can't talk to PCI", r);
|
||||
|
||||
if (m.m_type != 0)
|
||||
panic("pci", "pci_attr_r16: got bad reply from PCI", m.m_type);
|
||||
|
||||
return m.m2_l1;
|
||||
}
|
||||
|
31
lib/syslib/pci_attr_w16.c
Normal file
31
lib/syslib/pci_attr_w16.c
Normal file
|
@ -0,0 +1,31 @@
|
|||
/*
|
||||
pci_attr_w16.c
|
||||
*/
|
||||
|
||||
#include "syslib.h"
|
||||
#include <minix/sysutil.h>
|
||||
|
||||
/*===========================================================================*
|
||||
* pci_attr_w16 *
|
||||
*===========================================================================*/
|
||||
PUBLIC void pci_attr_w16(devind, port, value)
|
||||
int devind;
|
||||
int port;
|
||||
u16_t value;
|
||||
{
|
||||
int r;
|
||||
message m;
|
||||
|
||||
m.m_type= BUSC_PCI_ATTR_W16;
|
||||
m.m2_i1= devind;
|
||||
m.m2_i2= port;
|
||||
m.m2_l1= value;
|
||||
|
||||
r= sendrec(PCI_PROC_NR, &m);
|
||||
if (r != 0)
|
||||
panic("pci", "pci_attr_w16: can't talk to PCI", r);
|
||||
|
||||
if (m.m_type != 0)
|
||||
panic("pci", "pci_attr_w16: got bad reply from PCI", m.m_type);
|
||||
}
|
||||
|
31
lib/syslib/pci_attr_w8.c
Normal file
31
lib/syslib/pci_attr_w8.c
Normal file
|
@ -0,0 +1,31 @@
|
|||
/*
|
||||
pci_attr_w8.c
|
||||
*/
|
||||
|
||||
#include "syslib.h"
|
||||
#include <minix/sysutil.h>
|
||||
|
||||
/*===========================================================================*
|
||||
* pci_attr_w8 *
|
||||
*===========================================================================*/
|
||||
PUBLIC void pci_attr_w8(devind, port, value)
|
||||
int devind;
|
||||
int port;
|
||||
u8_t value;
|
||||
{
|
||||
int r;
|
||||
message m;
|
||||
|
||||
m.m_type= BUSC_PCI_ATTR_W8;
|
||||
m.m2_i1= devind;
|
||||
m.m2_i2= port;
|
||||
m.m2_l1= value;
|
||||
|
||||
r= sendrec(PCI_PROC_NR, &m);
|
||||
if (r != 0)
|
||||
panic("pci", "pci_attr_w8: can't talk to PCI", r);
|
||||
|
||||
if (m.m_type != 0)
|
||||
panic("pci", "pci_attr_w8: got bad reply from PCI", m.m_type);
|
||||
}
|
||||
|
|
@ -10,14 +10,6 @@ pci_init.c
|
|||
*===========================================================================*/
|
||||
PUBLIC void pci_init()
|
||||
{
|
||||
int r;
|
||||
message m;
|
||||
|
||||
m.m_type= BUSC_PCI_INIT;
|
||||
r= sendrec(PCI_PROC_NR, &m);
|
||||
if (r != 0)
|
||||
panic("pci", "pci_init: can't talk to PCI", r);
|
||||
if (m.m_type != 0)
|
||||
panic("pci", "pci_init: got bad reply from PCI", m.m_type);
|
||||
pci_init1("");
|
||||
}
|
||||
|
||||
|
|
35
lib/syslib/pci_init1.c
Normal file
35
lib/syslib/pci_init1.c
Normal file
|
@ -0,0 +1,35 @@
|
|||
/*
|
||||
pci_init1.c
|
||||
*/
|
||||
|
||||
#include "syslib.h"
|
||||
#include <string.h>
|
||||
#include <minix/sysutil.h>
|
||||
|
||||
/*===========================================================================*
|
||||
* pci_init1 *
|
||||
*===========================================================================*/
|
||||
PUBLIC void pci_init1(name)
|
||||
char *name;
|
||||
{
|
||||
int r;
|
||||
size_t len;
|
||||
message m;
|
||||
|
||||
m.m_type= BUSC_PCI_INIT;
|
||||
len= strlen(name);
|
||||
if (len+1 <= sizeof(m.m3_ca1))
|
||||
strcpy(m.m3_ca1, name);
|
||||
else
|
||||
{
|
||||
len= sizeof(m.m3_ca1)-1;
|
||||
memcpy(m.m3_ca1, name, len);
|
||||
m.m3_ca1[len]= '\0';
|
||||
}
|
||||
r= sendrec(PCI_PROC_NR, &m);
|
||||
if (r != 0)
|
||||
panic("pci", "pci_init1: can't talk to PCI", r);
|
||||
if (m.m_type != 0)
|
||||
panic("pci", "pci_init1: got bad reply from PCI", m.m_type);
|
||||
}
|
||||
|
30
lib/syslib/pci_rescan_bus.c
Normal file
30
lib/syslib/pci_rescan_bus.c
Normal file
|
@ -0,0 +1,30 @@
|
|||
/*
|
||||
pci_rescan_bus.c
|
||||
*/
|
||||
|
||||
#include "syslib.h"
|
||||
#include <minix/sysutil.h>
|
||||
|
||||
/*===========================================================================*
|
||||
* pci_rescan_bus *
|
||||
*===========================================================================*/
|
||||
PUBLIC void pci_rescan_bus(busnr)
|
||||
u8_t busnr;
|
||||
{
|
||||
int r;
|
||||
message m;
|
||||
|
||||
m.m_type= BUSC_PCI_RESCAN;
|
||||
m.m1_i1= busnr;
|
||||
|
||||
r= sendrec(PCI_PROC_NR, &m);
|
||||
if (r != 0)
|
||||
panic("pci", "pci_rescan_bus: can't talk to PCI", r);
|
||||
|
||||
if (m.m_type != 0)
|
||||
{
|
||||
panic("pci", "pci_rescan_bus: got bad reply from PCI",
|
||||
m.m_type);
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in a new issue