[BACK]Return to extattr.h CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / src / sys / sys

Annotation of src/sys/sys/extattr.h, Revision 1.8

1.8     ! christos    1: /*     $NetBSD: extattr.h,v 1.7 2011/08/03 04:11:17 manu Exp $ */
1.1       thorpej     2:
                      3: /*-
                      4:  * Copyright (c) 1999-2001 Robert N. M. Watson
                      5:  * All rights reserved.
                      6:  *
                      7:  * This software was developed by Robert Watson for the TrustedBSD Project.
                      8:  *
                      9:  * Redistribution and use in source and binary forms, with or without
                     10:  * modification, are permitted provided that the following conditions
                     11:  * are met:
                     12:  * 1. Redistributions of source code must retain the above copyright
                     13:  *    notice, this list of conditions and the following disclaimer.
                     14:  * 2. Redistributions in binary form must reproduce the above copyright
                     15:  *    notice, this list of conditions and the following disclaimer in the
                     16:  *    documentation and/or other materials provided with the distribution.
                     17:  *
                     18:  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
                     19:  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
                     20:  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
                     21:  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
                     22:  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
                     23:  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
                     24:  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
                     25:  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
                     26:  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
                     27:  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
                     28:  * SUCH DAMAGE.
                     29:  *
                     30:  * FreeBSD: src/sys/sys/extattr.h,v 1.12 2003/06/04 04:04:24 rwatson Exp
                     31:  */
                     32:
                     33: /*
1.2       thorpej    34:  * Support for file system extended attributes.  Originally developed by
                     35:  * the TrustedBSD Project.  For a Linux-compatible interface to the same
                     36:  * subsystem, see <sys/xattr.h>.
1.1       thorpej    37:  */
                     38:
                     39: #ifndef _SYS_EXTATTR_H_
                     40: #define        _SYS_EXTATTR_H_
                     41:
1.2       thorpej    42: #include <sys/types.h>
                     43:
1.1       thorpej    44: #define        EXTATTR_NAMESPACE_USER          0x00000001
                     45: #define        EXTATTR_NAMESPACE_USER_STRING   "user"
                     46: #define        EXTATTR_NAMESPACE_SYSTEM        0x00000002
                     47: #define        EXTATTR_NAMESPACE_SYSTEM_STRING "system"
                     48:
1.5       manu       49: /* for sys_extattrctl */
                     50: #define EXTATTR_CMD_START              0x00000001
                     51: #define EXTATTR_CMD_STOP               0x00000002
                     52:
1.1       thorpej    53: #ifdef _KERNEL
                     54:
1.8     ! christos   55: #include <sys/param.h>
1.2       thorpej    56:
1.6       manu       57: /* VOP_LISTEXTATTR flags */
                     58: #define EXTATTR_LIST_LENPREFIX 1       /* names with length prefix */
                     59:
1.8     ! christos   60: #define        EXTATTR_MAXNAMELEN      KERNEL_NAME_MAX
1.1       thorpej    61: struct lwp;
                     62: struct vnode;
1.4       elad       63: int    extattr_check_cred(struct vnode *, int, kauth_cred_t,
1.3       christos   64:            struct lwp *, int);
1.1       thorpej    65:
                     66: #else
                     67:
                     68: #include <sys/cdefs.h>
                     69: __BEGIN_DECLS
                     70: int    extattrctl(const char *_path, int _cmd, const char *_filename,
                     71:            int _attrnamespace, const char *_attrname);
                     72:
                     73: int    extattr_delete_fd(int _fd, int _attrnamespace, const char *_attrname);
                     74: int    extattr_delete_file(const char *_path, int _attrnamespace,
                     75:            const char *_attrname);
                     76: int    extattr_delete_link(const char *_path, int _attrnamespace,
                     77:            const char *_attrname);
                     78: ssize_t        extattr_get_fd(int _fd, int _attrnamespace, const char *_attrname,
                     79:            void *_data, size_t _nbytes);
                     80: ssize_t        extattr_get_file(const char *_path, int _attrnamespace,
                     81:            const char *_attrname, void *_data, size_t _nbytes);
                     82: ssize_t        extattr_get_link(const char *_path, int _attrnamespace,
                     83:            const char *_attrname, void *_data, size_t _nbytes);
                     84: ssize_t        extattr_list_fd(int _fd, int _attrnamespace, void *_data,
                     85:            size_t _nbytes);
                     86: ssize_t        extattr_list_file(const char *_path, int _attrnamespace, void *_data,
                     87:            size_t _nbytes);
                     88: ssize_t        extattr_list_link(const char *_path, int _attrnamespace, void *_data,
                     89:            size_t _nbytes);
                     90: int    extattr_set_fd(int _fd, int _attrnamespace, const char *_attrname,
                     91:            const void *_data, size_t _nbytes);
                     92: int    extattr_set_file(const char *_path, int _attrnamespace,
                     93:            const char *_attrname, const void *_data, size_t _nbytes);
                     94: int    extattr_set_link(const char *_path, int _attrnamespace,
                     95:            const char *_attrname, const void *_data, size_t _nbytes);
                     96:
1.7       manu       97: extern const int extattr_namespaces[];
                     98:
1.1       thorpej    99: int    extattr_namespace_to_string(int, char **);
                    100: int    extattr_string_to_namespace(const char *, int *);
1.7       manu      101: int    extattr_copy_fd(int _from_fd, int _to_fd, int _namespace);
                    102: int    extattr_copy_file(const char *_from, const char *_to, int _namespace);
                    103: int    extattr_copy_link(const char *_from, const char *_to, int _namespace);
                    104:
                    105: int    fcpxattr(int _from_fd, int _to_fd);
                    106: int    cpxattr(const char *_from, const char *_to);
                    107: int    lcpxattr(const char *_from, const char *_to);
1.1       thorpej   108: __END_DECLS
                    109:
                    110: #endif /* !_KERNEL */
                    111: #endif /* !_SYS_EXTATTR_H_ */

CVSweb <webmaster@jp.NetBSD.org>