]> Zhao Yanbai Git Server - minix.git/commitdiff
Moved PCI driver to the ramdisk.
authorPhilip Homburg <philip@cs.vu.nl>
Wed, 15 Feb 2006 14:21:56 +0000 (14:21 +0000)
committerPhilip Homburg <philip@cs.vu.nl>
Wed, 15 Feb 2006 14:21:56 +0000 (14:21 +0000)
23 files changed:
drivers/memory/Makefile
drivers/memory/ramdisk/Makefile
drivers/memory/ramdisk/proto
drivers/memory/ramdisk/rc
include/minix/com.h
kernel/table.c
lib/syslib/pci.h [new file with mode: 0644]
lib/syslib/pci_attr_r16.c
lib/syslib/pci_attr_r32.c
lib/syslib/pci_attr_r8.c
lib/syslib/pci_attr_w16.c
lib/syslib/pci_attr_w32.c
lib/syslib/pci_attr_w8.c
lib/syslib/pci_dev_name.c
lib/syslib/pci_find_dev.c
lib/syslib/pci_first_dev.c
lib/syslib/pci_ids.c
lib/syslib/pci_init1.c
lib/syslib/pci_next_dev.c
lib/syslib/pci_rescan_bus.c
lib/syslib/pci_reserve.c
lib/syslib/pci_slot_name.c
tools/Makefile

index ff9f0de6a0001a7346366876b29ef420b7225b4f..d1e17d2254a05dc4d447a6ed62189bebb596d5e8 100644 (file)
@@ -48,6 +48,7 @@ clean:
 
 depend: 
        /usr/bin/mkdep "$(CC) -E $(CPPFLAGS)" *.c ../libdriver/*.c > .depend
+       cd ramdisk && make depend
 
 # Include generated dependencies.
 include .depend
index 209578d71aaf342517753b87c0d5f1ee7a8f1f65..c3344601494193925ac5d22f8dbb37546be3176a 100644 (file)
@@ -1,7 +1,7 @@
 # Makefile for ramdisk image
 
 PROGRAMS=at_wini bios_wini cdprobe dev2name floppy loadramdisk newroot \
-       sh service sysenv
+       pci sh service sysenv
 
 all:   image.c
 
@@ -37,6 +37,12 @@ floppy: ../../floppy/floppy
 ../../floppy/floppy:
        cd ../../floppy && make
 
+pci: ../../pci/pci
+       install -s ../../$@/$@ $@
+
+../../pci/pci:
+       cd ../../pci && make
+
 cdprobe:  ../../../commands/simple/cdprobe
        install -s ../../../commands/simple/$@ $@
 
@@ -79,3 +85,9 @@ service: ../../../servers/rs/service
 ../../../servers/rs/service: 
        cd ../../../servers/rs && make service
 
+depend: 
+       /usr/bin/mkdep "$(CC) -E $(CPPFLAGS)" *.c > .depend
+
+# Include generated dependencies.
+include .depend
+
index de7de55b408312843820bacd7837fdc4709d5ac1..34d2f205521339080a217363835f8c6bee1be8da 100644 (file)
@@ -1,5 +1,5 @@
 boot 
-200 100
+240 100
 d--755 0 0
        bin d--755 0 0
                at_wini ---755 0 0 at_wini
@@ -9,6 +9,7 @@ d--755 0 0
                floppy ---755 0 0 floppy
                loadramdisk ---755 0 0 loadramdisk
                newroot ---755 0 0 newroot
+               pci ---755 0 0 pci
                sh ---755 0 0 sh
                service ---755 0 0 service
                sysenv ---755 0 0 sysenv
index 2aefa961e7545fa10f084ed0c1069176c12804e5..081cfa5ef27d1151e68a55e1864b92a201502715 100644 (file)
@@ -1,5 +1,6 @@
 #!/bin/sh
 set -e
+/bin/service up /bin/pci
 /bin/service up /bin/floppy -dev /dev/fd0
 if [ X`/bin/sysenv bios_wini` = Xyes ]
 then
index 484179750c4373bfdba2ea59a28f577fe3d6a627..22a9a12f69c26c56c43c271ffc7633754d8a7c9c 100755 (executable)
@@ -38,8 +38,7 @@
 #define LOG_PROC_NR      4     /* log device driver */
 #define TTY_PROC_NR      5     /* terminal (TTY) driver */
 #define DS_PROC_NR       6     /* data store server */
