1*63d1fd59SEnji Cooper /* $NetBSD: t_snapshot.c,v 1.4 2017/01/13 21:30:40 christos Exp $ */
257718be8SEnji Cooper
357718be8SEnji Cooper #include <sys/types.h>
457718be8SEnji Cooper #include <sys/mount.h>
557718be8SEnji Cooper
657718be8SEnji Cooper #include <rump/rump.h>
757718be8SEnji Cooper #include <rump/rump_syscalls.h>
857718be8SEnji Cooper
957718be8SEnji Cooper #include <fs/tmpfs/tmpfs_args.h>
1057718be8SEnji Cooper #include <msdosfs/msdosfsmount.h>
1157718be8SEnji Cooper
1257718be8SEnji Cooper #include <atf-c.h>
1357718be8SEnji Cooper #include <err.h>
1457718be8SEnji Cooper #include <fcntl.h>
1557718be8SEnji Cooper #include <stdio.h>
1657718be8SEnji Cooper #include <stdlib.h>
1757718be8SEnji Cooper #include <string.h>
1857718be8SEnji Cooper #include <unistd.h>
1957718be8SEnji Cooper
20*63d1fd59SEnji Cooper #include "h_macros.h"
2157718be8SEnji Cooper
2257718be8SEnji Cooper #define IMGNAME "msdosfs.img"
2357718be8SEnji Cooper #define NEWFS "newfs_msdos -C 5M " IMGNAME
2457718be8SEnji Cooper #define FSCK "fsck_msdos -fn"
2557718be8SEnji Cooper #define BAKNAME "/stor/snap"
2657718be8SEnji Cooper
2757718be8SEnji Cooper static void
mount_diskfs(const char * fspec,const char * path)2857718be8SEnji Cooper mount_diskfs(const char *fspec, const char *path)
2957718be8SEnji Cooper {
3057718be8SEnji Cooper struct msdosfs_args margs;
3157718be8SEnji Cooper
3257718be8SEnji Cooper memset(&margs, 0, sizeof(margs));
3357718be8SEnji Cooper margs.fspec = __UNCONST(fspec);
3457718be8SEnji Cooper margs.version = MSDOSFSMNT_VERSION;
3557718be8SEnji Cooper
3657718be8SEnji Cooper if (rump_sys_mount(MOUNT_MSDOS, path, 0, &margs, sizeof(margs)) == -1)
3757718be8SEnji Cooper err(1, "mount msdosfs %s", path);
3857718be8SEnji Cooper }
3957718be8SEnji Cooper
4057718be8SEnji Cooper static void
begin(void)4157718be8SEnji Cooper begin(void)
4257718be8SEnji Cooper {
4357718be8SEnji Cooper struct tmpfs_args targs = { .ta_version = TMPFS_ARGS_VERSION, };
4457718be8SEnji Cooper
4557718be8SEnji Cooper if (rump_sys_mkdir("/stor", 0777) == -1)
4657718be8SEnji Cooper atf_tc_fail_errno("mkdir /stor");
4757718be8SEnji Cooper if (rump_sys_mount(MOUNT_TMPFS, "/stor", 0, &targs,sizeof(targs)) == -1)
4857718be8SEnji Cooper atf_tc_fail_errno("mount storage");
4957718be8SEnji Cooper }
5057718be8SEnji Cooper
5157718be8SEnji Cooper #include "../common/snapshot.c"
52