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

stat.h (3015B)


      1/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
      2/*
      3 * This file is subject to the terms and conditions of the GNU General Public
      4 * License.  See the file "COPYING" in the main directory of this archive
      5 * for more details.
      6 *
      7 * Copyright (C) 1995, 1999, 2000 Ralf Baechle
      8 * Copyright (C) 2000 Silicon Graphics, Inc.
      9 */
     10#ifndef _ASM_STAT_H
     11#define _ASM_STAT_H
     12
     13#include <linux/types.h>
     14
     15#include <asm/sgidefs.h>
     16
     17#if (_MIPS_SIM == _MIPS_SIM_ABI32) || (_MIPS_SIM == _MIPS_SIM_NABI32)
     18
     19struct stat {
     20	unsigned	st_dev;
     21	long		st_pad1[3];		/* Reserved for network id */
     22	__kernel_ino_t	st_ino;
     23	__kernel_mode_t	st_mode;
     24	__u32		st_nlink;
     25	__kernel_uid32_t st_uid;
     26	__kernel_gid32_t st_gid;
     27	unsigned	st_rdev;
     28	long		st_pad2[2];
     29	long		st_size;
     30	long		st_pad3;
     31	/*
     32	 * Actually this should be timestruc_t st_atime, st_mtime and st_ctime
     33	 * but we don't have it under Linux.
     34	 */
     35	long		st_atime;
     36	long		st_atime_nsec;
     37	long		st_mtime;
     38	long		st_mtime_nsec;
     39	long		st_ctime;
     40	long		st_ctime_nsec;
     41	long		st_blksize;
     42	long		st_blocks;
     43	long		st_pad4[14];
     44};
     45
     46/*
     47 * This matches struct stat64 in glibc2.1, hence the absolutely insane
     48 * amounts of padding around dev_t's.  The memory layout is the same as of
     49 * struct stat of the 64-bit kernel.
     50 */
     51
     52struct stat64 {
     53	unsigned long	st_dev;
     54	unsigned long	st_pad0[3];	/* Reserved for st_dev expansion  */
     55
     56	unsigned long long	st_ino;
     57
     58	__kernel_mode_t	st_mode;
     59	__u32		st_nlink;
     60
     61	__kernel_uid32_t st_uid;
     62	__kernel_gid32_t st_gid;
     63
     64	unsigned long	st_rdev;
     65	unsigned long	st_pad1[3];	/* Reserved for st_rdev expansion  */
     66
     67	long long	st_size;
     68
     69	/*
     70	 * Actually this should be timestruc_t st_atime, st_mtime and st_ctime
     71	 * but we don't have it under Linux.
     72	 */
     73	long		st_atime;
     74	unsigned long	st_atime_nsec;	/* Reserved for st_atime expansion  */
     75
     76	long		st_mtime;
     77	unsigned long	st_mtime_nsec;	/* Reserved for st_mtime expansion  */
     78
     79	long		st_ctime;
     80	unsigned long	st_ctime_nsec;	/* Reserved for st_ctime expansion  */
     81
     82	unsigned long	st_blksize;
     83	unsigned long	st_pad2;
     84
     85	long long	st_blocks;
     86};
     87
     88#endif /* _MIPS_SIM == _MIPS_SIM_ABI32 */
     89
     90#if _MIPS_SIM == _MIPS_SIM_ABI64
     91
     92/* The memory layout is the same as of struct stat64 of the 32-bit kernel.  */
     93struct stat {
     94	unsigned int		st_dev;
     95	unsigned int		st_pad0[3]; /* Reserved for st_dev expansion */
     96
     97	unsigned long		st_ino;
     98
     99	__kernel_mode_t		st_mode;
    100	__u32			st_nlink;
    101
    102	__kernel_uid32_t	st_uid;
    103	__kernel_gid32_t	st_gid;
    104
    105	unsigned int		st_rdev;
    106	unsigned int		st_pad1[3]; /* Reserved for st_rdev expansion */
    107
    108	long			st_size;
    109
    110	/*
    111	 * Actually this should be timestruc_t st_atime, st_mtime and st_ctime
    112	 * but we don't have it under Linux.
    113	 */
    114	unsigned int		st_atime;
    115	unsigned int		st_atime_nsec;
    116
    117	unsigned int		st_mtime;
    118	unsigned int		st_mtime_nsec;
    119
    120	unsigned int		st_ctime;
    121	unsigned int		st_ctime_nsec;
    122
    123	unsigned int		st_blksize;
    124	unsigned int		st_pad2;
    125
    126	unsigned long		st_blocks;
    127};
    128
    129#endif /* _MIPS_SIM == _MIPS_SIM_ABI64 */
    130
    131#define STAT_HAVE_NSEC 1
    132
    133#endif /* _ASM_STAT_H */