diff options
author | Bjørn Mork <bjorn@mork.no> | 2015-05-15 10:20:47 +0200 |
---|---|---|
committer | Bjørn Mork <bjorn@mork.no> | 2015-05-15 10:20:47 +0200 |
commit | 73b16af8feec390afbabd9356d6e5e83c0390838 (patch) | |
tree | 3730020ba2f9caeb9d7815a975af51830b51ce11 /util-linux/freeramdisk.c |
busybox: imported from http://www.busybox.net/downloads/busybox-1.13.3.tar.bz2busybox-1.13.3
Signed-off-by: Bjørn Mork <bjorn@mork.no>
Diffstat (limited to 'util-linux/freeramdisk.c')
-rw-r--r-- | util-linux/freeramdisk.c | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/util-linux/freeramdisk.c b/util-linux/freeramdisk.c new file mode 100644 index 0000000..bde6afc --- /dev/null +++ b/util-linux/freeramdisk.c @@ -0,0 +1,33 @@ +/* vi: set sw=4 ts=4: */ +/* + * freeramdisk and fdflush implementations for busybox + * + * Copyright (C) 2000 and written by Emanuele Caratti <wiz@iol.it> + * Adjusted a bit by Erik Andersen <andersen@codepoet.org> + * Unified with fdflush by Tito Ragusa <farmatito@tiscali.it> + * + * Licensed under GPLv2, see file LICENSE in this tarball for details. + */ + +#include "libbb.h" + +/* From <linux/fd.h> */ +#define FDFLUSH _IO(2,0x4b) + +int freeramdisk_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; +int freeramdisk_main(int argc, char **argv) +{ + int fd; + + if (argc != 2) bb_show_usage(); + + fd = xopen(argv[1], O_RDWR); + + // Act like freeramdisk, fdflush, or both depending on configuration. + ioctl_or_perror_and_die(fd, (ENABLE_FREERAMDISK && applet_name[1]=='r') + || !ENABLE_FDFLUSH ? BLKFLSBUF : FDFLUSH, NULL, "%s", argv[1]); + + if (ENABLE_FEATURE_CLEAN_UP) close(fd); + + return EXIT_SUCCESS; +} |