aboutsummaryrefslogtreecommitdiff
path: root/include/os/freebsd/zfs/sys/zfs_ioctl_compat.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/os/freebsd/zfs/sys/zfs_ioctl_compat.h')
-rw-r--r--include/os/freebsd/zfs/sys/zfs_ioctl_compat.h173
1 files changed, 0 insertions, 173 deletions
diff --git a/include/os/freebsd/zfs/sys/zfs_ioctl_compat.h b/include/os/freebsd/zfs/sys/zfs_ioctl_compat.h
deleted file mode 100644
index 6c5c06548dba..000000000000
--- a/include/os/freebsd/zfs/sys/zfs_ioctl_compat.h
+++ /dev/null
@@ -1,173 +0,0 @@
-// SPDX-License-Identifier: CDDL-1.0
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or https://opensource.org/licenses/CDDL-1.0.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-/*
- * Copyright 2014 Xin Li <delphij@FreeBSD.org>. All rights reserved.
- * Copyright 2013 Martin Matuska <mm@FreeBSD.org>. All rights reserved.
- * Use is subject to license terms.
- */
-
-#ifndef _SYS_ZFS_IOCTL_COMPAT_H
-#define _SYS_ZFS_IOCTL_COMPAT_H
-
-#include <sys/cred.h>
-#include <sys/dmu.h>
-#include <sys/zio.h>
-#include <sys/dsl_deleg.h>
-#include <sys/zfs_ioctl.h>
-
-#ifdef _KERNEL
-#include <sys/nvpair.h>
-#endif /* _KERNEL */
-
-/*
- * Legacy ioctl support allows compatibility with pre-OpenZFS tools on
- * FreeBSD. The need for it will eventually pass (perhaps after FreeBSD
- * 12 is well out of support), at which point this code can be removed.
- * For now, downstream consumers may choose to disable this code by
- * removing the following define.
- */
-#define ZFS_LEGACY_SUPPORT
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
- * Backwards ioctl compatibility
- */
-
-/* ioctl versions for vfs.zfs.version.ioctl */
-#define ZFS_IOCVER_UNDEF -1
-#define ZFS_IOCVER_NONE 0
-#define ZFS_IOCVER_DEADMAN 1
-#define ZFS_IOCVER_LZC 2
-#define ZFS_IOCVER_ZCMD 3
-#define ZFS_IOCVER_EDBP 4
-#define ZFS_IOCVER_RESUME 5
-#define ZFS_IOCVER_INLANES 6
-#define ZFS_IOCVER_PAD 7
-#define ZFS_IOCVER_LEGACY ZFS_IOCVER_PAD
-#define ZFS_IOCVER_OZFS 15
-
-/* compatibility conversion flag */
-#define ZFS_CMD_COMPAT_NONE 0
-#define ZFS_CMD_COMPAT_V15 1
-#define ZFS_CMD_COMPAT_V28 2
-#define ZFS_CMD_COMPAT_DEADMAN 3
-#define ZFS_CMD_COMPAT_LZC 4
-#define ZFS_CMD_COMPAT_ZCMD 5
-#define ZFS_CMD_COMPAT_EDBP 6
-#define ZFS_CMD_COMPAT_RESUME 7
-#define ZFS_CMD_COMPAT_INLANES 8
-#define ZFS_CMD_COMPAT_LEGACY 9
-
-#define ZFS_IOC_COMPAT_PASS 254
-#define ZFS_IOC_COMPAT_FAIL 255
-
-#define ZFS_IOCREQ(ioreq) ((ioreq) & 0xff)
-
-typedef struct zfs_iocparm {
- uint32_t zfs_ioctl_version;
- uint64_t zfs_cmd;
- uint64_t zfs_cmd_size;
-} zfs_iocparm_t;
-
-
-#ifdef ZFS_LEGACY_SUPPORT
-#define LEGACY_MAXPATHLEN 1024
-#define LEGACY_MAXNAMELEN 256
-
-/*
- * Note: this struct must have the same layout in 32-bit and 64-bit, so
- * that 32-bit processes (like /sbin/zfs) can pass it to the 64-bit
- * kernel. Therefore, we add padding to it so that no "hidden" padding
- * is automatically added on 64-bit (but not on 32-bit).
- */
-typedef struct zfs_cmd_legacy {
- char zc_name[LEGACY_MAXPATHLEN]; /* pool|dataset name */
- uint64_t zc_nvlist_src; /* really (char *) */
- uint64_t zc_nvlist_src_size;
- uint64_t zc_nvlist_dst; /* really (char *) */
- uint64_t zc_nvlist_dst_size;
- boolean_t zc_nvlist_dst_filled; /* put an nvlist in dst? */
- int zc_pad2;
-
- /*
- * The following members are for legacy ioctls which haven't been
- * converted to the new method.
- */
- uint64_t zc_history; /* really (char *) */
- char zc_value[LEGACY_MAXPATHLEN * 2];
- char zc_string[LEGACY_MAXNAMELEN];
- uint64_t zc_guid;
- uint64_t zc_nvlist_conf; /* really (char *) */
- uint64_t zc_nvlist_conf_size;
- uint64_t zc_cookie;
- uint64_t zc_objset_type;
- uint64_t zc_perm_action;
- uint64_t zc_history_len;
- uint64_t zc_history_offset;
- uint64_t zc_obj;
- uint64_t zc_iflags; /* internal to zfs(7fs) */
- zfs_share_t zc_share;
- uint64_t zc_jailid;
- dmu_objset_stats_t zc_objset_stats;
- dmu_replay_record_t zc_begin_record;
- zinject_record_t zc_inject_record;
- uint32_t zc_defer_destroy;
- uint32_t zc_flags;
- uint64_t zc_action_handle;
- int zc_cleanup_fd;
- uint8_t zc_simple;
- uint8_t zc_pad3[3];
- boolean_t zc_resumable;
- uint32_t zc_pad4;
- uint64_t zc_sendobj;
- uint64_t zc_fromobj;
- uint64_t zc_createtxg;
- zfs_stat_t zc_stat;
-} zfs_cmd_legacy_t;
-#endif
-
-
-#ifdef _KERNEL
-int zfs_ioctl_compat_pre(zfs_cmd_t *, int *, const int);
-void zfs_ioctl_compat_post(zfs_cmd_t *, const int, const int);
-nvlist_t *zfs_ioctl_compat_innvl(zfs_cmd_t *, nvlist_t *, const int,
- const int);
-nvlist_t *zfs_ioctl_compat_outnvl(zfs_cmd_t *, nvlist_t *, const int,
- const int);
-#endif /* _KERNEL */
-#ifdef ZFS_LEGACY_SUPPORT
-int zfs_ioctl_legacy_to_ozfs(int request);
-int zfs_ioctl_ozfs_to_legacy(int request);
-void zfs_cmd_legacy_to_ozfs(zfs_cmd_legacy_t *src, zfs_cmd_t *dst);
-void zfs_cmd_ozfs_to_legacy(zfs_cmd_t *src, zfs_cmd_legacy_t *dst);
-#endif
-
-void zfs_cmd_compat_put(zfs_cmd_t *, caddr_t, const int, const int);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _SYS_ZFS_IOCTL_COMPAT_H */