diff options
| author | landley <landley@69ca8d6d-28ef-0310-b511-8ec308f3f277> | 2006-03-14 02:40:51 +0000 |
|---|---|---|
| committer | landley <landley@69ca8d6d-28ef-0310-b511-8ec308f3f277> | 2006-03-14 02:40:51 +0000 |
| commit | 651d1d823f736cf4e8e44426446d7b4273a5359b (patch) | |
| tree | 19fea5141691cfadfdb2394d6d4c948609153488 | |
| parent | 1120b2c8f1d0ac89ffca7b162653e9f030ed20ed (diff) | |
| download | busybox-w32-651d1d823f736cf4e8e44426446d7b4273a5359b.tar.gz busybox-w32-651d1d823f736cf4e8e44426446d7b4273a5359b.tar.bz2 busybox-w32-651d1d823f736cf4e8e44426446d7b4273a5359b.zip | |
Tito unified fdflush and freeramdisk. I tweaked the result a bit.
git-svn-id: svn://busybox.net/trunk/busybox@14536 69ca8d6d-28ef-0310-b511-8ec308f3f277
| -rw-r--r-- | include/applets.h | 2 | ||||
| -rw-r--r-- | util-linux/Makefile.in | 2 | ||||
| -rw-r--r-- | util-linux/fdflush.c | 54 | ||||
| -rw-r--r-- | util-linux/freeramdisk.c | 49 |
4 files changed, 11 insertions, 96 deletions
diff --git a/include/applets.h b/include/applets.h index bfdfe1147..7a1b17fff 100644 --- a/include/applets.h +++ b/include/applets.h | |||
| @@ -106,7 +106,7 @@ USE_EXPR(APPLET(expr, expr_main, _BB_DIR_USR_BIN, _BB_SUID_NEVER)) | |||
| 106 | USE_FAKEIDENTD(APPLET(fakeidentd, fakeidentd_main, _BB_DIR_USR_SBIN, _BB_SUID_NEVER)) | 106 | USE_FAKEIDENTD(APPLET(fakeidentd, fakeidentd_main, _BB_DIR_USR_SBIN, _BB_SUID_NEVER)) |
| 107 | USE_FALSE(APPLET(false, false_main, _BB_DIR_BIN, _BB_SUID_NEVER)) | 107 | USE_FALSE(APPLET(false, false_main, _BB_DIR_BIN, _BB_SUID_NEVER)) |
| 108 | USE_FBSET(APPLET(fbset, fbset_main, _BB_DIR_USR_SBIN, _BB_SUID_NEVER)) | 108 | USE_FBSET(APPLET(fbset, fbset_main, _BB_DIR_USR_SBIN, _BB_SUID_NEVER)) |
| 109 | USE_FDFLUSH(APPLET(fdflush, fdflush_main, _BB_DIR_BIN, _BB_SUID_NEVER)) | 109 | USE_FDFLUSH(APPLET(fdflush, freeramdisk_main, _BB_DIR_BIN, _BB_SUID_NEVER)) |
| 110 | USE_FDFORMAT(APPLET(fdformat, fdformat_main, _BB_DIR_USR_BIN, _BB_SUID_NEVER)) | 110 | USE_FDFORMAT(APPLET(fdformat, fdformat_main, _BB_DIR_USR_BIN, _BB_SUID_NEVER)) |
| 111 | USE_FDISK(APPLET(fdisk, fdisk_main, _BB_DIR_SBIN, _BB_SUID_NEVER)) | 111 | USE_FDISK(APPLET(fdisk, fdisk_main, _BB_DIR_SBIN, _BB_SUID_NEVER)) |
| 112 | USE_FEATURE_GREP_FGREP_ALIAS(APPLET_NOUSAGE("fgrep", grep_main, _BB_DIR_BIN, _BB_SUID_NEVER)) | 112 | USE_FEATURE_GREP_FGREP_ALIAS(APPLET_NOUSAGE("fgrep", grep_main, _BB_DIR_BIN, _BB_SUID_NEVER)) |
diff --git a/util-linux/Makefile.in b/util-linux/Makefile.in index f6a50b7f7..522ae2ffb 100644 --- a/util-linux/Makefile.in +++ b/util-linux/Makefile.in | |||
| @@ -13,7 +13,7 @@ srcdir=$(top_srcdir)/util-linux | |||
| 13 | UTILLINUX-y:= | 13 | UTILLINUX-y:= |
| 14 | UTILLINUX-$(CONFIG_DMESG) +=dmesg.o | 14 | UTILLINUX-$(CONFIG_DMESG) +=dmesg.o |
| 15 | UTILLINUX-$(CONFIG_FBSET) +=fbset.o | 15 | UTILLINUX-$(CONFIG_FBSET) +=fbset.o |
| 16 | UTILLINUX-$(CONFIG_FDFLUSH) +=fdflush.o | 16 | UTILLINUX-$(CONFIG_FDFLUSH) +=freeramdisk.o |
| 17 | UTILLINUX-$(CONFIG_FDFORMAT) +=fdformat.o | 17 | UTILLINUX-$(CONFIG_FDFORMAT) +=fdformat.o |
| 18 | UTILLINUX-$(CONFIG_FDISK) +=fdisk.o | 18 | UTILLINUX-$(CONFIG_FDISK) +=fdisk.o |
| 19 | UTILLINUX-$(CONFIG_FREERAMDISK) +=freeramdisk.o | 19 | UTILLINUX-$(CONFIG_FREERAMDISK) +=freeramdisk.o |
diff --git a/util-linux/fdflush.c b/util-linux/fdflush.c deleted file mode 100644 index 79c8f454f..000000000 --- a/util-linux/fdflush.c +++ /dev/null | |||
| @@ -1,54 +0,0 @@ | |||
| 1 | /* vi: set sw=4 ts=4: */ | ||
| 2 | /* | ||
| 3 | * Mini fdflush implementation for busybox | ||
| 4 | * | ||
| 5 | * Copyright (C) 1995, 1996 by Bruce Perens <bruce@perens.com>. | ||
| 6 | * Copyright (C) 2003 by Erik Andersen <andersen@codeoet.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 <sys/ioctl.h> | ||
| 26 | #include <fcntl.h> | ||
| 27 | #include <stdlib.h> | ||
| 28 | #include <unistd.h> | ||
| 29 | #include "busybox.h" | ||
| 30 | |||
| 31 | /* From <linux/fd.h> */ | ||
| 32 | #define FDFLUSH _IO(2,0x4b) | ||
| 33 | |||
| 34 | int fdflush_main(int argc, char **argv) | ||
| 35 | { | ||
| 36 | int fd, result; | ||
| 37 | |||
| 38 | if (argc != 2) | ||
| 39 | bb_show_usage(); | ||
| 40 | |||
| 41 | fd = bb_xopen(argv[1], 0); | ||
| 42 | |||
| 43 | result = ioctl(fd, FDFLUSH, 0); | ||
| 44 | |||
| 45 | if (ENABLE_FEATURE_CLEAN_UP) close(fd); | ||
| 46 | |||
| 47 | if (result) { | ||
| 48 | bb_perror_nomsg_and_die(); | ||
| 49 | } | ||
| 50 | |||
| 51 | /* Don't bother closing. Exit does | ||
| 52 | * that, so we can save a few bytes */ | ||
| 53 | return EXIT_SUCCESS; | ||
| 54 | } | ||
diff --git a/util-linux/freeramdisk.c b/util-linux/freeramdisk.c index cfea35bea..b5449750a 100644 --- a/util-linux/freeramdisk.c +++ b/util-linux/freeramdisk.c | |||
| @@ -1,24 +1,12 @@ | |||
| 1 | /* vi: set sw=4 ts=4: */ | 1 | /* vi: set sw=4 ts=4: */ |
| 2 | /* | 2 | /* |
| 3 | * freeramdisk implementation for busybox | 3 | * freeramdisk and fdflush implementations for busybox |
| 4 | * | 4 | * |
| 5 | * Copyright (C) 2000 and written by Emanuele Caratti <wiz@iol.it> | 5 | * Copyright (C) 2000 and written by Emanuele Caratti <wiz@iol.it> |
| 6 | * Adjusted a bit by Erik Andersen <andersen@codepoet.org> | 6 | * Adjusted a bit by Erik Andersen <andersen@codepoet.org> |
| 7 | * Unified with fdflush by Tito Ragusa <farmatito@tiscali.it> | ||
| 7 | * | 8 | * |
| 8 | * This program is free software; you can redistribute it and/or modify | 9 | * Licensed under GPLv2 or later, see file LICENSE in this tarball for details. |
| 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 | */ | 10 | */ |
| 23 | 11 | ||
| 24 | #include <stdio.h> | 12 | #include <stdio.h> |
| @@ -30,40 +18,21 @@ | |||
| 30 | #include <unistd.h> | 18 | #include <unistd.h> |
| 31 | #include "busybox.h" | 19 | #include "busybox.h" |
| 32 | 20 | ||
| 33 | 21 | extern int freeramdisk_main(int argc, char **argv) | |
| 34 | /* From linux/fs.h */ | ||
| 35 | #define BLKFLSBUF _IO(0x12,97) /* flush buffer cache */ | ||
| 36 | |||
| 37 | extern int | ||
| 38 | freeramdisk_main(int argc, char **argv) | ||
| 39 | { | 22 | { |
| 40 | int result; | 23 | int result; |
| 41 | int fd; | 24 | int fd; |
| 42 | 25 | ||
| 43 | if (argc != 2) { | 26 | if (argc != 2) bb_show_usage(); |
| 44 | bb_show_usage(); | ||
| 45 | } | ||
| 46 | 27 | ||
| 47 | fd = bb_xopen(argv[1], O_RDWR); | 28 | fd = bb_xopen(argv[1], O_RDWR); |
| 48 | 29 | ||
| 49 | result = ioctl(fd, BLKFLSBUF); | 30 | // Act like freeramdisk, fdflush, or both depending on configuration. |
| 31 | result = ioctl(fd, (bb_applet_name[1]=='r' && ENABLE_FREERAMDISK) | ||
| 32 | || !ENABLE_FDFLUSH ? _IO(0x12,97) : _IO(2,0x4b)); | ||
| 50 | 33 | ||
| 51 | if (ENABLE_FEATURE_CLEAN_UP) close(fd); | 34 | if (ENABLE_FEATURE_CLEAN_UP) close(fd); |
| 52 | 35 | ||
| 53 | if (result < 0) { | 36 | if (result) bb_perror_msg_and_die("%s", argv[1]); |
| 54 | bb_perror_msg_and_die("failed ioctl on %s", argv[1]); | ||
| 55 | } | ||
| 56 | |||
| 57 | /* Don't bother closing. Exit does | ||
| 58 | * that, so we can save a few bytes */ | ||
| 59 | return EXIT_SUCCESS; | 37 | return EXIT_SUCCESS; |
| 60 | } | 38 | } |
| 61 | |||
| 62 | /* | ||
| 63 | Local Variables: | ||
| 64 | c-file-style: "linux" | ||
| 65 | c-basic-offset: 4 | ||
| 66 | tab-width: 4 | ||
| 67 | End: | ||
| 68 | */ | ||
| 69 | |||
