1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */ 2*4882a593Smuzhiyun #ifndef _ASM_POWERPC_STAT_H 3*4882a593Smuzhiyun #define _ASM_POWERPC_STAT_H 4*4882a593Smuzhiyun /* 5*4882a593Smuzhiyun * This program is free software; you can redistribute it and/or 6*4882a593Smuzhiyun * modify it under the terms of the GNU General Public License 7*4882a593Smuzhiyun * as published by the Free Software Foundation; either version 8*4882a593Smuzhiyun * 2 of the License, or (at your option) any later version. 9*4882a593Smuzhiyun */ 10*4882a593Smuzhiyun #include <linux/types.h> 11*4882a593Smuzhiyun 12*4882a593Smuzhiyun #define STAT_HAVE_NSEC 1 13*4882a593Smuzhiyun 14*4882a593Smuzhiyun #ifndef __powerpc64__ 15*4882a593Smuzhiyun struct __old_kernel_stat { 16*4882a593Smuzhiyun unsigned short st_dev; 17*4882a593Smuzhiyun unsigned short st_ino; 18*4882a593Smuzhiyun unsigned short st_mode; 19*4882a593Smuzhiyun unsigned short st_nlink; 20*4882a593Smuzhiyun unsigned short st_uid; 21*4882a593Smuzhiyun unsigned short st_gid; 22*4882a593Smuzhiyun unsigned short st_rdev; 23*4882a593Smuzhiyun unsigned long st_size; 24*4882a593Smuzhiyun unsigned long st_atime; 25*4882a593Smuzhiyun unsigned long st_mtime; 26*4882a593Smuzhiyun unsigned long st_ctime; 27*4882a593Smuzhiyun }; 28*4882a593Smuzhiyun #endif /* !__powerpc64__ */ 29*4882a593Smuzhiyun 30*4882a593Smuzhiyun struct stat { 31*4882a593Smuzhiyun unsigned long st_dev; 32*4882a593Smuzhiyun ino_t st_ino; 33*4882a593Smuzhiyun #ifdef __powerpc64__ 34*4882a593Smuzhiyun unsigned long st_nlink; 35*4882a593Smuzhiyun mode_t st_mode; 36*4882a593Smuzhiyun #else 37*4882a593Smuzhiyun mode_t st_mode; 38*4882a593Smuzhiyun unsigned short st_nlink; 39*4882a593Smuzhiyun #endif 40*4882a593Smuzhiyun uid_t st_uid; 41*4882a593Smuzhiyun gid_t st_gid; 42*4882a593Smuzhiyun unsigned long st_rdev; 43*4882a593Smuzhiyun long st_size; 44*4882a593Smuzhiyun unsigned long st_blksize; 45*4882a593Smuzhiyun unsigned long st_blocks; 46*4882a593Smuzhiyun unsigned long st_atime; 47*4882a593Smuzhiyun unsigned long st_atime_nsec; 48*4882a593Smuzhiyun unsigned long st_mtime; 49*4882a593Smuzhiyun unsigned long st_mtime_nsec; 50*4882a593Smuzhiyun unsigned long st_ctime; 51*4882a593Smuzhiyun unsigned long st_ctime_nsec; 52*4882a593Smuzhiyun unsigned long __unused4; 53*4882a593Smuzhiyun unsigned long __unused5; 54*4882a593Smuzhiyun #ifdef __powerpc64__ 55*4882a593Smuzhiyun unsigned long __unused6; 56*4882a593Smuzhiyun #endif 57*4882a593Smuzhiyun }; 58*4882a593Smuzhiyun 59*4882a593Smuzhiyun /* This matches struct stat64 in glibc2.1. Only used for 32 bit. */ 60*4882a593Smuzhiyun struct stat64 { 61*4882a593Smuzhiyun unsigned long long st_dev; /* Device. */ 62*4882a593Smuzhiyun unsigned long long st_ino; /* File serial number. */ 63*4882a593Smuzhiyun unsigned int st_mode; /* File mode. */ 64*4882a593Smuzhiyun unsigned int st_nlink; /* Link count. */ 65*4882a593Smuzhiyun unsigned int st_uid; /* User ID of the file's owner. */ 66*4882a593Smuzhiyun unsigned int st_gid; /* Group ID of the file's group. */ 67*4882a593Smuzhiyun unsigned long long st_rdev; /* Device number, if device. */ 68*4882a593Smuzhiyun unsigned short __pad2; 69*4882a593Smuzhiyun long long st_size; /* Size of file, in bytes. */ 70*4882a593Smuzhiyun int st_blksize; /* Optimal block size for I/O. */ 71*4882a593Smuzhiyun long long st_blocks; /* Number 512-byte blocks allocated. */ 72*4882a593Smuzhiyun int st_atime; /* Time of last access. */ 73*4882a593Smuzhiyun unsigned int st_atime_nsec; 74*4882a593Smuzhiyun int st_mtime; /* Time of last modification. */ 75*4882a593Smuzhiyun unsigned int st_mtime_nsec; 76*4882a593Smuzhiyun int st_ctime; /* Time of last status change. */ 77*4882a593Smuzhiyun unsigned int st_ctime_nsec; 78*4882a593Smuzhiyun unsigned int __unused4; 79*4882a593Smuzhiyun unsigned int __unused5; 80*4882a593Smuzhiyun }; 81*4882a593Smuzhiyun 82*4882a593Smuzhiyun #endif /* _ASM_POWERPC_STAT_H */ 83