1
2 #include <minix/paths.h>
3
4 #include <sys/ioctl.h>
5 #include <stdio.h>
6 #include <fcntl.h>
7 #include <stdlib.h>
8
9 int
main(int argc,char * argv[])10 main(int argc, char *argv[])
11 {
12 int fd;
13 signed long size;
14 char *d;
15
16 if(argc < 2 || argc > 3) {
17 fprintf(stderr, "usage: %s <size in kB> [device]\n",
18 argv[0]);
19 return 1;
20 }
21
22 d = argc == 2 ? _PATH_RAMDISK : argv[2];
23 if((fd=open(d, O_RDONLY)) < 0) {
24 perror(d);
25 return 1;
26 }
27
28 #define KFACTOR 1024
29 size = atol(argv[1])*KFACTOR;
30
31 if(size < 0) {
32 fprintf(stderr, "size should be non-negative.\n");
33 return 1;
34 }
35
36 if(ioctl(fd, MIOCRAMSIZE, &size) < 0) {
37 perror("MIOCRAMSIZE");
38 return 1;
39 }
40
41 fprintf(stdout, "size on %s set to %ldkB\n", d, size/KFACTOR);
42
43 return 0;
44 }
45
46