8 |
* |
* |
9 |
* Licensed under GPLv2, see file LICENSE in this tarball for details. |
* Licensed under GPLv2, see file LICENSE in this tarball for details. |
10 |
*/ |
*/ |
11 |
|
#include <sys/mount.h> |
12 |
#include "libbb.h" |
#include "libbb.h" |
13 |
|
|
14 |
/* From <linux/fd.h> */ |
/* From <linux/fd.h> */ |
15 |
#define FDFLUSH _IO(2,0x4b) |
#define FDFLUSH _IO(2,0x4b) |
16 |
|
|
17 |
int freeramdisk_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; |
int freeramdisk_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; |
18 |
int freeramdisk_main(int argc, char **argv) |
int freeramdisk_main(int argc UNUSED_PARAM, char **argv) |
19 |
{ |
{ |
20 |
int fd; |
int fd; |
21 |
|
|
22 |
if (argc != 2) bb_show_usage(); |
fd = xopen(single_argv(argv), O_RDWR); |
|
|
|
|
fd = xopen(argv[1], O_RDWR); |
|
23 |
|
|
24 |
// Act like freeramdisk, fdflush, or both depending on configuration. |
// Act like freeramdisk, fdflush, or both depending on configuration. |
25 |
ioctl_or_perror_and_die(fd, (ENABLE_FREERAMDISK && applet_name[1]=='r') |
ioctl_or_perror_and_die(fd, (ENABLE_FREERAMDISK && applet_name[1] == 'r') |
26 |
|| !ENABLE_FDFLUSH ? BLKFLSBUF : FDFLUSH, NULL, "%s", argv[1]); |
|| !ENABLE_FDFLUSH ? BLKFLSBUF : FDFLUSH, NULL, "%s", argv[1]); |
27 |
|
|
28 |
if (ENABLE_FEATURE_CLEAN_UP) close(fd); |
if (ENABLE_FEATURE_CLEAN_UP) close(fd); |