]> granicus.if.org Git - zfs/commitdiff
Add missing headers
authorbehlendo <behlendo@7e1ea52c-4ff2-0310-8f11-9dd32ca42a1c>
Mon, 10 Mar 2008 17:05:34 +0000 (17:05 +0000)
committerbehlendo <behlendo@7e1ea52c-4ff2-0310-8f11-9dd32ca42a1c>
Mon, 10 Mar 2008 17:05:34 +0000 (17:05 +0000)
git-svn-id: https://outreach.scidac.gov/svn/spl/trunk@33 7e1ea52c-4ff2-0310-8f11-9dd32ca42a1c

FIXME
include/sys/sysevent/eventdefs.h [new file with mode: 0644]
include/sys/sysmacros.h
include/sys/uio.h [new file with mode: 0644]
include/sys/vnode.h

diff --git a/FIXME b/FIXME
index 4acf67d082e9ec78b5d2bc1a70010f163cb65ff3..d853e96ac76a6ed585078d80a614a331938ffabe 100644 (file)
--- a/FIXME
+++ b/FIXME
@@ -14,3 +14,5 @@ sys/acl_impl.h                _ All borrowed from libsolcompat
 * Fix failure in rw lock test 6
 
 * Non-atomic 64bit support for kstat.h
+
+* Write vnode interface
diff --git a/include/sys/sysevent/eventdefs.h b/include/sys/sysevent/eventdefs.h
new file mode 100644 (file)
index 0000000..1cc58d5
--- /dev/null
@@ -0,0 +1,235 @@
+/*
+ * 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 http://www.opensolaris.org/os/licensing.
+ * 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 2007 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#ifndef        _SPL_SYSEVENT_EVENTDEFS_H
+#define        _SPL_SYSEVENT_EVENTDEFS_H
+
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * eventdefs.h contains public definitions for sysevent types (classes
+ * and subclasses).  All additions/removal/changes are subject
+ * to PSARC approval.
+ */
+
+/* Sysevent Class definitions */
+#define        EC_NONE         "EC_none"
+#define        EC_PRIV         "EC_priv"
+#define        EC_PLATFORM     "EC_platform"   /* events private to platform */
+#define        EC_DR           "EC_dr" /* Dynamic reconfiguration event class */
+#define        EC_ENV          "EC_env"        /* Environmental monitor event class */
+#define        EC_DOMAIN       "EC_domain"     /* Domain event class */
+#define        EC_AP_DRIVER    "EC_ap_driver"  /* Alternate Pathing event class */
+#define        EC_IPMP         "EC_ipmp"       /* IP Multipathing event class */
+#define        EC_DEV_ADD      "EC_dev_add"    /* device add event class */
+#define        EC_DEV_REMOVE   "EC_dev_remove" /* device remove event class */
+#define        EC_DEV_BRANCH   "EC_dev_branch" /* device tree branch event class */
+#define        EC_FM           "EC_fm"         /* FMA error report event */
+#define        EC_ZFS          "EC_zfs"        /* ZFS event */
+
+/*
+ * The following event class is reserved for exclusive use
+ * by Sun Cluster software.
+ */
+#define        EC_CLUSTER      "EC_Cluster"
+
+/*
+ * The following classes are exclusively reserved for use by the
+ * Solaris Volume Manager (SVM)
+ */
+#define        EC_SVM_CONFIG   "EC_SVM_Config"
+#define        EC_SVM_STATE    "EC_SVM_State"
+
+/*
+ * EC_SVM_CONFIG subclass definitions - supporting attributes (name/value pairs)
+ * are found in sys/sysevent/svm.h
+ */
+#define        ESC_SVM_CREATE          "ESC_SVM_Create"
+#define        ESC_SVM_DELETE          "ESC_SVM_Delete"
+#define        ESC_SVM_ADD             "ESC_SVM_Add"
+#define        ESC_SVM_REMOVE          "ESC_SVM_Remove"
+#define        ESC_SVM_REPLACE         "ESC_SVM_Replace"
+#define        ESC_SVM_GROW            "ESC_SVM_Grow"
+#define        ESC_SVM_RENAME_SRC      "ESC_SVM_Rename_Src"
+#define        ESC_SVM_RENAME_DST      "ESC_SVM_Rename_Dst"
+#define        ESC_SVM_MEDIATOR_ADD    "ESC_SVM_Mediator_Add"
+#define        ESC_SVM_MEDIATOR_DELETE "ESC_SVM_Mediator_Delete"
+#define        ESC_SVM_HOST_ADD        "ESC_SVM_Host_Add"
+#define        ESC_SVM_HOST_DELETE     "ESC_SVM_Host_Delete"
+#define        ESC_SVM_DRIVE_ADD       "ESC_SVM_Drive_Add"
+#define        ESC_SVM_DRIVE_DELETE    "ESC_SVM_Drive_Delete"
+#define        ESC_SVM_DETACH          "ESC_SVM_Detach"
+#define        ESC_SVM_DETACHING       "ESC_SVM_Detaching"
+#define        ESC_SVM_ATTACH          "ESC_SVM_Attach"
+#define        ESC_SVM_ATTACHING       "ESC_SVM_Attaching"
+
+/*
+ * EC_SVM_STATE subclass definitions - supporting attributes (name/value pairs)
+ * are found in sys/sysevent/svm.h
+ */
+#define        ESC_SVM_INIT_START      "ESC_SVM_Init_Start"
+#define        ESC_SVM_INIT_FAILED     "ESC_SVM_Init_Failed"
+#define        ESC_SVM_INIT_FATAL      "ESC_SVM_Init_Fatal"
+#define        ESC_SVM_INIT_SUCCESS    "ESC_SVM_Init_Success"
+#define        ESC_SVM_IOERR           "ESC_SVM_Ioerr"
+#define        ESC_SVM_ERRED           "ESC_SVM_Erred"
+#define        ESC_SVM_LASTERRED       "ESC_SVM_Lasterred"
+#define        ESC_SVM_OK              "ESC_SVM_Ok"
+#define        ESC_SVM_ENABLE          "ESC_SVM_Enable"
+#define        ESC_SVM_RESYNC_START    "ESC_SVM_Resync_Start"
+#define        ESC_SVM_RESYNC_FAILED   "ESC_SVM_Resync_Failed"
+#define        ESC_SVM_RESYNC_SUCCESS  "ESC_SVM_Resync_Success"
+#define        ESC_SVM_RESYNC_DONE     "ESC_SVM_Resync_Done"
+#define        ESC_SVM_HOTSPARED       "ESC_SVM_Hotspared"
+#define        ESC_SVM_HS_FREED        "ESC_SVM_HS_Freed"
+#define        ESC_SVM_HS_CHANGED      "ESC_SVM_HS_Changed"
+#define        ESC_SVM_TAKEOVER        "ESC_SVM_Takeover"
+#define        ESC_SVM_RELEASE         "ESC_SVM_Release"
+#define        ESC_SVM_OPEN_FAIL       "ESC_SVM_Open_Fail"
+#define        ESC_SVM_OFFLINE         "ESC_SVM_Offline"
+#define        ESC_SVM_ONLINE          "ESC_SVM_Online"
+#define        ESC_SVM_CHANGE          "ESC_SVM_Change"
+#define        ESC_SVM_EXCHANGE        "ESC_SVM_Exchange"
+#define        ESC_SVM_REGEN_START     "ESC_SVM_Regen_Start"
+#define        ESC_SVM_REGEN_DONE      "ESC_SVM_Regen_Done"
+#define        ESC_SVM_REGEN_FAILED    "ESC_SVM_Regen_Failed"
+
+/*
+ * EC_DR subclass definitions - supporting attributes (name/value pairs)
+ * are found in sys/sysevent/dr.h
+ */
+
+/* Attachment point state change */
+#define        ESC_DR_AP_STATE_CHANGE  "ESC_dr_ap_state_change"
+#define        ESC_DR_REQ              "ESC_dr_req"    /* Request DR */
+#define        ESC_DR_TARGET_STATE_CHANGE      "ESC_dr_target_state_change"
+
+/*
+ * EC_ENV subclass definitions - supporting attributes (name/value pairs)
+ * are found in sys/sysevent/env.h
+ */
+#define        ESC_ENV_TEMP    "ESC_env_temp"  /* Temperature change event subclass */
+#define        ESC_ENV_FAN     "ESC_env_fan"   /* Fan status change event subclass */
+#define        ESC_ENV_POWER   "ESC_env_power" /* Power supply change event subclass */
+#define        ESC_ENV_LED     "ESC_env_led"   /* LED change event subclass */
+
+/*
+ * EC_DOMAIN subclass definitions - supporting attributes (name/value pairs)
+ * are found in sys/sysevent/domain.h
+ */
+
+/* Domain state change */
+#define        ESC_DOMAIN_STATE_CHANGE         "ESC_domain_state_change"
+/* Domain loghost name change */
+#define        ESC_DOMAIN_LOGHOST_CHANGE       "ESC_domain_loghost_change"
+
+/*
+ * EC_AP_DRIVER subclass definitions - supporting attributes (name/value pairs)
+ * are found in sys/sysevent/ap_driver.h
+ */
+
+/* Alternate Pathing path switch */
+#define        ESC_AP_DRIVER_PATHSWITCH        "ESC_ap_driver_pathswitch"
+/* Alternate Pathing database commit */
+#define        ESC_AP_DRIVER_COMMIT            "ESC_ap_driver_commit"
+/* Alternate Pathing physical path status change */
+#define        ESC_AP_DRIVER_PHYS_PATH_STATUS_CHANGE   \
+       "ESC_ap_driver_phys_path_status_change"
+
+/*
+ * EC_IPMP subclass definitions - supporting attributes (name/value pairs)
+ * are found in sys/sysevent/ipmp.h
+ */
+
+/* IPMP group has changed state */
+#define        ESC_IPMP_GROUP_STATE            "ESC_ipmp_group_state"
+
+/* IPMP group has been created or removed */
+#define        ESC_IPMP_GROUP_CHANGE           "ESC_ipmp_group_change"
+
+/* IPMP group has had an interface added or removed */
+#define        ESC_IPMP_GROUP_MEMBER_CHANGE    "ESC_ipmp_group_member_change"
+
+/* Interface within an IPMP group has changed state or type */
+#define        ESC_IPMP_IF_CHANGE              "ESC_ipmp_if_change"
+
+
+/*
+ * EC_DEV_ADD and EC_DEV_REMOVE subclass definitions - supporting attributes
+ * (name/value pairs) are found in sys/sysevent/dev.h
+ */
+#define        ESC_DISK        "disk"          /* disk device */
+#define        ESC_NETWORK     "network"       /* network interface */
+#define        ESC_PRINTER     "printer"       /* printer device */
+#define        ESC_LOFI        "lofi"          /* lofi device */
+
+/*
+ * EC_DEV_BRANCH subclass definitions - supporting attributes (name/value pairs)
+ * are found in sys/sysevent/dev.h
+ */
+
+/* device tree branch added */
+#define        ESC_DEV_BRANCH_ADD      "ESC_dev_branch_add"
+
+/* device tree branch removed */
+#define        ESC_DEV_BRANCH_REMOVE   "ESC_dev_branch_remove"
+
+/* FMA Fault and Error event protocol subclass */
+#define        ESC_FM_ERROR            "ESC_FM_error"
+#define        ESC_FM_ERROR_REPLAY     "ESC_FM_error_replay"
+
+/* Service processor subclass definitions */
+#define        ESC_PLATFORM_SP_RESET   "ESC_platform_sp_reset"
+
+/*
+ * EC_ACPIEV subclass definitions
+ */
+#define        EC_ACPIEV                       "EC_acpiev"
+#define        ESC_ACPIEV_ADD                  "ESC_acpiev_add"
+#define        ESC_ACPIEV_REMOVE               "ESC_acpiev_remove"
+#define        ESC_ACPIEV_WARN                 "ESC_acpiev_warn"
+#define        ESC_ACPIEV_LOW                  "ESC_acpiev_low"
+#define        ESC_ACPIEV_STATE_CHANGE         "ESC_acpiev_state_change"
+
+/*
+ * ZFS subclass definitions.  supporting attributes (name/value paris) are found
+ * in sys/fs/zfs.h
+ */
+#define        ESC_ZFS_RESILVER_START  "ESC_ZFS_resilver_start"
+#define        ESC_ZFS_RESILVER_FINISH "ESC_ZFS_resilver_finish"
+#define        ESC_ZFS_VDEV_REMOVE     "ESC_ZFS_vdev_remove"
+#define        ESC_ZFS_POOL_DESTROY    "ESC_ZFS_pool_destroy"
+#define        ESC_ZFS_VDEV_CLEAR      "ESC_ZFS_vdev_clear"
+#define        ESC_ZFS_VDEV_CHECK      "ESC_ZFS_vdev_check"
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SPL_SYSEVENT_EVENTDEFS_H */
index ababed0fd0aa06f9a2e30d5f231991f0c46b5e13..3f559bd0ba8d921f1b78a0ed41536b5751f8386f 100644 (file)
@@ -42,6 +42,8 @@ extern "C" {
 #define CPU_SEQID                      smp_processor_id() /* I think... */
 #define _NOTE(x)
 
+#define RLIM64_INFINITY                        RLIM_INFINITY
+
 /* 0..MAX_PRIO-1:              Process priority
  * 0..MAX_RT_PRIO-1:           RT priority tasks
  * MAX_RT_PRIO..MAX_PRIO-1:    SCHED_NORMAL tasks
diff --git a/include/sys/uio.h b/include/sys/uio.h
new file mode 100644 (file)
index 0000000..845256d
--- /dev/null
@@ -0,0 +1,8 @@
+#ifndef _SPL_UIO_H
+#define _SPL_UIO_H
+
+typedef enum uio_rw { UIO_READ, UIO_WRITE } uio_rw_t;
+
+#define UIO_SYSSPACE 1
+
+#endif /* SPL_UIO_H */
index 9afac4c2528ea9e1f73fcd1d34b9c69b5d6c14c8..9d3484fcf3dc55576268e0c67976cecc3a26cc02 100644 (file)
@@ -1,14 +1,32 @@
 #ifndef _SPL_VNODE_H
 #define _SPL_VNODE_H
 
+#include <linux/syscalls.h>
+
 #define XVA_MAPSIZE     3
 #define XVA_MAGIC       0x78766174
 
+typedef enum vtype {
+        VNON    = 0,
+        VREG    = 1,
+        VDIR    = 2,
+        VBLK    = 3,
+        VCHR    = 4,
+        VLNK    = 5,
+        VFIFO   = 6,
+        VDOOR   = 7,
+        VPROC   = 8,
+        VSOCK   = 9,
+        VPORT   = 10,
+        VBAD    = 11
+} vtype_t;
+
 typedef struct vnode {
         uint64_t        v_size;
         int             v_fd;
         mode_t          v_mode;
         char            *v_path;
+       vtype_t         v_type;
 } vnode_t;
 
 
@@ -76,7 +94,7 @@ typedef struct vsecattr {
 #define VOP_PUTPAGE(vp, of, sz, fl, cr, ct)     0
 #define VOP_GETATTR(vp, vap, fl, cr, ct)  ((vap)->va_size = (vp)->v_size, 0)
 
-#define VOP_FSYNC(vp, f, cr, ct)        fsync((vp)->v_fd)
+#define VOP_FSYNC(vp, f, cr, ct)        sys_fsync((vp)->v_fd)
 
 #define VN_RELE(vp)     vn_close(vp)