[BACK]Return to xfs_attr.h CVS log [TXT][DIR] Up to [local] / sys / xfs

Annotation of sys/xfs/xfs_attr.h, Revision 1.1.1.1

1.1       nbrk        1: /*
                      2:  * Copyright (c) 1998, 1999 Kungliga Tekniska Högskolan
                      3:  * (Royal Institute of Technology, Stockholm, Sweden).
                      4:  * All rights reserved.
                      5:  *
                      6:  * Redistribution and use in source and binary forms, with or without
                      7:  * modification, are permitted provided that the following conditions
                      8:  * are met:
                      9:  *
                     10:  * 1. Redistributions of source code must retain the above copyright
                     11:  *    notice, this list of conditions and the following disclaimer.
                     12:  *
                     13:  * 2. Redistributions in binary form must reproduce the above copyright
                     14:  *    notice, this list of conditions and the following disclaimer in the
                     15:  *    documentation and/or other materials provided with the distribution.
                     16:  *
                     17:  * 3. Neither the name of the Institute nor the names of its contributors
                     18:  *    may be used to endorse or promote products derived from this software
                     19:  *    without specific prior written permission.
                     20:  *
                     21:  * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
                     22:  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
                     23:  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
                     24:  * ARE DISCLAIMED.  IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
                     25:  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
                     26:  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
                     27:  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
                     28:  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
                     29:  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
                     30:  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
                     31:  * SUCH DAMAGE.
                     32:  */
                     33:
                     34: /* $arla: xfs_attr.h,v 1.12 2002/09/07 10:46:15 lha Exp $ */
                     35:
                     36: #ifndef _NNPFS_ATTR_H
                     37: #define _NNPFS_ATTR_H
                     38:
                     39: #define XA_V_NONE       0
                     40: #define XA_V_MODE      (1 <<  0)
                     41: #define XA_V_NLINK     (1 <<  1)
                     42: #define XA_V_SIZE      (1 <<  2)
                     43: #define XA_V_UID       (1 <<  3)
                     44: #define XA_V_GID       (1 <<  4)
                     45: #define XA_V_ATIME     (1 <<  5)
                     46: #define XA_V_MTIME     (1 <<  6)
                     47: #define XA_V_CTIME     (1 <<  7)
                     48: #define XA_V_FILEID    (1 <<  8)
                     49: #define XA_V_TYPE       (1 <<  9)
                     50:
                     51: #define NNPFS_FILE_NON 1
                     52: #define NNPFS_FILE_REG 2
                     53: #define NNPFS_FILE_DIR 3
                     54: #define NNPFS_FILE_BLK 4
                     55: #define NNPFS_FILE_CHR 5
                     56: #define NNPFS_FILE_LNK 6
                     57: #define NNPFS_FILE_SOCK 7
                     58: #define NNPFS_FILE_FIFO 8
                     59: #define NNPFS_FILE_BAD 9
                     60:
                     61: #define XA_CLEAR(xa_p) \
                     62:         ((xa_p)->valid = XA_V_NONE)
                     63: #define XA_SET_MODE(xa_p, value) \
                     64:        (((xa_p)->valid) |= XA_V_MODE, ((xa_p)->xa_mode) = value)
                     65: #define XA_SET_NLINK(xa_p, value) \
                     66:        (((xa_p)->valid) |= XA_V_NLINK, ((xa_p)->xa_nlink) = value)
                     67: #define XA_SET_SIZE(xa_p, value) \
                     68:        (((xa_p)->valid) |= XA_V_SIZE, ((xa_p)->xa_size) = value)
                     69: #define XA_SET_UID(xa_p, value) \
                     70:        (((xa_p)->valid) |= XA_V_UID, ((xa_p)->xa_uid) = value)
                     71: #define XA_SET_GID(xa_p, value) \
                     72:        (((xa_p)->valid) |= XA_V_GID, ((xa_p)->xa_gid) = value)
                     73: #define XA_SET_ATIME(xa_p, value) \
                     74:        (((xa_p)->valid) |= XA_V_ATIME, ((xa_p)->xa_atime) = value)
                     75: #define XA_SET_MTIME(xa_p, value) \
                     76:        (((xa_p)->valid) |= XA_V_MTIME, ((xa_p)->xa_mtime) = value)
                     77: #define XA_SET_CTIME(xa_p, value) \
                     78:        (((xa_p)->valid) |= XA_V_CTIME, ((xa_p)->xa_ctime) = value)
                     79: #define XA_SET_FILEID(xa_p, value) \
                     80:        (((xa_p)->valid) |= XA_V_FILEID, ((xa_p)->xa_fileid) = value)
                     81: #define XA_SET_TYPE(xa_p, value) \
                     82:        (((xa_p)->valid) |= XA_V_TYPE, ((xa_p)->xa_type) = value)
                     83:
                     84:
                     85: #define XA_VALID_MODE(xa_p) \
                     86:        (((xa_p)->valid) & XA_V_MODE)
                     87: #define XA_VALID_NLINK(xa_p) \
                     88:        (((xa_p)->valid) & XA_V_NLINK)
                     89: #define XA_VALID_SIZE(xa_p) \
                     90:        (((xa_p)->valid) & XA_V_SIZE)
                     91: #define XA_VALID_UID(xa_p) \
                     92:        (((xa_p)->valid) & XA_V_UID)
                     93: #define XA_VALID_GID(xa_p) \
                     94:        (((xa_p)->valid) & XA_V_GID)
                     95: #define XA_VALID_ATIME(xa_p) \
                     96:        (((xa_p)->valid) & XA_V_ATIME)
                     97: #define XA_VALID_MTIME(xa_p) \
                     98:        (((xa_p)->valid) & XA_V_MTIME)
                     99: #define XA_VALID_CTIME(xa_p) \
                    100:        (((xa_p)->valid) & XA_V_CTIME)
                    101: #define XA_VALID_FILEID(xa_p) \
                    102:        (((xa_p)->valid) & XA_V_FILEID)
                    103: #define XA_VALID_TYPE(xa_p) \
                    104:        (((xa_p)->valid) & XA_V_TYPE)
                    105:
                    106: struct xfs_attr {
                    107:     uint32_t           valid;
                    108:     uint32_t           xa_mode;
                    109:
                    110:     uint32_t           xa_nlink;
                    111:     uint32_t           xa_size;
                    112:
                    113:     uint32_t           xa_uid;
                    114:     uint32_t           xa_gid;
                    115:
                    116:     uint32_t           xa_atime;
                    117:     uint32_t           xa_mtime;
                    118:
                    119:     uint32_t           xa_ctime;
                    120:     uint32_t           xa_fileid;
                    121:
                    122:     uint32_t           xa_type;
                    123:     uint32_t           pad1;
                    124: };
                    125:
                    126: #endif /* _NNPFS_ATTR_H */

CVSweb