cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

jfs_xattr.h (1880B)


      1/* SPDX-License-Identifier: GPL-2.0-or-later */
      2/*
      3 *   Copyright (C) International Business Machines Corp., 2000-2002
      4 */
      5
      6#ifndef H_JFS_XATTR
      7#define H_JFS_XATTR
      8
      9#include <linux/xattr.h>
     10
     11/*
     12 * jfs_ea_list describe the on-disk format of the extended attributes.
     13 * I know the null-terminator is redundant since namelen is stored, but
     14 * I am maintaining compatibility with OS/2 where possible.
     15 */
     16struct jfs_ea {
     17	u8 flag;	/* Unused? */
     18	u8 namelen;	/* Length of name */
     19	__le16 valuelen;	/* Length of value */
     20	char name[];	/* Attribute name (includes null-terminator) */
     21};			/* Value immediately follows name */
     22
     23struct jfs_ea_list {
     24	__le32 size;		/* overall size */
     25	struct jfs_ea ea[];	/* Variable length list */
     26};
     27
     28/* Macros for defining maxiumum number of bytes supported for EAs */
     29#define MAXEASIZE	65535
     30#define MAXEALISTSIZE	MAXEASIZE
     31
     32/*
     33 * some macros for dealing with variable length EA lists.
     34 */
     35#define EA_SIZE(ea) \
     36	(sizeof (struct jfs_ea) + (ea)->namelen + 1 + \
     37	 le16_to_cpu((ea)->valuelen))
     38#define	NEXT_EA(ea) ((struct jfs_ea *) (((char *) (ea)) + (EA_SIZE (ea))))
     39#define	FIRST_EA(ealist) ((ealist)->ea)
     40#define	EALIST_SIZE(ealist) le32_to_cpu((ealist)->size)
     41#define	END_EALIST(ealist) \
     42	((struct jfs_ea *) (((char *) (ealist)) + EALIST_SIZE(ealist)))
     43
     44extern int __jfs_setxattr(tid_t, struct inode *, const char *, const void *,
     45			  size_t, int);
     46extern ssize_t __jfs_getxattr(struct inode *, const char *, void *, size_t);
     47extern ssize_t jfs_listxattr(struct dentry *, char *, size_t);
     48
     49extern const struct xattr_handler *jfs_xattr_handlers[];
     50
     51#ifdef CONFIG_JFS_SECURITY
     52extern int jfs_init_security(tid_t, struct inode *, struct inode *,
     53			     const struct qstr *);
     54#else
     55static inline int jfs_init_security(tid_t tid, struct inode *inode,
     56				    struct inode *dir, const struct qstr *qstr)
     57{
     58	return 0;
     59}
     60#endif
     61
     62#endif	/* H_JFS_XATTR */