-#define PCI_PROC_NR       7    /* driver for PCI controllers */
-#define INIT_PROC_NR     8     /* init -- goes multiuser */
+#define INIT_PROC_NR     7     /* init -- goes multiuser */
 
 /* Number of processes contained in the system image. */
 #define NR_BOOT_PROCS  (NR_TASKS + INIT_PROC_NR + 1)
index cf23259fa3683929ab152271e408750cb7be4db4..c4c3ff38d2d87c9fb4b34904438e28280d2ff47a 100755 (executable)
@@ -109,8 +109,8 @@ PUBLIC struct boot_image image[] = {
  { LOG_PROC_NR,   0, SRV_F,  4,      2, 0,     SRV_T, SYS_M, DRV_C, "log"   },
 #if 0
  { DRVR_PROC_NR,  0, SRV_F,  4,      2, 0,     SRV_T, SYS_M, DRV_C, "driver"},
-#endif
  { PCI_PROC_NR,   0, SRV_F,  4,      2, 0,     SRV_T, SYS_M, PCI_C, "pci"},
+#endif
  { INIT_PROC_NR,  0, USR_F,  8, USER_Q, 0,     USR_T, USR_M,     0, "init"  },
 };
 
diff --git a/lib/syslib/pci.h b/lib/syslib/pci.h
new file mode 100644 (file)
index 0000000..08dd2ff
--- /dev/null
@@ -0,0 +1 @@
+extern int pci_procnr;
index b5fae608800f6c118b06769ae1fe345e94bfae1e..6aff1aa5a04da77ed72c6ccfe609d306e4af4952 100644 (file)
@@ -2,6 +2,7 @@
 pci_attr_r16.c
 */
 
+#include "pci.h"
 #include "syslib.h"
 #include <minix/sysutil.h>
 
@@ -19,7 +20,7 @@ int port;
        m.m2_i1= devind;
        m.m2_i2= port;
 
-       r= sendrec(PCI_PROC_NR, &m);
+       r= sendrec(pci_procnr, &m);
        if (r != 0)
                panic("pci", "pci_attr_r16: can't talk to PCI", r);
 
index b9b53a67972d56bce492a917f038db89acce2601..aa9bd7a91f59dee288b55cd3f98def5e50df0434 100644 (file)
@@ -2,6 +2,7 @@
 pci_attr_r32.c
 */
 
+#include "pci.h"
 #include "syslib.h"
 #include <minix/sysutil.h>
 
@@ -19,7 +20,7 @@ int port;
        m.m2_i1= devind;
        m.m2_i2= port;
 
-       r= sendrec(PCI_PROC_NR, &m);
+       r= sendrec(pci_procnr, &m);
        if (r != 0)
                panic("pci", "pci_attr_r32: can't talk to PCI", r);
 
index 616390ab4c062da5105617da1e43156eab970127..95f4ce27eeada08976b7c82f78095862aa6fb7e4 100644 (file)
@@ -2,6 +2,7 @@
 pci_attr_r8.c
 */
 
+#include "pci.h"
 #include "syslib.h"
 #include <minix/sysutil.h>
 
@@ -19,7 +20,7 @@ int port;
        m.m2_i1= devind;
        m.m2_i2= port;
 
-       r= sendrec(PCI_PROC_NR, &m);
+       r= sendrec(pci_procnr, &m);
        if (r != 0)
                panic("pci", "pci_attr_r8: can't talk to PCI", r);
 
index c2c8e2eb21c86069687b1e75daff720cde07286e..7c13ed6a114c2a56538e431c58cf0c3e6c32bf5c 100644 (file)
@@ -2,6 +2,7 @@
 pci_attr_w16.c
 */
 
+#include "pci.h"
 #include "syslib.h"
 #include <minix/sysutil.h>
 
@@ -21,7 +22,7 @@ u16_t value;
        m.m2_i2= port;
        m.m2_l1= value;
 
-       r= sendrec(PCI_PROC_NR, &m);
+       r= sendrec(pci_procnr, &m);
        if (r != 0)
                panic("pci", "pci_attr_w16: can't talk to PCI", r);
 
