* include/applets.h (CONFIG_LOSETUP): New. * include/usage.h (losetup_trivial_usage, losetup_full_usage): New. * util-linux/Makefile: Add losetup.o. * util-linux/config.in: Add losetup prompt. * util-linux/losetup.c: New.
No binary (build failed)
—
(log yok)
| @@ -269,6 +269,9 @@ | |
| #ifdef CONFIG_LOGREAD | |
| APPLET(logread, logread_main, _BB_DIR_SBIN) | |
| #endif | |
| + | #ifdef CONFIG_LOSETUP |
| + | APPLET(losetup, losetup_main, _BB_DIR_SBIN) |
| + | #endif |
| #ifdef CONFIG_LS | |
| APPLET(ls, ls_main, _BB_DIR_BIN) | |
| #endif | |
| @@ -989,6 +989,15 @@ | |
| #define logread_full_usage \ | |
| "Shows the messages from syslogd (using circular buffer)." | |
| + | #define losetup_trivial_usage \ |
| + | "[OPTION]... LOOPDEVICE FILE\n" \ |
| + | "or: losetup [OPTION]... -d LOOPDEVICE" |
| + | #define losetup_full_usage \ |
| + | "Associate LOOPDEVICE with FILE.\n\n" \ |
| + | "Options:\n" \ |
| + | "\t-d\t\tDisassociate LOOPDEVICE.\n" \ |
| + | "\t-o OFFSET\tStart OFFSET bytes into FILE.\n" |
| + | |
| #ifdef CONFIG_FEATURE_LS_TIMESTAMPS | |
| #define USAGE_LS_TIMESTAMPS(a) a | |
| #else | |
| @@ -31,6 +31,7 @@ obj-$(CONFIG_FREERAMDISK) += freeramdisk.o | |
| obj-$(CONFIG_FSCK_MINIX) += fsck_minix.o | |
| obj-$(CONFIG_GETOPT) += getopt.o | |
| obj-$(CONFIG_HEXDUMP) += hexdump.o | |
| + | obj-$(CONFIG_LOSETUP) += losetup.o |
| obj-$(CONFIG_MKFS_MINIX) += mkfs_minix.o | |
| obj-$(CONFIG_MKSWAP) += mkswap.o | |
| obj-$(CONFIG_MORE) += more.o | |
| @@ -23,6 +23,7 @@ if [ "$CONFIG_FSCK_MINIX" = "y" -o "$CONFIG_MKFS_MINIX" = "y" ]; then | |
| fi | |
| bool 'getopt' CONFIG_GETOPT | |
| bool 'hexdump' CONFIG_HEXDUMP | |
| + | bool 'losetup' CONFIG_LOSETUP |
| bool 'mkswap' CONFIG_MKSWAP | |
| bool 'more' CONFIG_MORE | |
| if [ "$CONFIG_MORE" = "y" ]; then | |
| @@ -0,0 +1,58 @@ | |
| + | /* |
| + | * Mini losetup implementation for busybox |
| + | * |
| + | * Copyright (C) 2002 Matt Kraai. |
| + | * |
| + | * This program is free software; you can redistribute it and/or modify |
| + | * it under the terms of the GNU General Public License as published by |
| + | * the Free Software Foundation; either version 2 of the License, or |
| + | * (at your option) any later version. |
| + | * |
| + | * This program is distributed in the hope that it will be useful, |
| + | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| + | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
| + | * General Public License for more details. |
| + | * |
| + | * You should have received a copy of the GNU General Public License |
| + | * along with this program; if not, write to the Free Software |
| + | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
| + | * |
| + | */ |
| + | |
| + | #include <getopt.h> |
| + | #include <stdlib.h> |
| + | |
| + | #include "busybox.h" |
| + | |
| + | int |
| + | losetup_main (int argc, char **argv) |
| + | { |
| + | int delete = 0; |
| + | int offset = 0; |
| + | int opt; |
| + | |
| + | while ((opt = getopt (argc, argv, "do:")) != -1) |
| + | switch (opt) |
| + | { |
| + | case 'd': |
| + | delete = 1; |
| + | break; |
| + | |
| + | case 'o': |
| + | offset = parse_number (optarg, NULL); |
| + | break; |
| + | |
| + | default: |
| + | show_usage (); |
| + | } |
| + | |
| + | if ((delete && (offset || optind + 1 != argc)) |
| + | || (!delete && optind + 2 != argc)) |
| + | show_usage (); |
| + | |
| + | if (delete) |
| + | return del_loop (argv[optind]) ? EXIT_SUCCESS : EXIT_FAILURE; |
| + | else |
| + | return set_loop (argv[optind], argv[optind + 1], offset, &opt) |
| + | ? EXIT_FAILURE : EXIT_SUCCESS; |
| + | } |