11.9Spooka/* $NetBSD: rump_ext2fs.c,v 1.9 2010/01/12 18:43:37 pooka Exp $ */ 21.1Spooka 31.1Spooka/* 41.3Spooka * Copyright (c) 2008 Antti Kantee. All Rights Reserved. 51.1Spooka * 61.1Spooka * Redistribution and use in source and binary forms, with or without 71.1Spooka * modification, are permitted provided that the following conditions 81.1Spooka * are met: 91.1Spooka * 1. Redistributions of source code must retain the above copyright 101.1Spooka * notice, this list of conditions and the following disclaimer. 111.1Spooka * 2. Redistributions in binary form must reproduce the above copyright 121.1Spooka * notice, this list of conditions and the following disclaimer in the 131.1Spooka * documentation and/or other materials provided with the distribution. 141.1Spooka * 151.1Spooka * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS 161.1Spooka * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 171.1Spooka * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 181.1Spooka * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 191.1Spooka * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 201.1Spooka * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 211.1Spooka * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 221.1Spooka * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 231.1Spooka * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 241.1Spooka * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 251.1Spooka * SUCH DAMAGE. 261.1Spooka */ 271.1Spooka 281.1Spooka#include <sys/types.h> 291.1Spooka#include <sys/mount.h> 301.1Spooka 311.1Spooka#include <ufs/ufs/ufsmount.h> 321.1Spooka 331.1Spooka#include <err.h> 341.1Spooka#include <puffs.h> 351.1Spooka#include <stdlib.h> 361.1Spooka#include <unistd.h> 371.1Spooka 381.1Spooka#include <rump/p2k.h> 391.6Spooka#include <rump/ukfs.h> 401.1Spooka 411.2Spooka#include "mount_ext2fs.h" 421.1Spooka 431.1Spookaint 441.1Spookamain(int argc, char *argv[]) 451.1Spooka{ 461.1Spooka struct ufs_args args; 471.7Spooka char canon_dev[UKFS_DEVICE_MAXPATHLEN], canon_dir[MAXPATHLEN]; 481.7Spooka struct ukfs_part *part; 491.7Spooka int mntflags; 501.2Spooka int rv; 511.1Spooka 521.1Spooka setprogname(argv[0]); 531.9Spooka puffs_unmountonsignal(SIGINT, true); 541.9Spooka puffs_unmountonsignal(SIGTERM, true); 551.6Spooka 561.7Spooka UKFS_DEVICE_ARGVPROBE(&part); 571.2Spooka mount_ext2fs_parseargs(argc, argv, &args, &mntflags, 581.2Spooka canon_dev, canon_dir); 591.6Spooka rv = p2k_run_diskfs(MOUNT_EXT2FS, canon_dev, part, canon_dir, mntflags, 601.2Spooka &args, sizeof(args), 0); 611.8Spooka ukfs_part_release(part); 621.1Spooka if (rv) 631.1Spooka err(1, "mount"); 641.1Spooka 651.1Spooka return 0; 661.1Spooka} 67