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  }