mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2024-12-25 18:59:33 +03:00
Drop unicode support, provided in ZFS tree libport
Update uio support git-svn-id: https://outreach.scidac.gov/svn/spl/trunk@42 7e1ea52c-4ff2-0310-8f11-9dd32ca42a1c
This commit is contained in:
parent
36e6f86146
commit
73e540a0d1
4
include/sys/ddi.h
Normal file
4
include/sys/ddi.h
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
#ifndef _SPL_DDI_H
|
||||||
|
#define _SPL_DDI_H
|
||||||
|
|
||||||
|
#endif /* SPL_DDI_H */
|
@ -11,6 +11,8 @@ typedef struct _buf {
|
|||||||
vnode_t *vp;
|
vnode_t *vp;
|
||||||
} _buf_t;
|
} _buf_t;
|
||||||
|
|
||||||
|
typedef struct _buf buf_t;
|
||||||
|
|
||||||
extern struct _buf *kobj_open_file(const char *name);
|
extern struct _buf *kobj_open_file(const char *name);
|
||||||
extern void kobj_close_file(struct _buf *file);
|
extern void kobj_close_file(struct _buf *file);
|
||||||
extern int kobj_read_file(struct _buf *file, char *buf,
|
extern int kobj_read_file(struct _buf *file, char *buf,
|
||||||
|
@ -28,5 +28,7 @@ typedef unsigned short ushort_t;
|
|||||||
typedef u_longlong_t len_t;
|
typedef u_longlong_t len_t;
|
||||||
typedef longlong_t diskaddr_t;
|
typedef longlong_t diskaddr_t;
|
||||||
typedef ushort_t o_mode_t;
|
typedef ushort_t o_mode_t;
|
||||||
|
typedef uint_t major_t;
|
||||||
|
typedef uint_t minor_t;
|
||||||
|
|
||||||
#endif /* _SPL_TYPES_H */
|
#endif /* _SPL_TYPES_H */
|
||||||
|
@ -1,119 +0,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 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.
|
|
||||||
*/
|
|
||||||
|
|
||||||
//#include "dmu_config.h"
|
|
||||||
|
|
||||||
#ifdef HAVE_UNICODE
|
|
||||||
#include_next <sys/u8_textprep.h>
|
|
||||||
#else
|
|
||||||
|
|
||||||
#ifndef _SYS_U8_TEXTPREP_H
|
|
||||||
#define _SYS_U8_TEXTPREP_H
|
|
||||||
|
|
||||||
#include <sys/isa_defs.h>
|
|
||||||
#include <sys/types.h>
|
|
||||||
#include <sys/errno.h>
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
extern "C" {
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Unicode encoding conversion functions and their macros.
|
|
||||||
*/
|
|
||||||
#define UCONV_IN_BIG_ENDIAN 0x0001
|
|
||||||
#define UCONV_OUT_BIG_ENDIAN 0x0002
|
|
||||||
#define UCONV_IN_SYSTEM_ENDIAN 0x0004
|
|
||||||
#define UCONV_OUT_SYSTEM_ENDIAN 0x0008
|
|
||||||
#define UCONV_IN_LITTLE_ENDIAN 0x0010
|
|
||||||
#define UCONV_OUT_LITTLE_ENDIAN 0x0020
|
|
||||||
#define UCONV_IGNORE_NULL 0x0040
|
|
||||||
#define UCONV_IN_ACCEPT_BOM 0x0080
|
|
||||||
#define UCONV_OUT_EMIT_BOM 0x0100
|
|
||||||
|
|
||||||
extern int uconv_u16tou32(const uint16_t *, size_t *, uint32_t *, size_t *,
|
|
||||||
int);
|
|
||||||
extern int uconv_u16tou8(const uint16_t *, size_t *, uchar_t *, size_t *, int);
|
|
||||||
extern int uconv_u32tou16(const uint32_t *, size_t *, uint16_t *, size_t *,
|
|
||||||
int);
|
|
||||||
extern int uconv_u32tou8(const uint32_t *, size_t *, uchar_t *, size_t *, int);
|
|
||||||
extern int uconv_u8tou16(const uchar_t *, size_t *, uint16_t *, size_t *, int);
|
|
||||||
extern int uconv_u8tou32(const uchar_t *, size_t *, uint32_t *, size_t *, int);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* UTF-8 text preparation functions and their macros.
|
|
||||||
*
|
|
||||||
* Among the macros defined, U8_CANON_DECOMP, U8_COMPAT_DECOMP, and
|
|
||||||
* U8_CANON_COMP are not public interfaces and must not be used directly
|
|
||||||
* at the flag input argument.
|
|
||||||
*/
|
|
||||||
#define U8_STRCMP_CS (0x00000001)
|
|
||||||
#define U8_STRCMP_CI_UPPER (0x00000002)
|
|
||||||
#define U8_STRCMP_CI_LOWER (0x00000004)
|
|
||||||
|
|
||||||
#define U8_CANON_DECOMP (0x00000010)
|
|
||||||
#define U8_COMPAT_DECOMP (0x00000020)
|
|
||||||
#define U8_CANON_COMP (0x00000040)
|
|
||||||
|
|
||||||
#define U8_STRCMP_NFD (U8_CANON_DECOMP)
|
|
||||||
#define U8_STRCMP_NFC (U8_CANON_DECOMP | U8_CANON_COMP)
|
|
||||||
#define U8_STRCMP_NFKD (U8_COMPAT_DECOMP)
|
|
||||||
#define U8_STRCMP_NFKC (U8_COMPAT_DECOMP | U8_CANON_COMP)
|
|
||||||
|
|
||||||
#define U8_TEXTPREP_TOUPPER (U8_STRCMP_CI_UPPER)
|
|
||||||
#define U8_TEXTPREP_TOLOWER (U8_STRCMP_CI_LOWER)
|
|
||||||
|
|
||||||
#define U8_TEXTPREP_NFD (U8_STRCMP_NFD)
|
|
||||||
#define U8_TEXTPREP_NFC (U8_STRCMP_NFC)
|
|
||||||
#define U8_TEXTPREP_NFKD (U8_STRCMP_NFKD)
|
|
||||||
#define U8_TEXTPREP_NFKC (U8_STRCMP_NFKC)
|
|
||||||
|
|
||||||
#define U8_TEXTPREP_IGNORE_NULL (0x00010000)
|
|
||||||
#define U8_TEXTPREP_IGNORE_INVALID (0x00020000)
|
|
||||||
#define U8_TEXTPREP_NOWAIT (0x00040000)
|
|
||||||
|
|
||||||
#define U8_UNICODE_320 (0)
|
|
||||||
#define U8_UNICODE_500 (1)
|
|
||||||
#define U8_UNICODE_LATEST (U8_UNICODE_500)
|
|
||||||
|
|
||||||
#define U8_VALIDATE_ENTIRE (0x00100000)
|
|
||||||
#define U8_VALIDATE_CHECK_ADDITIONAL (0x00200000)
|
|
||||||
#define U8_VALIDATE_UCS2_RANGE (0x00400000)
|
|
||||||
|
|
||||||
#define U8_ILLEGAL_CHAR (-1)
|
|
||||||
#define U8_OUT_OF_RANGE_CHAR (-2)
|
|
||||||
|
|
||||||
extern int u8_validate(char *, size_t, char **, int, int *);
|
|
||||||
extern int u8_strcmp(const char *, const char *, size_t, int, size_t, int *);
|
|
||||||
extern size_t u8_textprep_str(char *, size_t *, char *, size_t *, int, size_t,
|
|
||||||
int *);
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif /* HAVE_UNICODE */
|
|
||||||
|
|
||||||
#endif /* _SYS_U8_TEXTPREP_H */
|
|
File diff suppressed because it is too large
Load Diff
@ -1,11 +1,46 @@
|
|||||||
#ifndef _SPL_UIO_H
|
#ifndef _SPL_UIO_H
|
||||||
#define _SPL_UIO_H
|
#define _SPL_UIO_H
|
||||||
|
|
||||||
|
#include <linux/uio.h>
|
||||||
|
#include <asm/uaccess.h>
|
||||||
|
#include <sys/types.h>
|
||||||
|
|
||||||
typedef enum uio_rw {
|
typedef enum uio_rw {
|
||||||
UIO_READ = 0,
|
UIO_READ = 0,
|
||||||
UIO_WRITE = 1,
|
UIO_WRITE = 1,
|
||||||
} uio_rw_t;
|
} uio_rw_t;
|
||||||
|
|
||||||
#define UIO_SYSSPACE 1
|
typedef enum uio_seg {
|
||||||
|
UIO_USERSPACE = 0,
|
||||||
|
UIO_SYSSPACE = 1,
|
||||||
|
UIO_USERISPACE =2,
|
||||||
|
} uio_seg_t;
|
||||||
|
|
||||||
|
typedef struct uio {
|
||||||
|
struct iovec *uio_iov; /* pointer to array of iovecs */
|
||||||
|
int uio_iovcnt; /* number of iovecs */
|
||||||
|
offset_t uio_loffset; /* file offset */
|
||||||
|
uio_seg_t uio_segflg; /* address space (kernel or user) */
|
||||||
|
uint16_t uio_fmode; /* file mode flags */
|
||||||
|
uint16_t uio_extflg; /* extended flags */
|
||||||
|
offset_t uio_limit; /* u-limit (maximum byte offset) */
|
||||||
|
ssize_t uio_resid; /* residual count */
|
||||||
|
} uio_t;
|
||||||
|
|
||||||
|
typedef struct aio_req {
|
||||||
|
uio_t *aio_uio; /* UIO for this request */
|
||||||
|
void *aio_private;
|
||||||
|
} aio_req_t;
|
||||||
|
|
||||||
|
/* XXX: Must be fully implemented when ZVOL is needed, for reference:
|
||||||
|
* http://cvs.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/uts/common/os/move.c
|
||||||
|
*/
|
||||||
|
#if 0
|
||||||
|
static __inline__ int
|
||||||
|
uiomove(void *p, size_t n, enum uio_rw rw, struct uio *uio)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif /* SPL_UIO_H */
|
#endif /* SPL_UIO_H */
|
||||||
|
@ -130,15 +130,15 @@ typedef struct vsecattr {
|
|||||||
size_t vsa_aclentsz; /* ACE size in bytes of vsa_aclentp */
|
size_t vsa_aclentsz; /* ACE size in bytes of vsa_aclentp */
|
||||||
} vsecattr_t;
|
} vsecattr_t;
|
||||||
|
|
||||||
extern int vn_open(const char *path, int seg, int flags, int mode,
|
extern int vn_open(const char *path, uio_seg_t seg, int flags, int mode,
|
||||||
vnode_t **vpp, int x1, void *x2);
|
vnode_t **vpp, int x1, void *x2);
|
||||||
extern int vn_openat(const char *path, int seg, int flags, int mode,
|
extern int vn_openat(const char *path, uio_seg_t seg, int flags, int mode,
|
||||||
vnode_t **vpp, int x1, void *x2, vnode_t *vp, int fd);
|
vnode_t **vpp, int x1, void *x2, vnode_t *vp, int fd);
|
||||||
extern int vn_rdwr(uio_rw_t uio, vnode_t *vp, void *addr, ssize_t len,
|
extern int vn_rdwr(uio_rw_t uio, vnode_t *vp, void *addr, ssize_t len,
|
||||||
offset_t off, int seg, int x1, rlim64_t x2,
|
offset_t off, uio_seg_t seg, int x1, rlim64_t x2,
|
||||||
void *x3, ssize_t *residp);
|
void *x3, ssize_t *residp);
|
||||||
extern int vn_close(vnode_t *vp, int flags, int x1, int x2, void *x3, void *x4);
|
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_remove(const char *path, uio_seg_t seg, int flags);
|
||||||
extern int vn_rename(const char *path1, const char *path2, int x1);
|
extern int vn_rename(const char *path1, const char *path2, int x1);
|
||||||
extern int vn_getattr(vnode_t *vp, vattr_t *vap, int flags, void *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);
|
extern int vn_fsync(vnode_t *vp, int flags, void *x3, void *x4);
|
||||||
|
Loading…
Reference in New Issue
Block a user