index bf1110ad21c74b87ea8b04cb14b661af14fc7fb6..887dd075291534fc631481f27a340b979a6548c2 100644 (file)
@@ -2,6 +2,7 @@
 pci_attr_w32.c
 */
 
+#include "pci.h"
 #include "syslib.h"
 #include <minix/sysutil.h>
 
@@ -21,7 +22,7 @@ u32_t value;
        m.m2_i2= port;
        m.m2_l1= value;
 
-       r= sendrec(PCI_PROC_NR, &m);
+       r= sendrec(pci_procnr, &m);
        if (r != 0)
                panic("pci", "pci_attr_w32: can't talk to PCI", r);
 
index 7385d9505f4bc8b61fc0cb39a4603f7bd8a2d4e4..a764d3a51aa01b878a50b3ced8d4066e0f090b33 100644 (file)
@@ -2,6 +2,7 @@
 pci_attr_w8.c
 */
 
+#include "pci.h"
 #include "syslib.h"
 #include <minix/sysutil.h>
 
@@ -21,7 +22,7 @@ u8_t value;
        m.m2_i2= port;
        m.m2_l1= value;
 
-       r= sendrec(PCI_PROC_NR, &m);
+       r= sendrec(pci_procnr, &m);
        if (r != 0)
                panic("pci", "pci_attr_w8: can't talk to PCI", r);
 
index 5200e9f1c90310de5e985dab6357d27b19909e97..0757d39761835cd863fb8be4d8a5dcc3c87b3932 100644 (file)
@@ -2,6 +2,7 @@
 pci_dev_name.c
 */
 
+#include "pci.h"
 #include "syslib.h"
 #include <minix/sysutil.h>
 
@@ -23,7 +24,7 @@ u16_t did;
        m.m1_i3= sizeof(name);
        m.m1_p1= name;
 
-       r= sendrec(PCI_PROC_NR, &m);
+       r= sendrec(pci_procnr, &m);
        if (r != 0)
                panic("pci", "pci_dev_name: can't talk to PCI", r);
 
index 0e64376317689d50903066d6d7117d4fc01f2036..c498ddec632d84610b666fb97613f47a24553b0c 100644 (file)
@@ -2,6 +2,7 @@
 pci_find_dev.c
 */
 
+#include "pci.h"
 #include "syslib.h"
 #include <minix/sysutil.h>
 
@@ -22,7 +23,7 @@ int *devindp;
        m.m1_i2= dev;
        m.m1_i3= func;
 
-       r= sendrec(PCI_PROC_NR, &m);
+       r= sendrec(pci_procnr, &m);
        if (r != 0)
                panic("pci", "pci_find_dev: can't talk to PCI", r);
 
index b1c408efb805c57f36f37e6e6f83a0fcbf1c1159..6f3b3b894adc4696248a47ba9d89730a2d43c6ab 100644 (file)
@@ -2,6 +2,7 @@
 pci_first_dev.c
 */
 
+#include "pci.h"
 #include "syslib.h"
 #include <minix/sysutil.h>
 
@@ -17,7 +18,7 @@ u16_t *didp;
        message m;
 
        m.m_type= BUSC_PCI_FIRST_DEV;
-       r= sendrec(PCI_PROC_NR, &m);
+       r= sendrec(pci_procnr, &m);
        if (r != 0)
                panic("pci", "pci_first_dev: can't talk to PCI", r);
        if (m.m_type == 1)
index c05e05aaf7862d5053caea46e6b1bfec6ca64604..33f839fd2dc13d567d8f9082cb8ea6ac82eff5ef 100644 (file)
@@ -2,6 +2,7 @@
 pci_ids.c
 */
 
+#include "pci.h"
 #include "syslib.h"
 #include <minix/sysutil.h>
 
@@ -19,7 +20,7 @@ u16_t *didp;
        m.m_type= BUSC_PCI_IDS;
        m.m1_i1= devind;
 
-       r= sendrec(PCI_PROC_NR, &m);
+       r= sendrec(pci_procnr, &m);
        if (r != 0)
                panic("pci", "pci_ids: can't talk to PCI", r);
 
index 76df3e5720bce58ff9904a90ca2652b7486f780b..a56516476a35febb7d1ac7cf0d445d32b673fa36 100644 (file)
@@ -2,10 +2,14 @@
 pci_init1.c
 */
 
