aboutsummaryrefslogtreecommitdiff
path: root/util-linux
diff options
context:
space:
mode:
authorerik <erik@69ca8d6d-28ef-0310-b511-8ec308f3f277>2000-03-04 22:23:27 +0000
committererik <erik@69ca8d6d-28ef-0310-b511-8ec308f3f277>2000-03-04 22:23:27 +0000
commitaf566fe37fcd0c762da83590a354b2a597863766 (patch)
tree9c703636fa112255e7e73db890657d3598b17f02 /util-linux
parentf042f3c095e99887a076427cc04de54f90fe2c29 (diff)
downloadbusybox-w32-af566fe37fcd0c762da83590a354b2a597863766.tar.gz
busybox-w32-af566fe37fcd0c762da83590a354b2a597863766.tar.bz2
busybox-w32-af566fe37fcd0c762da83590a354b2a597863766.zip
Add in freeramdisk.c, which (duh) frees ramdisks. If you have any
ramdisks lying about and want to free up the memory they have used, this baby is the answar you have been waiting for. -Erik git-svn-id: svn://busybox.net/trunk/busybox@387 69ca8d6d-28ef-0310-b511-8ec308f3f277
Diffstat (limited to 'util-linux')
-rw-r--r--util-linux/freeramdisk.c69
1 files changed, 69 insertions, 0 deletions
diff --git a/util-linux/freeramdisk.c b/util-linux/freeramdisk.c
new file mode 100644
index 000000000..426e13231
--- /dev/null
+++ b/util-linux/freeramdisk.c
@@ -0,0 +1,69 @@
1/* vi: set sw=4 ts=4: */
2/*
3 * freeramdisk implementation for busybox
4 *
5 * Copyright (C) 2000 and written by Emanuele Caratti <wiz@iol.it>
6 * Adjusted a bit by Erik Andersen <andersee@debian.org>
7 *
8 * This program is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License as published by
10 * the Free Software Foundation; either version 2 of the License, or
11 * (at your option) any later version.
12 *
13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 * General Public License for more details.
17 *
18 * You should have received a copy of the GNU General Public License
19 * along with this program; if not, write to the Free Software
20 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
21 *
22 */
23
24#include <stdio.h>
25#include <string.h>
26#include <sys/mount.h>
27#include <sys/types.h>
28#include <sys/stat.h>
29#include <fcntl.h>
30#include <sys/ioctl.h>
31#include <errno.h>
32#include "internal.h"
33
34
35static const char freeramdisk_usage[] =
36 "freeramdisk DEVICE\n\n"
37 "Frees all memory used by the specified ramdisk.\n";
38
39extern int
40freeramdisk_main(int argc, char **argv)
41{
42 char rname[256] = "/dev/ram";
43 int f;
44
45 if (argc >= 2 || ( argv[1] && *argv[1] == '-')) {
46 usage(freeramdisk_usage);
47 }
48
49 if (argc >1)
50 strcpy(rname, argv[1]);
51
52 if ((f = open(rname, O_RDWR)) == -1) {
53 fatalError( "freeramdisk: cannot open %s: %s", rname, strerror(errno));
54 }
55 if (ioctl(f, BLKFLSBUF) < 0) {
56 fatalError( "freeramdisk: failed ioctl on %s: %s", rname, strerror(errno));
57 }
58 close(f);
59 exit(TRUE);
60}
61
62/*
63Local Variables:
64c-file-style: "linux"
65c-basic-offset: 4
66tab-width: 4
67End:
68*/
69