]> Zhao Yanbai Git Server - minix.git/commitdiff
Create a ramdisk using 'ramdisk'.
authorBen Gras <ben@minix3.org>
Mon, 13 Mar 2006 14:41:54 +0000 (14:41 +0000)
committerBen Gras <ben@minix3.org>
Mon, 13 Mar 2006 14:41:54 +0000 (14:41 +0000)
commands/simple/Makefile
commands/simple/ramdisk.c [new file with mode: 0644]

index 1239f1de21566879f3aa0f2bfd887f2dc739ff7d..a1649d6ddaed1a1113864c5f4ad0ca7ff7c34795 100755 (executable)
@@ -147,6 +147,7 @@ ALL = \
        proto \
        pwd \
        pwdauth \
+       ramdisk \
        rarpd \
        rcp \
        rawspeed \
@@ -643,6 +644,10 @@ pwdauth:   pwdauth.c
        $(CCLD) -o $@ $?
        @install -S 4kw $@
 
+ramdisk:       ramdisk.c
+       $(CCLD) -o $@ ramdisk.c
+       @install -S 4kw $@
+
 rarpd: rarpd.c
        $(CCLD) -o $@ rarpd.c
        @install -S 4kw $@
@@ -1029,6 +1034,7 @@ install:  \
        /usr/bin/proto \
        /usr/bin/pwd \
        /usr/lib/pwdauth \
+       /usr/bin/ramdisk \
        /usr/bin/rarpd \
        /usr/bin/rcp \
        /usr/bin/rawspeed \
@@ -1472,6 +1478,9 @@ install:  \
 /usr/lib/pwdauth:      pwdauth
        install -cs -o root -m 4755 $? $@
 
+/usr/bin/ramdisk:      ramdisk
+       install -cs -o bin $? $@
+
 /usr/bin/rarpd:        rarpd
        install -cs -o bin $? $@
 
diff --git a/commands/simple/ramdisk.c b/commands/simple/ramdisk.c
new file mode 100644 (file)
index 0000000..3210f32
--- /dev/null
@@ -0,0 +1,38 @@
+
+#include <minix/paths.h>
+
+#include <sys/ioc_memory.h>
+#include <stdio.h>
+#include <fcntl.h>
+#include <stdlib.h>
+
+int
+main(int argc, char *argv[])
+{
+       int fd;
+       signed long size;
+       if((fd=open(_PATH_RAMDISK, O_RDONLY)) < 0) {
+               perror(_PATH_RAMDISK);
+               return 1;
+       }
+
+       if(argc != 2) {
+               fprintf(stderr, "usage: %s <size in bytes>\n", argv[0]);
+               return 1;
+       }
+
+       size = atol(argv[1]);
+
+       if(size <= 0) {
+               fprintf(stderr, "size should be positive.\n");
+               return 1;
+       }
+
+       if(ioctl(fd, MIOCRAMSIZE, &size) < 0) {
+               perror("MIOCRAMSIZE");
+               return 1;
+       }
+
+       return 0;
+}
+