]> Zhao Yanbai Git Server - minix.git/commitdiff
Use assembler instead of C for the ramdisk. The assembler requires less
authorPhilip Homburg <philip@cs.vu.nl>
Wed, 15 Mar 2006 14:28:05 +0000 (14:28 +0000)
committerPhilip Homburg <philip@cs.vu.nl>
Wed, 15 Mar 2006 14:28:05 +0000 (14:28 +0000)
memory.

drivers/memory/Makefile
drivers/memory/imgrd_s.s [new file with mode: 0644]
drivers/memory/ramdisk/Makefile

index 3b4bfb06398cad0ba0f37b593b00c5472a8db267..e5d8ed687d6d1acfd6f6823bec826b113f1614e8 100644 (file)
@@ -16,7 +16,13 @@ CFLAGS = -I$i
 LDFLAGS = -i
 LIBS = -lsys -lsysutil
 
-OBJ = memory.o imgrd.o
+# imgrd_s.s is the ACK assembler version of the ramdisk. For more portability,
+# use the C version imgrd.c. However, the C compiler takes too much memory
+# compiling imgrd.c.
+IMGRD=imgrd_s.o
+#IMGRD=imgrd.c
+
+OBJ = memory.o $(IMGRD)
 LIBDRIVER = $d/libdriver/driver.o
 
 
@@ -28,13 +34,13 @@ $(DRIVER):  ramdisk_image $(OBJ) $(LIBDRIVER)
        install -S 8k $(DRIVER)
 
 imgrd.o:        ramdisk/image.c
+imgrd_s.o:      ramdisk/image.s
 
 $(LIBDRIVER): 
        cd $d/libdriver && $(MAKE) 
 
 ramdisk_image:
        cd ramdisk && make
-       binsizes big
 
 # install with other drivers
 install: /usr/sbin/$(DRIVER)
diff --git a/drivers/memory/imgrd_s.s b/drivers/memory/imgrd_s.s
new file mode 100644 (file)
index 0000000..08e4e03
--- /dev/null
@@ -0,0 +1,15 @@
+#
+.sect .text; .sect .rom; .sect .data
+
+! export symbols
+.define _imgrd, _imgrd_size
+
+.sect .data
+_imgrd:
+0:
+#include "ramdisk/image.s"
+1:
+
+! Use local labels to compute the size of _imgrd.
+_imgrd_size:
+       .data4  [1b] - [0b]
index c3344601494193925ac5d22f8dbb37546be3176a..815eae33c161ca195d38e38975d75f2ee705e665 100644 (file)
@@ -3,7 +3,7 @@
 PROGRAMS=at_wini bios_wini cdprobe dev2name floppy loadramdisk newroot \
        pci sh service sysenv
 
-all:   image.c
+all:   image.c image.s
 
 clean:
        rm -f $(PROGRAMS) bintoc image image.c
@@ -11,6 +11,9 @@ clean:
 image.c:       bintoc image
        ./bintoc -o $@ image
 
+image.s:       image.c
+       sed < image.c > $@ 's/^/.data1 /;s/,$$//' || { rm -f $@; false; }
+
 # Note for cross compilation: this executable has to be compiled for the
 # host system
 bintoc:        bintoc.c