]> granicus.if.org Git - zfs/commitdiff
- Add some more missing headers
authorbehlendo <behlendo@7e1ea52c-4ff2-0310-8f11-9dd32ca42a1c>
Wed, 12 Mar 2008 23:48:28 +0000 (23:48 +0000)
committerbehlendo <behlendo@7e1ea52c-4ff2-0310-8f11-9dd32ca42a1c>
Wed, 12 Mar 2008 23:48:28 +0000 (23:48 +0000)
- Map the LE/BE_* byteorder macros to the linux versions
- More minor vnodes fixes

git-svn-id: https://outreach.scidac.gov/svn/spl/trunk@41 7e1ea52c-4ff2-0310-8f11-9dd32ca42a1c

include/sys/byteorder.h
include/sys/fm/protocol.h [new file with mode: 0644]
include/sys/fm/util.h [new file with mode: 0644]
include/sys/sysevent.h [new file with mode: 0644]
include/sys/sysevent/eventdefs.h
include/sys/sysmacros.h
include/sys/vnode.h
include/sys/zone.h [new file with mode: 0644]
modules/spl/spl-vnode.c

index 3b626163dafd58257b6f165c1fc57daa807bac83..7e7d04809d60d1d43effb1dcb6c70408de6af871 100644 (file)
@@ -1,4 +1,13 @@
-#ifndef _SPL_ZMOD_H
-#define _SPL_ZMOD_H
+#ifndef _SPL_BYTEORDER_H
+#define _SPL_BYTEORDER_H
 
-#endif /* SPL_ZMOD_H */
+#include <asm/byteorder.h>
+
+#define LE_16(x)       cpu_to_le16(x)
+#define LE_32(x)       cpu_to_le32(x)
+#define LE_64(x)       cpu_to_le64(x)
+#define BE_16(x)       cpu_to_be16(x)
+#define BE_32(x)       cpu_to_be32(x)
+#define BE_64(x)       cpu_to_be64(x)
+
+#endif /* SPL_BYTEORDER_H */
diff --git a/include/sys/fm/protocol.h b/include/sys/fm/protocol.h
new file mode 100644 (file)
index 0000000..ffd8108
--- /dev/null
@@ -0,0 +1,4 @@
+#ifndef        _SPL_FM_PROTOCOL_H
+#define        _SPL_FM_PROTOCOL_H
+
+#endif /* _SPL_FM_PROTOCOL_H */
diff --git a/include/sys/fm/util.h b/include/sys/fm/util.h
new file mode 100644 (file)
index 0000000..6c3412f
--- /dev/null
@@ -0,0 +1,4 @@
+#ifndef        _SPL_FM_UTIL_H
+#define        _SPL_FM_UTIL_H
+
+#endif /* _SPL_FM_UTIL_H */
diff --git a/include/sys/sysevent.h b/include/sys/sysevent.h
new file mode 100644 (file)
index 0000000..45c9608
--- /dev/null
@@ -0,0 +1,4 @@
+#ifndef        _SPL_SYSEVENT_H
+#define        _SPL_SYSEVENT_H
+
+#endif /* _SPL_SYSEVENT_H */
index 1cc58d57c18df48bdefef913381884c66e242dca..d7b28f62b2c24d2d300c31bb16acd1bc0293fd2d 100644 (file)
@@ -1,235 +1,4 @@
-/*
- * 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 e0a3eec0c22cf50f0b8e8672d1c99c4281fb7bf0..eeaedf9cbc84fce534146381945bb83322cdf67f 100644 (file)
@@ -7,6 +7,7 @@ extern "C" {
 
 #include <linux/module.h>
 #include <sys/varargs.h>
+#include <sys/zone.h>
 
 #ifndef _KERNEL
 #define _KERNEL                         __KERNEL__
@@ -121,8 +122,6 @@ extern int ddi_strtoul(const char *hw_serial, char **nptr,
                       int base, unsigned long *result);
 
 #define makedevice(maj,min) makedev(maj,min)
-#define zone_dataset_visible(x, y)                     (1)
-#define INGLOBALZONE(z)                                        (1)
 
 /* common macros */
 #ifndef MIN
index 0e5e401740bccc2584cc2e6339c598bfee3d27e6..af678eccc14c624c2bf170eb21d7679523987a92 100644 (file)
@@ -16,6 +16,8 @@
 #define XVA_MAPSIZE     3
 #define XVA_MAGIC       0x78766174
 
+#define O_DSYNC                040000000
+
 #define FREAD          1
 #define FWRITE         2
 #define FCREAT         O_CREAT
