1*6f52b16cSGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ 21da177e4SLinus Torvalds /* 31da177e4SLinus Torvalds * S390 version 41da177e4SLinus Torvalds * 51da177e4SLinus Torvalds * Derived from "include/asm-i386/stat.h" 61da177e4SLinus Torvalds */ 71da177e4SLinus Torvalds 81da177e4SLinus Torvalds #ifndef _S390_STAT_H 91da177e4SLinus Torvalds #define _S390_STAT_H 101da177e4SLinus Torvalds 111da177e4SLinus Torvalds #ifndef __s390x__ 121da177e4SLinus Torvalds struct __old_kernel_stat { 131da177e4SLinus Torvalds unsigned short st_dev; 141da177e4SLinus Torvalds unsigned short st_ino; 151da177e4SLinus Torvalds unsigned short st_mode; 161da177e4SLinus Torvalds unsigned short st_nlink; 171da177e4SLinus Torvalds unsigned short st_uid; 181da177e4SLinus Torvalds unsigned short st_gid; 191da177e4SLinus Torvalds unsigned short st_rdev; 201da177e4SLinus Torvalds unsigned long st_size; 211da177e4SLinus Torvalds unsigned long st_atime; 221da177e4SLinus Torvalds unsigned long st_mtime; 231da177e4SLinus Torvalds unsigned long st_ctime; 241da177e4SLinus Torvalds }; 251da177e4SLinus Torvalds 261da177e4SLinus Torvalds struct stat { 271da177e4SLinus Torvalds unsigned short st_dev; 281da177e4SLinus Torvalds unsigned short __pad1; 291da177e4SLinus Torvalds unsigned long st_ino; 301da177e4SLinus Torvalds unsigned short st_mode; 311da177e4SLinus Torvalds unsigned short st_nlink; 321da177e4SLinus Torvalds unsigned short st_uid; 331da177e4SLinus Torvalds unsigned short st_gid; 341da177e4SLinus Torvalds unsigned short st_rdev; 351da177e4SLinus Torvalds unsigned short __pad2; 361da177e4SLinus Torvalds unsigned long st_size; 371da177e4SLinus Torvalds unsigned long st_blksize; 381da177e4SLinus Torvalds unsigned long st_blocks; 391da177e4SLinus Torvalds unsigned long st_atime; 401da177e4SLinus Torvalds unsigned long st_atime_nsec; 411da177e4SLinus Torvalds unsigned long st_mtime; 421da177e4SLinus Torvalds unsigned long st_mtime_nsec; 431da177e4SLinus Torvalds unsigned long st_ctime; 441da177e4SLinus Torvalds unsigned long st_ctime_nsec; 451da177e4SLinus Torvalds unsigned long __unused4; 461da177e4SLinus Torvalds unsigned long __unused5; 471da177e4SLinus Torvalds }; 481da177e4SLinus Torvalds 491da177e4SLinus Torvalds /* This matches struct stat64 in glibc2.1, hence the absolutely 501da177e4SLinus Torvalds * insane amounts of padding around dev_t's. 511da177e4SLinus Torvalds */ 521da177e4SLinus Torvalds struct stat64 { 531da177e4SLinus Torvalds unsigned long long st_dev; 541da177e4SLinus Torvalds unsigned int __pad1; 551da177e4SLinus Torvalds #define STAT64_HAS_BROKEN_ST_INO 1 561da177e4SLinus Torvalds unsigned long __st_ino; 571da177e4SLinus Torvalds unsigned int st_mode; 581da177e4SLinus Torvalds unsigned int st_nlink; 591da177e4SLinus Torvalds unsigned long st_uid; 601da177e4SLinus Torvalds unsigned long st_gid; 611da177e4SLinus Torvalds unsigned long long st_rdev; 621da177e4SLinus Torvalds unsigned int __pad3; 631da177e4SLinus Torvalds long long st_size; 641da177e4SLinus Torvalds unsigned long st_blksize; 651da177e4SLinus Torvalds unsigned char __pad4[4]; 661da177e4SLinus Torvalds unsigned long __pad5; /* future possible st_blocks high bits */ 671da177e4SLinus Torvalds unsigned long st_blocks; /* Number 512-byte blocks allocated. */ 681da177e4SLinus Torvalds unsigned long st_atime; 691da177e4SLinus Torvalds unsigned long st_atime_nsec; 701da177e4SLinus Torvalds unsigned long st_mtime; 711da177e4SLinus Torvalds unsigned long st_mtime_nsec; 721da177e4SLinus Torvalds unsigned long st_ctime; 731da177e4SLinus Torvalds unsigned long st_ctime_nsec; /* will be high 32 bits of ctime someday */ 741da177e4SLinus Torvalds unsigned long long st_ino; 751da177e4SLinus Torvalds }; 761da177e4SLinus Torvalds 771da177e4SLinus Torvalds #else /* __s390x__ */ 781da177e4SLinus Torvalds 791da177e4SLinus Torvalds struct stat { 801da177e4SLinus Torvalds unsigned long st_dev; 811da177e4SLinus Torvalds unsigned long st_ino; 821da177e4SLinus Torvalds unsigned long st_nlink; 831da177e4SLinus Torvalds unsigned int st_mode; 841da177e4SLinus Torvalds unsigned int st_uid; 851da177e4SLinus Torvalds unsigned int st_gid; 861da177e4SLinus Torvalds unsigned int __pad1; 871da177e4SLinus Torvalds unsigned long st_rdev; 881da177e4SLinus Torvalds unsigned long st_size; 891da177e4SLinus Torvalds unsigned long st_atime; 901da177e4SLinus Torvalds unsigned long st_atime_nsec; 911da177e4SLinus Torvalds unsigned long st_mtime; 921da177e4SLinus Torvalds unsigned long st_mtime_nsec; 931da177e4SLinus Torvalds unsigned long st_ctime; 941da177e4SLinus Torvalds unsigned long st_ctime_nsec; 951da177e4SLinus Torvalds unsigned long st_blksize; 961da177e4SLinus Torvalds long st_blocks; 971da177e4SLinus Torvalds unsigned long __unused[3]; 981da177e4SLinus Torvalds }; 991da177e4SLinus Torvalds 1001da177e4SLinus Torvalds #endif /* __s390x__ */ 1011da177e4SLinus Torvalds 1021da177e4SLinus Torvalds #define STAT_HAVE_NSEC 1 1031da177e4SLinus Torvalds 1041da177e4SLinus Torvalds #endif 105