fuse_kernel_darwin.go 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. package fuse
  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) position() 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) position() uint32 {
  71. return s.Position
  72. }