rump_ext2fs.c revision 1.1
11.1Spooka/* $NetBSD: rump_ext2fs.c,v 1.1 2008/07/29 13:17:47 pooka Exp $ */ 21.1Spooka 31.1Spooka/* 41.1Spooka * Copyright (c) 2007 Antti Kantee. All Rights Reserved. 51.1Spooka * 61.1Spooka * Development of this software was supported by Google Summer of Code. 71.1Spooka * 81.1Spooka * Redistribution and use in source and binary forms, with or without 91.1Spooka * modification, are permitted provided that the following conditions 101.1Spooka * are met: 111.1Spooka * 1. Redistributions of source code must retain the above copyright 121.1Spooka * notice, this list of conditions and the following disclaimer. 131.1Spooka * 2. Redistributions in binary form must reproduce the above copyright 141.1Spooka * notice, this list of conditions and the following disclaimer in the 151.1Spooka * documentation and/or other materials provided with the distribution. 161.1Spooka * 171.1Spooka * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS 181.1Spooka * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 191.1Spooka * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 201.1Spooka * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 211.1Spooka * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 221.1Spooka * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 231.1Spooka * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 241.1Spooka * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 251.1Spooka * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 261.1Spooka * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 271.1Spooka * SUCH DAMAGE. 281.1Spooka */ 291.1Spooka 301.1Spooka#include <sys/types.h> 311.1Spooka#include <sys/mount.h> 321.1Spooka 331.1Spooka#include <ufs/ufs/ufsmount.h> 341.1Spooka 351.1Spooka#include <err.h> 361.1Spooka#include <puffs.h> 371.1Spooka#include <stdlib.h> 381.1Spooka#include <unistd.h> 391.1Spooka 401.1Spooka#include <rump/p2k.h> 411.1Spooka 421.1Spookastatic void 431.1Spookausage(void) 441.1Spooka{ 451.1Spooka 461.1Spooka errx(1, "usage: %s [-o opts] dev mountpath", getprogname()); 471.1Spooka} 481.1Spooka 491.1Spookaint 501.1Spookamain(int argc, char *argv[]) 511.1Spooka{ 521.1Spooka struct ufs_args args; 531.1Spooka mntoptparse_t mp; 541.1Spooka int mntflags, pflags; 551.1Spooka int rv, ch; 561.1Spooka 571.1Spooka setprogname(argv[0]); 581.1Spooka 591.1Spooka mntflags = pflags = 0; 601.1Spooka while ((ch = getopt(argc, argv, "o:")) != -1) { 611.1Spooka switch (ch) { 621.1Spooka case 'o': 631.1Spooka mp = getmntopts(optarg, puffsmopts, &mntflags, &pflags); 641.1Spooka if (mp == NULL) 651.1Spooka err(1, "getmntops"); 661.1Spooka freemntopts(mp); 671.1Spooka break; 681.1Spooka default: 691.1Spooka usage(); 701.1Spooka /* NOTREACHED */ 711.1Spooka } 721.1Spooka } 731.1Spooka argc -= optind; 741.1Spooka argv += optind; 751.1Spooka if (argc != 2) 761.1Spooka usage(); 771.1Spooka 781.1Spooka memset(&args, 0, sizeof(args)); 791.1Spooka args.fspec = argv[0]; 801.1Spooka 811.1Spooka rv = p2k_run_fs(MOUNT_EXT2FS, argv[0], argv[1], mntflags, 821.1Spooka &args, sizeof(args), pflags); 831.1Spooka if (rv) 841.1Spooka err(1, "mount"); 851.1Spooka 861.1Spooka return 0; 871.1Spooka} 88