@@ -52,6 +54,9 @@
 #define CRCREAT                0x01
 #define RMFILE         0x02
 
+#define B_INVAL                0x01
+#define B_TRUNC                0x02
+
 typedef enum vtype {
        VNON            = 0,
        VREG            = 1,
@@ -74,6 +79,7 @@ typedef struct vnode {
 
 typedef struct vattr {
        enum vtype     va_type;      /* vnode type */
+       u_int          va_mask;      /* attribute bit-mask */
        u_short        va_mode;      /* acc mode */
        short          va_uid;       /* owner uid */
        short          va_gid;       /* owner gid */
@@ -89,7 +95,6 @@ typedef struct vattr {
        long           va_blocks;    /* space used */
 } vattr_t;
 
-#if 0
 typedef struct xoptattr {
         timestruc_t     xoa_createtime; /* Create time of file */
         uint8_t         xoa_archive;
@@ -124,7 +129,6 @@ typedef struct vsecattr {
         void            *vsa_dfaclentp; /* pointer to default ACL entries */
         size_t          vsa_aclentsz;   /* ACE size in bytes of vsa_aclentp */
 } vsecattr_t;
-#endif
 
 extern int vn_open(const char *path, int seg, int flags, int mode,
                   vnode_t **vpp, int x1, void *x2);
@@ -136,14 +140,26 @@ extern int vn_rdwr(uio_rw_t uio, vnode_t *vp, void *addr, ssize_t len,
 extern int vn_close(vnode_t *vp, int flags, int x1, int x2, void *x3, void *x4);
 extern int vn_remove(const char *path, int seg, int flags);
 extern int vn_rename(const char *path1, const char *path2, int x1);
-extern int vn_getattr(vnode_t *vp, vattr_t *vap, int flags, int x3, void *x4);
+extern int vn_getattr(vnode_t *vp, vattr_t *vap, int flags, void *x3, void *x4);
 extern int vn_fsync(vnode_t *vp, int flags, void *x3, void *x4);
 
+static __inline__ int
+vn_rele(vnode_t *vp)
+{
+       return 0;
+} /* vn_rele() */
+
+static __inline__ int
+vn_putpage(vnode_t *vp, offset_t off, ssize_t size,
+           int flags, void *x1, void *x2) {
+       return 0;
+} /* vn_putpage() */
+
 #define VOP_CLOSE                              vn_close
-#define VN_RELE(vp)
+#define VN_RELE                                        vn_rele
 #define VOP_GETATTR                            vn_getattr
 #define VOP_FSYNC                              vn_fsync
-#define VOP_PUTPAGE(vp, of, sz, fl, cr, ct)
+#define VOP_PUTPAGE                            vn_putpage
 #define vn_is_readonly(vp)                     0
 
 extern void *rootdir;
diff --git a/include/sys/zone.h b/include/sys/zone.h
new file mode 100644 (file)
index 0000000..d3dd737
--- /dev/null
@@ -0,0 +1,9 @@
+#ifndef _SPL_ZONE_H
+#define _SPL_ZONE_H
+
+#include <sys/byteorder.h>
+
+#define zone_dataset_visible(x, y)                      (1)
+#define INGLOBALZONE(z)                                 (1)
+
+#endif /* SPL_ZONE_H */
index a1f6a680ea362a66e56c8b2a2d894e56b125d605..0ec53e73ed477d2f9d575d2e93d218f1343bb6ac 100644 (file)
@@ -313,7 +313,7 @@ exit:
 EXPORT_SYMBOL(vn_rename);
 
 int
-vn_getattr(vnode_t *vp, vattr_t *vap, int flags, int x3, void *x4)
+vn_getattr(vnode_t *vp, vattr_t *vap, int flags, void *x3, void *x4)
 {
        struct file *fp;
         struct kstat stat;
@@ -353,9 +353,14 @@ EXPORT_SYMBOL(vn_getattr);
 
 int vn_fsync(vnode_t *vp, int flags, void *x3, void *x4)
 {
+       int datasync = 0;
+
        BUG_ON(!vp);
        BUG_ON(!vp->v_fp);
 
-       return file_fsync(vp->v_fp, vp->v_fp->f_dentry, 0);
+       if (flags & FDSYNC)
+               datasync = 1;
+
+       return file_fsync(vp->v_fp, vp->v_fp->f_dentry, datasync);
 } /* vn_fsync() */
 EXPORT_SYMBOL(vn_fsync);