github.com/scaleoutsean/fusego@v0.0.0-20220224074057-4a6429e46bb8/internal/fusekernel/fuse_kernel_linux.go (about) 1 package fusekernel 2 3 import "time" 4 5 type Attr struct { 6 Ino uint64 7 Size uint64 8 Blocks uint64 9 Atime uint64 10 Mtime uint64 11 Ctime uint64 12 AtimeNsec uint32 13 MtimeNsec uint32 14 CtimeNsec uint32 15 Mode uint32 16 Nlink uint32 17 Uid uint32 18 Gid uint32 19 Rdev uint32 20 Blksize uint32 21 padding uint32 22 } 23 24 func (a *Attr) Crtime() time.Time { 25 return time.Time{} 26 } 27 28 func (a *Attr) SetCrtime(s uint64, ns uint32) { 29 // Ignored on Linux. 30 } 31 32 func (a *Attr) SetFlags(f uint32) { 33 // Ignored on Linux. 34 } 35 36 type SetattrIn struct { 37 setattrInCommon 38 } 39 40 func (in *SetattrIn) BkupTime() time.Time { 41 return time.Time{} 42 } 43 44 func (in *SetattrIn) Chgtime() time.Time { 45 return time.Time{} 46 } 47 48 func (in *SetattrIn) Flags() uint32 { 49 return 0 50 } 51 52 func openFlags(flags uint32) OpenFlags { 53 // on amd64, the 32-bit O_LARGEFILE flag is always seen; 54 // on i386, the flag probably depends on the app 55 // requesting, but in any case should be utterly 56 // uninteresting to us here; our kernel protocol messages 57 // are not directly related to the client app's kernel 58 // API/ABI 59 flags &^= 0x8000 60 61 return OpenFlags(flags) 62 } 63 64 type GetxattrIn struct { 65 getxattrInCommon 66 } 67 68 type SetxattrIn struct { 69 setxattrInCommon 70 }