Index: head/sys/boot/zfs/zfstest.c =================================================================== --- head/sys/boot/zfs/zfstest.c (revision 225607) +++ head/sys/boot/zfs/zfstest.c (nonexistent) @@ -1,144 +0,0 @@ -/*- - * Copyright (c) 2010 Doug Rabson - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ -/* $FreeBSD$ */ -/* - * Compile with 'cc -I. -I../../cddl/boot/zfs zfstest.c -o zfstest' - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#define NBBY 8 - -void -pager_output(const char *line) -{ - fprintf(stderr, "%s", line); -} - -#include "zfsimpl.c" - -static int -vdev_read(vdev_t *vdev, void *priv, off_t off, void *buf, size_t bytes) -{ - int fd = *(int *) priv; - - if (pread(fd, buf, bytes, off) != bytes) - return (-1); - return (0); -} - -static int -zfs_read(spa_t *spa, dnode_phys_t *dn, void *buf, size_t size, off_t off) -{ - const znode_phys_t *zp = (const znode_phys_t *) dn->dn_bonus; - size_t n; - int rc; - - n = size; - if (off + n > zp->zp_size) - n = zp->zp_size - off; - - rc = dnode_read(spa, dn, off, buf, n); - if (rc) - return (-rc); - - return (n); -} - -int -main(int argc, char** argv) -{ - char buf[512]; - int fd[100]; - struct stat sb; - dnode_phys_t dn; - spa_t *spa; - int i, n, off; - - zfs_init(); - if (argc == 1) { - static char *av[] = { - "zfstest", "COPYRIGHT", - "/dev/da0p2", "/dev/da1p2", "/dev/da2p2", - NULL, - }; - argc = 5; - argv = av; - } - for (i = 2; i < argc; i++) { - fd[i] = open(argv[i], O_RDONLY); - if (fd[i] < 0) - continue; - if (vdev_probe(vdev_read, &fd[i], NULL) != 0) - close(fd[i]); - } - spa_all_status(); - - spa = STAILQ_FIRST(&zfs_pools); - if (spa == NULL) { - fprintf(stderr, "no pools\n"); - exit(1); - } - - if (zfs_mount_pool(spa)) { - fprintf(stderr, "can't mount pool\n"); - exit(1); - } - - if (zfs_lookup(spa, argv[1], &dn)) { - fprintf(stderr, "can't lookup\n"); - exit(1); - } - - if (zfs_dnode_stat(spa, &dn, &sb)) { - fprintf(stderr, "can't stat\n"); - exit(1); - } - - - off = 0; - do { - n = zfs_read(spa, &dn, buf, 512, off); - if (n < 0) { - fprintf(stderr, "zfs_read failed\n"); - exit(1); - } - write(1, buf, n); - off += n; - } while (off < sb.st_size); - - return (0); -} Property changes on: head/sys/boot/zfs/zfstest.c ___________________________________________________________________ Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:keywords ## -1 +0,0 ## -FreeBSD=%H \ No newline at end of property Index: head/tools/tools/zfsboottest/Makefile =================================================================== --- head/tools/tools/zfsboottest/Makefile (nonexistent) +++ head/tools/tools/zfsboottest/Makefile (revision 225608) @@ -0,0 +1,23 @@ +# $FreeBSD$ + +.PATH: ${.CURDIR}/../../../sys/boot/zfs ${.CURDIR}/../../../sys/cddl/boot/zfs + +PROG= zfsboottest +NO_MAN= + +CFLAGS= -O1 \ + -I${.CURDIR}/../../../sys/boot/zfs \ + -I${.CURDIR}/../../../sys/cddl/boot/zfs \ + -I. \ + -fdiagnostics-show-option \ + -W -Wextra -Wno-sign-compare -Wno-unused-parameter \ + -Werror + +.if ${MACHINE_CPUARCH} == "amd64" +beforedepend zfsboottest.o: machine +CLEANFILES+= machine +machine: + ln -sf ${.CURDIR}/../../../sys/i386/include machine +.endif + +.include Property changes on: head/tools/tools/zfsboottest/Makefile ___________________________________________________________________ Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/tools/tools/zfsboottest/zfsboottest.c =================================================================== --- head/tools/tools/zfsboottest/zfsboottest.c (nonexistent) +++ head/tools/tools/zfsboottest/zfsboottest.c (revision 225608) @@ -0,0 +1,144 @@ +/*- + * Copyright (c) 2010 Doug Rabson + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ +/* $FreeBSD$ */ +/* + * Compile with 'cc -I. -I../../cddl/boot/zfs zfstest.c -o zfstest' + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define NBBY 8 + +void +pager_output(const char *line) +{ + fprintf(stderr, "%s", line); +} + +#include "zfsimpl.c" + +static int +vdev_read(vdev_t *vdev, void *priv, off_t off, void *buf, size_t bytes) +{ + int fd = *(int *) priv; + + if (pread(fd, buf, bytes, off) != bytes) + return (-1); + return (0); +} + +static int +zfs_read(spa_t *spa, dnode_phys_t *dn, void *buf, size_t size, off_t off) +{ + const znode_phys_t *zp = (const znode_phys_t *) dn->dn_bonus; + size_t n; + int rc; + + n = size; + if (off + n > zp->zp_size) + n = zp->zp_size - off; + + rc = dnode_read(spa, dn, off, buf, n); + if (rc) + return (-rc); + + return (n); +} + +int +main(int argc, char** argv) +{ + char buf[512]; + int fd[100]; + struct stat sb; + dnode_phys_t dn; + spa_t *spa; + int i, n, off; + + zfs_init(); + if (argc == 1) { + static char *av[] = { + "zfstest", "COPYRIGHT", + "/dev/da0p2", "/dev/da1p2", "/dev/da2p2", + NULL, + }; + argc = 5; + argv = av; + } + for (i = 2; i < argc; i++) { + fd[i] = open(argv[i], O_RDONLY); + if (fd[i] < 0) + continue; + if (vdev_probe(vdev_read, &fd[i], NULL) != 0) + close(fd[i]); + } + spa_all_status(); + + spa = STAILQ_FIRST(&zfs_pools); + if (spa == NULL) { + fprintf(stderr, "no pools\n"); + exit(1); + } + + if (zfs_mount_pool(spa)) { + fprintf(stderr, "can't mount pool\n"); + exit(1); + } + + if (zfs_lookup(spa, argv[1], &dn)) { + fprintf(stderr, "can't lookup\n"); + exit(1); + } + + if (zfs_dnode_stat(spa, &dn, &sb)) { + fprintf(stderr, "can't stat\n"); + exit(1); + } + + + off = 0; + do { + n = zfs_read(spa, &dn, buf, 512, off); + if (n < 0) { + fprintf(stderr, "zfs_read failed\n"); + exit(1); + } + write(1, buf, n); + off += n; + } while (off < sb.st_size); + + return (0); +} Property changes on: head/tools/tools/zfsboottest/zfsboottest.c ___________________________________________________________________ Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property