+#include "pci.h"
 #include "syslib.h"
 #include <string.h>
+#include <unistd.h>
 #include <minix/sysutil.h>
 
+int pci_procnr= ANY;
+
 /*===========================================================================*
  *                             pci_init1                                    *
  *===========================================================================*/
@@ -16,6 +20,11 @@ char *name;
        size_t len;
        message m;
 
+       r= findproc("pci", &pci_procnr);
+       if (r != 0)
+               panic("pci", "pci_init1: findproc failed for 'pci'", r);
+       printf("'pci' is at %d\n", pci_procnr);
+
        m.m_type= BUSC_PCI_INIT;
        len= strlen(name);
        if (len+1 <= sizeof(m.m3_ca1))
@@ -26,7 +35,7 @@ char *name;
                memcpy(m.m3_ca1, name, len);
                m.m3_ca1[len]= '\0';
        }
-       r= sendrec(PCI_PROC_NR, &m);
+       r= sendrec(pci_procnr, &m);
        if (r != 0)
                panic("pci", "pci_init1: can't talk to PCI", r);
        if (m.m_type != 0)
index 2cb6d9fc076f9d059e6da9a7c79ea52f0fa8b264..adf499d5bb040d668b2b03df381afedcecff9598 100644 (file)
@@ -2,6 +2,7 @@
 pci_next_dev.c
 */
 
+#include "pci.h"
 #include "syslib.h"
 #include <minix/sysutil.h>
 
@@ -19,7 +20,7 @@ u16_t *didp;
        m.m_type= BUSC_PCI_NEXT_DEV;
        m.m1_i1= *devindp;
 
-       r= sendrec(PCI_PROC_NR, &m);
+       r= sendrec(pci_procnr, &m);
        if (r != 0)
                panic("pci", "pci_next_dev: can't talk to PCI", r);
 
index 1e0c3387e3075313f504515da1471651e0a5581b..7542b202d5a13ed50b35932d562f008c90528e6e 100644 (file)
@@ -2,6 +2,7 @@
 pci_rescan_bus.c
 */
 
+#include "pci.h"
 #include "syslib.h"
 #include <minix/sysutil.h>
 
@@ -17,7 +18,7 @@ u8_t busnr;
        m.m_type= BUSC_PCI_RESCAN;
        m.m1_i1= busnr;
 
-       r= sendrec(PCI_PROC_NR, &m);
+       r= sendrec(pci_procnr, &m);
        if (r != 0)
                panic("pci", "pci_rescan_bus: can't talk to PCI", r);
 
index 3cf638188d1276b497e91adf6c61a9e3eca2586a..84d7ad0d1baa9e2a6c0355e630f94ba95bd8b5c4 100644 (file)
@@ -2,6 +2,7 @@
 pci_reserve.c
 */
 
+#include "pci.h"
 #include "syslib.h"
 #include <minix/sysutil.h>
 
@@ -17,7 +18,7 @@ int devind;
        m.m_type= BUSC_PCI_RESERVE;
        m.m1_i1= devind;
 
-       r= sendrec(PCI_PROC_NR, &m);
+       r= sendrec(pci_procnr, &m);
        if (r != 0)
                panic("pci", "pci_reserve: can't talk to PCI", r);
 
index 0591d25729f9e6d167f17434363189f53d3e4f23..d8dff2103623ce219794aa96c702ad223b749e87 100644 (file)
@@ -2,6 +2,7 @@
 pci_slot_name.c
 */
 
+#include "pci.h"
 #include "syslib.h"
 #include <minix/sysutil.h>
 
@@ -21,7 +22,7 @@ int devind;
        m.m1_i2= sizeof(name);
        m.m1_p1= name;
 
-       r= sendrec(PCI_PROC_NR, &m);
+       r= sendrec(pci_procnr, &m);
        if (r != 0)
                panic("pci", "pci_slot_name: can't talk to PCI", r);
 
index de7eae8734ede6e6bf8df44511baa5702d2a3da1..9b2e78d7e71ae91475a65d07f46571243dc0d007 100755 (executable)
@@ -19,7 +19,6 @@ PROGRAMS=     ../kernel/kernel \
        ../drivers/tty/tty \
        ../drivers/memory/memory \
        ../drivers/log/log \
-       ../drivers/pci/pci \
        ../servers/init/init
 
 usage: