1433d6423SLionel Sambuc
2433d6423SLionel Sambuc #include <minix/paths.h>
3433d6423SLionel Sambuc
4d0055759SDavid van Moolenbroek #include <sys/ioctl.h>
5433d6423SLionel Sambuc #include <stdio.h>
6433d6423SLionel Sambuc #include <fcntl.h>
7433d6423SLionel Sambuc #include <stdlib.h>
8433d6423SLionel Sambuc
9433d6423SLionel Sambuc int
main(int argc,char * argv[])10433d6423SLionel Sambuc main(int argc, char *argv[])
11433d6423SLionel Sambuc {
12433d6423SLionel Sambuc int fd;
13433d6423SLionel Sambuc signed long size;
14433d6423SLionel Sambuc char *d;
15433d6423SLionel Sambuc
16433d6423SLionel Sambuc if(argc < 2 || argc > 3) {
17433d6423SLionel Sambuc fprintf(stderr, "usage: %s <size in kB> [device]\n",
18433d6423SLionel Sambuc argv[0]);
19433d6423SLionel Sambuc return 1;
20433d6423SLionel Sambuc }
21433d6423SLionel Sambuc
22433d6423SLionel Sambuc d = argc == 2 ? _PATH_RAMDISK : argv[2];
23433d6423SLionel Sambuc if((fd=open(d, O_RDONLY)) < 0) {
24433d6423SLionel Sambuc perror(d);
25433d6423SLionel Sambuc return 1;
26433d6423SLionel Sambuc }
27433d6423SLionel Sambuc
28433d6423SLionel Sambuc #define KFACTOR 1024
29433d6423SLionel Sambuc size = atol(argv[1])*KFACTOR;
30433d6423SLionel Sambuc
31433d6423SLionel Sambuc if(size < 0) {
32433d6423SLionel Sambuc fprintf(stderr, "size should be non-negative.\n");
33433d6423SLionel Sambuc return 1;
34433d6423SLionel Sambuc }
35433d6423SLionel Sambuc
36433d6423SLionel Sambuc if(ioctl(fd, MIOCRAMSIZE, &size) < 0) {
37433d6423SLionel Sambuc perror("MIOCRAMSIZE");
38433d6423SLionel Sambuc return 1;
39433d6423SLionel Sambuc }
40433d6423SLionel Sambuc
41*9dfdf6f7SJean-Baptiste Boric fprintf(stdout, "size on %s set to %ldkB\n", d, size/KFACTOR);
42433d6423SLionel Sambuc
43433d6423SLionel Sambuc return 0;
44433d6423SLionel Sambuc }
45433d6423SLionel Sambuc
46