]> Zhao Yanbai Git Server - minix.git/commitdiff
Added pci_init1.c, pci_attr_r16.c, pci_attr_w8.c, pci_attr_w16.c,
authorPhilip Homburg <philip@cs.vu.nl>
Thu, 12 Jan 2006 14:37:37 +0000 (14:37 +0000)
committerPhilip Homburg <philip@cs.vu.nl>
Thu, 12 Jan 2006 14:37:37 +0000 (14:37 +0000)
and pci_rescan_bus.c

lib/syslib/Makefile
lib/syslib/pci_attr_r16.c [new file with mode: 0644]
lib/syslib/pci_attr_w16.c [new file with mode: 0644]
lib/syslib/pci_attr_w8.c [new file with mode: 0644]
lib/syslib/pci_init.c
lib/syslib/pci_init1.c [new file with mode: 0644]
lib/syslib/pci_rescan_bus.c [new file with mode: 0644]

index 5c9fd86d32e1dd32c10c28ab4d0879988fb5d800..749c8b9bd0bc6f6fa7f35391fd5ff47f05ccf0dc 100755 (executable)
@@ -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 \
 
diff --git a/lib/syslib/pci_attr_r16.c b/lib/syslib/pci_attr_r16.c
new file mode 100644 (file)
index 0000000..b5fae60
--- /dev/null
@@ -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;
+}
+
diff --git a/lib/syslib/pci_attr_w16.c b/lib/syslib/pci_attr_w16.c
new file mode 100644 (file)
index 0000000..c2c8e2e
--- /dev/null
@@ -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);
+}
+
diff --git a/lib/syslib/pci_attr_w8.c b/lib/syslib/pci_attr_w8.c
new file mode 100644 (file)
index 0000000..7385d95
--- /dev/null
@@ -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);
+}
+
index 25497524253f7ab87253dd339ff663abf30e8b05..626afe45b3e4c930a784f84da4d077c42bf8231d 100644 (file)
@@ -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("");
 }
 
diff --git a/lib/syslib/pci_init1.c b/lib/syslib/pci_init1.c
new file mode 100644 (file)
index 0000000..76df3e5
--- /dev/null
@@ -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);
+}
+
diff --git a/lib/syslib/pci_rescan_bus.c b/lib/syslib/pci_rescan_bus.c
new file mode 100644 (file)
index 0000000..1e0c338
--- /dev/null
@@ -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);
+       }
+}
+