!C99Shell v. 1.0 pre-release build #13!

Software: Apache/2.0.54 (Unix) mod_perl/1.99_09 Perl/v5.8.0 mod_ssl/2.0.54 OpenSSL/0.9.7l DAV/2 FrontPage/5.0.2.2635 PHP/4.4.0 mod_gzip/2.0.26.1a 

uname -a: Linux snow.he.net 4.4.276-v2-mono-1 #1 SMP Wed Jul 21 11:21:17 PDT 2021 i686 

uid=99(nobody) gid=98(nobody) groups=98(nobody) 

Safe-mode: OFF (not secure)

/usr/src/linux-2.4.18-xfs-1.1/fs/xfs/   drwxr-xr-x
Free 318.39 GB of 458.09 GB (69.5%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     xfs_attr.h (5.95 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
/*
 * Copyright (c) 2000 Silicon Graphics, Inc.  All Rights Reserved.
 * 
 * This program is free software; you can redistribute it and/or modify it
 * under the terms of version 2 of the GNU General Public License as
 * published by the Free Software Foundation.
 * 
 * This program is distributed in the hope that it would be useful, but
 * WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 * 
 * Further, this software is distributed without any warranty that it is
 * free of the rightful claim of any third person regarding infringement
 * or the like.  Any license provided herein, whether implied or
 * otherwise, applies only to this software file.  Patent licenses, if
 * any, provided herein do not apply to combinations of this program with
 * other software, or any other product whatsoever.
 * 
 * You should have received a copy of the GNU General Public License along
 * with this program; if not, write the Free Software Foundation, Inc., 59
 * Temple Place - Suite 330, Boston MA 02111-1307, USA.
 * 
 * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy,
 * Mountain View, CA  94043, or:
 * 
 * http://www.sgi.com 
 * 
 * For further information regarding this notice, see: 
 * 
 * http://oss.sgi.com/projects/GenInfo/SGIGPLNoticeExplan/
 */
#ifndef __XFS_ATTR_H__
#define    __XFS_ATTR_H__

/*
 * xfs_attr.h
 *
 * Large attribute lists are structured around Btrees where all the data
 * elements are in the leaf nodes.  Attribute names are hashed into an int,
 * then that int is used as the index into the Btree.  Since the hashval
 * of an attribute name may not be unique, we may have duplicate keys.
 * The internal links in the Btree are logical block offsets into the file.
 *
 * Small attribute lists use a different format and are packed as tightly
 * as possible so as to fit into the literal area of the inode.
 */

#ifdef XFS_ALL_TRACE
#define    XFS_ATTR_TRACE
#endif

#if !defined(DEBUG)
#undef XFS_ATTR_TRACE
#endif


/*========================================================================
 * External interfaces
 *========================================================================*/

#define ATTR_ROOT    0x0002    /* use attrs in root namespace, not user */
#define ATTR_CREATE    0x0010    /* pure create: fail if attr already exists */
#define ATTR_REPLACE    0x0020    /* pure set: fail if attr does not exist */
#define ATTR_KERNOTIME    0x1000    /* [kernel] don't update inode timestamps */
#define ATTR_KERNOVAL    0x2000    /* [kernel] get attr size only, not value */
#define ATTR_KERNAMELS    0x4000    /* [kernel] list attr names (simple list) */
#define ATTR_KERNFULLS    0x8000    /* [kernel] full attr list, ie. root+user */

/*
 * The maximum size (into the kernel or returned from the kernel) of an
 * attribute value or the buffer used for an attr_list() call.  Larger
 * sizes will result in an E2BIG return code.
 */
#define    ATTR_MAX_VALUELEN    (64*1024)    /* max length of a value */

/*
 * Define how lists of attribute names are returned to the user from
 * the attr_list() call.  A large, 32bit aligned, buffer is passed in
 * along with its size.  We put an array of offsets at the top that each
 * reference an attrlist_ent_t and pack the attrlist_ent_t's at the bottom.
 */
typedef struct attrlist {
    __s32    al_count;    /* number of entries in attrlist */
    __s32    al_more;    /* T/F: more attrs (do call again) */
    __s32    al_offset[1];    /* byte offsets of attrs [var-sized] */
} attrlist_t;

/*
 * Show the interesting info about one attribute.  This is what the
 * al_offset[i] entry points to.
 */
typedef struct attrlist_ent {    /* data from attr_list() */
    __u32    a_valuelen;    /* number bytes in value of attr */
    char    a_name[1];    /* attr name (NULL terminated) */
} attrlist_ent_t;

/*
 * Given a pointer to the (char*) buffer containing the attr_list() result,
 * and an index, return a pointer to the indicated attribute in the buffer.
 */
#define    ATTR_ENTRY(buffer, index)        \
    ((attrlist_ent_t *)            \
     &((char *)buffer)[ ((attrlist_t *)(buffer))->al_offset[index] ])

/*
 * Multi-attribute operation vector.
 */
typedef struct attr_multiop {
    int    am_opcode;    /* operation to perform (ATTR_OP_GET, etc.) */
    int    am_error;    /* [out arg] result of this sub-op (an errno) */
    char    *am_attrname;    /* attribute name to work with */
    char    *am_attrvalue;    /* [in/out arg] attribute value (raw bytes) */
    int    am_length;    /* [in/out arg] length of value */
    int    am_flags;    /* bitwise OR of attr API flags defined above */
} attr_multiop_t;

#define ATTR_OP_GET    1    /* return the indicated attr's value */
#define ATTR_OP_SET    2    /* set/create the indicated attr/value pair */
#define ATTR_OP_REMOVE    3    /* remove the indicated attr */

/*
 * Kernel-internal version of the attrlist cursor.
 */
typedef struct attrlist_cursor_kern {
    __u32    hashval;    /* hash value of next entry to add */
    __u32    blkno;        /* block containing entry (suggestion) */
    __u32    offset;        /* offset in list of equal-hashvals */
    __u16    pad1;        /* padding to match user-level */
    __u8    pad2;        /* padding to match user-level */
    __u8    initted;    /* T/F: cursor has been initialized */
} attrlist_cursor_kern_t;


/*========================================================================
 * Function prototypes for the kernel.
 *========================================================================*/

struct cred;
struct vnode;
struct xfs_inode;
struct attrlist_cursor_kern;
struct xfs_ext_attr;
struct xfs_da_args;

/*
 * Overall external interface routines.
 */
int xfs_attr_get(bhv_desc_t *, char *, char *, int *, int, struct cred *);
int xfs_attr_set(bhv_desc_t *, char *, char *, int, int, struct cred *);
int xfs_attr_remove(bhv_desc_t *, char *, int, struct cred *);
int xfs_attr_list(bhv_desc_t *, char *, int, int,
             struct attrlist_cursor_kern *, struct cred *);
int xfs_attr_inactive(struct xfs_inode *dp);

int xfs_attr_node_get(struct xfs_da_args *);
int xfs_attr_leaf_get(struct xfs_da_args *);
int xfs_attr_shortform_getvalue(struct xfs_da_args *);
int xfs_attr_fetch(struct xfs_inode *, char *, char *, int);

#endif    /* __XFS_ATTR_H__ */

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 1.0 pre-release build #13 powered by Captain Crunch Security Team | http://ccteam.ru | Generation time: 0.0048 ]--