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 \
--- /dev/null
+/*
+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;
+}
+
--- /dev/null
+/*
+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);
+}
+
--- /dev/null
+/*
+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);
+}
+
*===========================================================================*/
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("");
}
--- /dev/null
+/*
+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);
+}
+
--- /dev/null
+/*
+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);
+ }
+}
+