fuse_kernel_darwin.go 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. package fusekernel
  2. import (
  3. "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. Crtime_ uint64 // OS X only
  13. AtimeNsec uint32
  14. MtimeNsec uint32
  15. CtimeNsec uint32
  16. CrtimeNsec uint32 // OS X only
  17. Mode uint32
  18. Nlink uint32
  19. Uid uint32
  20. Gid uint32
  21. Rdev uint32
  22. Flags_ uint32 // OS X only; see chflags(2)
  23. Blksize uint32
  24. padding uint32
  25. }
  26. func (a *Attr) SetCrtime(s uint64, ns uint32) {
  27. a.Crtime_, a.CrtimeNsec = s, ns
  28. }
  29. func (a *Attr) SetFlags(f uint32) {
  30. a.Flags_ = f
  31. }
  32. type SetattrIn struct {
  33. setattrInCommon
  34. // OS X only
  35. Bkuptime_ uint64
  36. Chgtime_ uint64
  37. Crtime uint64
  38. BkuptimeNsec uint32
  39. ChgtimeNsec uint32
  40. CrtimeNsec uint32
  41. Flags_ uint32 // see chflags(2)
  42. }
  43. func (in *SetattrIn) BkupTime() time.Time {
  44. return time.Unix(int64(in.Bkuptime_), int64(in.BkuptimeNsec))
  45. }
  46. func (in *SetattrIn) Chgtime() time.Time {
  47. return time.Unix(int64(in.Chgtime_), int64(in.ChgtimeNsec))
  48. }
  49. func (in *SetattrIn) Flags() uint32 {
  50. return in.Flags_
  51. }
  52. func openFlags(flags uint32) OpenFlags {
  53. return OpenFlags(flags)
  54. }
  55. type GetxattrIn struct {
  56. getxattrInCommon
  57. // OS X only
  58. Position uint32
  59. Padding uint32
  60. }
  61. func (g *GetxattrIn) GetPosition() uint32 {
  62. return g.Position
  63. }
  64. type SetxattrIn struct {
  65. setxattrInCommon
  66. // OS X only
  67. Position uint32
  68. Padding uint32
  69. }
  70. func (s *SetxattrIn) GetPosition() uint32 {
  71. return s.Position
  72. }