mirror of
https://github.com/rwinkhart/sys.git
synced 2026-08-28 04:46:44 -04:00
unix: use setattrlist for UtimesNano on Darwin for ns resolution
Follow CL 74952 for x/sys/unix. Update golang/go#22528 Change-Id: Id146da75b80a64cfa4eac28e9bb7b3befe944718 Reviewed-on: https://go-review.googlesource.com/75610 Run-TryBot: Tobias Klauser <tobias.klauser@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
This commit is contained in:
committed by
Brad Fitzpatrick
parent
95c6576299
commit
feaf45c67f
@@ -38,6 +38,8 @@ includes_Darwin='
|
|||||||
#define _DARWIN_C_SOURCE
|
#define _DARWIN_C_SOURCE
|
||||||
#define KERNEL
|
#define KERNEL
|
||||||
#define _DARWIN_USE_64_BIT_INODE
|
#define _DARWIN_USE_64_BIT_INODE
|
||||||
|
#include <stdint.h>
|
||||||
|
#include <sys/attr.h>
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include <sys/event.h>
|
#include <sys/event.h>
|
||||||
#include <sys/ptrace.h>
|
#include <sys/ptrace.h>
|
||||||
@@ -423,6 +425,7 @@ ccflags="$@"
|
|||||||
$2 ~ /^GENL_/ ||
|
$2 ~ /^GENL_/ ||
|
||||||
$2 ~ /^UTIME_/ ||
|
$2 ~ /^UTIME_/ ||
|
||||||
$2 ~ /^XATTR_(CREATE|REPLACE)/ ||
|
$2 ~ /^XATTR_(CREATE|REPLACE)/ ||
|
||||||
|
$2 ~ /^ATTR_(BIT_MAP_COUNT|(CMN|VOL|FILE)_)/ ||
|
||||||
$2 ~ /^WDIOC_/ ||
|
$2 ~ /^WDIOC_/ ||
|
||||||
$2 !~ "WMESGLEN" &&
|
$2 !~ "WMESGLEN" &&
|
||||||
$2 ~ /^W[A-Z0-9]+$/ ||
|
$2 ~ /^W[A-Z0-9]+$/ ||
|
||||||
|
|||||||
+6
-1
@@ -570,7 +570,12 @@ func UtimesNano(path string, ts []Timespec) error {
|
|||||||
if len(ts) != 2 {
|
if len(ts) != 2 {
|
||||||
return EINVAL
|
return EINVAL
|
||||||
}
|
}
|
||||||
err := utimensat(AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0)
|
// Darwin setattrlist can set nanosecond timestamps
|
||||||
|
err := setattrlistTimes(path, ts)
|
||||||
|
if err != ENOSYS {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
err = utimensat(AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0)
|
||||||
if err != ENOSYS {
|
if err != ENOSYS {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -187,6 +187,35 @@ func Getfsstat(buf []Statfs_t, flags int) (n int, err error) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func setattrlistTimes(path string, times []Timespec) error {
|
||||||
|
_p0, err := BytePtrFromString(path)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
var attrList attrList
|
||||||
|
attrList.bitmapCount = ATTR_BIT_MAP_COUNT
|
||||||
|
attrList.CommonAttr = ATTR_CMN_MODTIME | ATTR_CMN_ACCTIME
|
||||||
|
|
||||||
|
// order is mtime, atime: the opposite of Chtimes
|
||||||
|
attributes := [2]Timespec{times[1], times[0]}
|
||||||
|
|
||||||
|
const options = 0
|
||||||
|
_, _, e1 := Syscall6(
|
||||||
|
SYS_SETATTRLIST,
|
||||||
|
uintptr(unsafe.Pointer(_p0)),
|
||||||
|
uintptr(unsafe.Pointer(&attrList)),
|
||||||
|
uintptr(unsafe.Pointer(&attributes)),
|
||||||
|
uintptr(unsafe.Sizeof(attributes)),
|
||||||
|
uintptr(options),
|
||||||
|
0,
|
||||||
|
)
|
||||||
|
if e1 != 0 {
|
||||||
|
return e1
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
func utimensat(dirfd int, path string, times *[2]Timespec, flags int) error {
|
func utimensat(dirfd int, path string, times *[2]Timespec, flags int) error {
|
||||||
// Darwin doesn't support SYS_UTIMENSAT
|
// Darwin doesn't support SYS_UTIMENSAT
|
||||||
return ENOSYS
|
return ENOSYS
|
||||||
|
|||||||
@@ -125,6 +125,11 @@ func Getfsstat(buf []Statfs_t, flags int) (n int, err error) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func setattrlistTimes(path string, times []Timespec) error {
|
||||||
|
// used on Darwin for UtimesNano
|
||||||
|
return ENOSYS
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Exposed directly
|
* Exposed directly
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -120,6 +120,11 @@ func Getfsstat(buf []Statfs_t, flags int) (n int, err error) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func setattrlistTimes(path string, times []Timespec) error {
|
||||||
|
// used on Darwin for UtimesNano
|
||||||
|
return ENOSYS
|
||||||
|
}
|
||||||
|
|
||||||
// Derive extattr namespace and attribute name
|
// Derive extattr namespace and attribute name
|
||||||
|
|
||||||
func xattrnamespace(fullattr string) (ns int, attr string, err error) {
|
func xattrnamespace(fullattr string) (ns int, attr string, err error) {
|
||||||
|
|||||||
@@ -124,6 +124,11 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e
|
|||||||
return -1, ENOSYS
|
return -1, ENOSYS
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func setattrlistTimes(path string, times []Timespec) error {
|
||||||
|
// used on Darwin for UtimesNano
|
||||||
|
return ENOSYS
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Exposed directly
|
* Exposed directly
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -102,6 +102,11 @@ func Getfsstat(buf []Statfs_t, flags int) (n int, err error) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func setattrlistTimes(path string, times []Timespec) error {
|
||||||
|
// used on Darwin for UtimesNano
|
||||||
|
return ENOSYS
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Exposed directly
|
* Exposed directly
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -49,6 +49,86 @@ const (
|
|||||||
AF_UNSPEC = 0x0
|
AF_UNSPEC = 0x0
|
||||||
AF_UTUN = 0x26
|
AF_UTUN = 0x26
|
||||||
ALTWERASE = 0x200
|
ALTWERASE = 0x200
|
||||||
|
ATTR_BIT_MAP_COUNT = 0x5
|
||||||
|
ATTR_CMN_ACCESSMASK = 0x20000
|
||||||
|
ATTR_CMN_ACCTIME = 0x1000
|
||||||
|
ATTR_CMN_ADDEDTIME = 0x10000000
|
||||||
|
ATTR_CMN_BKUPTIME = 0x2000
|
||||||
|
ATTR_CMN_CHGTIME = 0x800
|
||||||
|
ATTR_CMN_CRTIME = 0x200
|
||||||
|
ATTR_CMN_DATA_PROTECT_FLAGS = 0x40000000
|
||||||
|
ATTR_CMN_DEVID = 0x2
|
||||||
|
ATTR_CMN_DOCUMENT_ID = 0x100000
|
||||||
|
ATTR_CMN_ERROR = 0x20000000
|
||||||
|
ATTR_CMN_EXTENDED_SECURITY = 0x400000
|
||||||
|
ATTR_CMN_FILEID = 0x2000000
|
||||||
|
ATTR_CMN_FLAGS = 0x40000
|
||||||
|
ATTR_CMN_FNDRINFO = 0x4000
|
||||||
|
ATTR_CMN_FSID = 0x4
|
||||||
|
ATTR_CMN_FULLPATH = 0x8000000
|
||||||
|
ATTR_CMN_GEN_COUNT = 0x80000
|
||||||
|
ATTR_CMN_GRPID = 0x10000
|
||||||
|
ATTR_CMN_GRPUUID = 0x1000000
|
||||||
|
ATTR_CMN_MODTIME = 0x400
|
||||||
|
ATTR_CMN_NAME = 0x1
|
||||||
|
ATTR_CMN_NAMEDATTRCOUNT = 0x80000
|
||||||
|
ATTR_CMN_NAMEDATTRLIST = 0x100000
|
||||||
|
ATTR_CMN_OBJID = 0x20
|
||||||
|
ATTR_CMN_OBJPERMANENTID = 0x40
|
||||||
|
ATTR_CMN_OBJTAG = 0x10
|
||||||
|
ATTR_CMN_OBJTYPE = 0x8
|
||||||
|
ATTR_CMN_OWNERID = 0x8000
|
||||||
|
ATTR_CMN_PARENTID = 0x4000000
|
||||||
|
ATTR_CMN_PAROBJID = 0x80
|
||||||
|
ATTR_CMN_RETURNED_ATTRS = 0x80000000
|
||||||
|
ATTR_CMN_SCRIPT = 0x100
|
||||||
|
ATTR_CMN_SETMASK = 0x41c7ff00
|
||||||
|
ATTR_CMN_USERACCESS = 0x200000
|
||||||
|
ATTR_CMN_UUID = 0x800000
|
||||||
|
ATTR_CMN_VALIDMASK = 0xffffffff
|
||||||
|
ATTR_CMN_VOLSETMASK = 0x6700
|
||||||
|
ATTR_FILE_ALLOCSIZE = 0x4
|
||||||
|
ATTR_FILE_CLUMPSIZE = 0x10
|
||||||
|
ATTR_FILE_DATAALLOCSIZE = 0x400
|
||||||
|
ATTR_FILE_DATAEXTENTS = 0x800
|
||||||
|
ATTR_FILE_DATALENGTH = 0x200
|
||||||
|
ATTR_FILE_DEVTYPE = 0x20
|
||||||
|
ATTR_FILE_FILETYPE = 0x40
|
||||||
|
ATTR_FILE_FORKCOUNT = 0x80
|
||||||
|
ATTR_FILE_FORKLIST = 0x100
|
||||||
|
ATTR_FILE_IOBLOCKSIZE = 0x8
|
||||||
|
ATTR_FILE_LINKCOUNT = 0x1
|
||||||
|
ATTR_FILE_RSRCALLOCSIZE = 0x2000
|
||||||
|
ATTR_FILE_RSRCEXTENTS = 0x4000
|
||||||
|
ATTR_FILE_RSRCLENGTH = 0x1000
|
||||||
|
ATTR_FILE_SETMASK = 0x20
|
||||||
|
ATTR_FILE_TOTALSIZE = 0x2
|
||||||
|
ATTR_FILE_VALIDMASK = 0x37ff
|
||||||
|
ATTR_VOL_ALLOCATIONCLUMP = 0x40
|
||||||
|
ATTR_VOL_ATTRIBUTES = 0x40000000
|
||||||
|
ATTR_VOL_CAPABILITIES = 0x20000
|
||||||
|
ATTR_VOL_DIRCOUNT = 0x400
|
||||||
|
ATTR_VOL_ENCODINGSUSED = 0x10000
|
||||||
|
ATTR_VOL_FILECOUNT = 0x200
|
||||||
|
ATTR_VOL_FSTYPE = 0x1
|
||||||
|
ATTR_VOL_INFO = 0x80000000
|
||||||
|
ATTR_VOL_IOBLOCKSIZE = 0x80
|
||||||
|
ATTR_VOL_MAXOBJCOUNT = 0x800
|
||||||
|
ATTR_VOL_MINALLOCATION = 0x20
|
||||||
|
ATTR_VOL_MOUNTEDDEVICE = 0x8000
|
||||||
|
ATTR_VOL_MOUNTFLAGS = 0x4000
|
||||||
|
ATTR_VOL_MOUNTPOINT = 0x1000
|
||||||
|
ATTR_VOL_NAME = 0x2000
|
||||||
|
ATTR_VOL_OBJCOUNT = 0x100
|
||||||
|
ATTR_VOL_QUOTA_SIZE = 0x10000000
|
||||||
|
ATTR_VOL_RESERVED_SIZE = 0x20000000
|
||||||
|
ATTR_VOL_SETMASK = 0x80002000
|
||||||
|
ATTR_VOL_SIGNATURE = 0x2
|
||||||
|
ATTR_VOL_SIZE = 0x4
|
||||||
|
ATTR_VOL_SPACEAVAIL = 0x10
|
||||||
|
ATTR_VOL_SPACEFREE = 0x8
|
||||||
|
ATTR_VOL_UUID = 0x40000
|
||||||
|
ATTR_VOL_VALIDMASK = 0xf007ffff
|
||||||
B0 = 0x0
|
B0 = 0x0
|
||||||
B110 = 0x6e
|
B110 = 0x6e
|
||||||
B115200 = 0x1c200
|
B115200 = 0x1c200
|
||||||
|
|||||||
@@ -49,6 +49,86 @@ const (
|
|||||||
AF_UNSPEC = 0x0
|
AF_UNSPEC = 0x0
|
||||||
AF_UTUN = 0x26
|
AF_UTUN = 0x26
|
||||||
ALTWERASE = 0x200
|
ALTWERASE = 0x200
|
||||||
|
ATTR_BIT_MAP_COUNT = 0x5
|
||||||
|
ATTR_CMN_ACCESSMASK = 0x20000
|
||||||
|
ATTR_CMN_ACCTIME = 0x1000
|
||||||
|
ATTR_CMN_ADDEDTIME = 0x10000000
|
||||||
|
ATTR_CMN_BKUPTIME = 0x2000
|
||||||
|
ATTR_CMN_CHGTIME = 0x800
|
||||||
|
ATTR_CMN_CRTIME = 0x200
|
||||||
|
ATTR_CMN_DATA_PROTECT_FLAGS = 0x40000000
|
||||||
|
ATTR_CMN_DEVID = 0x2
|
||||||
|
ATTR_CMN_DOCUMENT_ID = 0x100000
|
||||||
|
ATTR_CMN_ERROR = 0x20000000
|
||||||
|
ATTR_CMN_EXTENDED_SECURITY = 0x400000
|
||||||
|
ATTR_CMN_FILEID = 0x2000000
|
||||||
|
ATTR_CMN_FLAGS = 0x40000
|
||||||
|
ATTR_CMN_FNDRINFO = 0x4000
|
||||||
|
ATTR_CMN_FSID = 0x4
|
||||||
|
ATTR_CMN_FULLPATH = 0x8000000
|
||||||
|
ATTR_CMN_GEN_COUNT = 0x80000
|
||||||
|
ATTR_CMN_GRPID = 0x10000
|
||||||
|
ATTR_CMN_GRPUUID = 0x1000000
|
||||||
|
ATTR_CMN_MODTIME = 0x400
|
||||||
|
ATTR_CMN_NAME = 0x1
|
||||||
|
ATTR_CMN_NAMEDATTRCOUNT = 0x80000
|
||||||
|
ATTR_CMN_NAMEDATTRLIST = 0x100000
|
||||||
|
ATTR_CMN_OBJID = 0x20
|
||||||
|
ATTR_CMN_OBJPERMANENTID = 0x40
|
||||||
|
ATTR_CMN_OBJTAG = 0x10
|
||||||
|
ATTR_CMN_OBJTYPE = 0x8
|
||||||
|
ATTR_CMN_OWNERID = 0x8000
|
||||||
|
ATTR_CMN_PARENTID = 0x4000000
|
||||||
|
ATTR_CMN_PAROBJID = 0x80
|
||||||
|
ATTR_CMN_RETURNED_ATTRS = 0x80000000
|
||||||
|
ATTR_CMN_SCRIPT = 0x100
|
||||||
|
ATTR_CMN_SETMASK = 0x41c7ff00
|
||||||
|
ATTR_CMN_USERACCESS = 0x200000
|
||||||
|
ATTR_CMN_UUID = 0x800000
|
||||||
|
ATTR_CMN_VALIDMASK = 0xffffffff
|
||||||
|
ATTR_CMN_VOLSETMASK = 0x6700
|
||||||
|
ATTR_FILE_ALLOCSIZE = 0x4
|
||||||
|
ATTR_FILE_CLUMPSIZE = 0x10
|
||||||
|
ATTR_FILE_DATAALLOCSIZE = 0x400
|
||||||
|
ATTR_FILE_DATAEXTENTS = 0x800
|
||||||
|
ATTR_FILE_DATALENGTH = 0x200
|
||||||
|
ATTR_FILE_DEVTYPE = 0x20
|
||||||
|
ATTR_FILE_FILETYPE = 0x40
|
||||||
|
ATTR_FILE_FORKCOUNT = 0x80
|
||||||
|
ATTR_FILE_FORKLIST = 0x100
|
||||||
|
ATTR_FILE_IOBLOCKSIZE = 0x8
|
||||||
|
ATTR_FILE_LINKCOUNT = 0x1
|
||||||
|
ATTR_FILE_RSRCALLOCSIZE = 0x2000
|
||||||
|
ATTR_FILE_RSRCEXTENTS = 0x4000
|
||||||
|
ATTR_FILE_RSRCLENGTH = 0x1000
|
||||||
|
ATTR_FILE_SETMASK = 0x20
|
||||||
|
ATTR_FILE_TOTALSIZE = 0x2
|
||||||
|
ATTR_FILE_VALIDMASK = 0x37ff
|
||||||
|
ATTR_VOL_ALLOCATIONCLUMP = 0x40
|
||||||
|
ATTR_VOL_ATTRIBUTES = 0x40000000
|
||||||
|
ATTR_VOL_CAPABILITIES = 0x20000
|
||||||
|
ATTR_VOL_DIRCOUNT = 0x400
|
||||||
|
ATTR_VOL_ENCODINGSUSED = 0x10000
|
||||||
|
ATTR_VOL_FILECOUNT = 0x200
|
||||||
|
ATTR_VOL_FSTYPE = 0x1
|
||||||
|
ATTR_VOL_INFO = 0x80000000
|
||||||
|
ATTR_VOL_IOBLOCKSIZE = 0x80
|
||||||
|
ATTR_VOL_MAXOBJCOUNT = 0x800
|
||||||
|
ATTR_VOL_MINALLOCATION = 0x20
|
||||||
|
ATTR_VOL_MOUNTEDDEVICE = 0x8000
|
||||||
|
ATTR_VOL_MOUNTFLAGS = 0x4000
|
||||||
|
ATTR_VOL_MOUNTPOINT = 0x1000
|
||||||
|
ATTR_VOL_NAME = 0x2000
|
||||||
|
ATTR_VOL_OBJCOUNT = 0x100
|
||||||
|
ATTR_VOL_QUOTA_SIZE = 0x10000000
|
||||||
|
ATTR_VOL_RESERVED_SIZE = 0x20000000
|
||||||
|
ATTR_VOL_SETMASK = 0x80002000
|
||||||
|
ATTR_VOL_SIGNATURE = 0x2
|
||||||
|
ATTR_VOL_SIZE = 0x4
|
||||||
|
ATTR_VOL_SPACEAVAIL = 0x10
|
||||||
|
ATTR_VOL_SPACEFREE = 0x8
|
||||||
|
ATTR_VOL_UUID = 0x40000
|
||||||
|
ATTR_VOL_VALIDMASK = 0xf007ffff
|
||||||
B0 = 0x0
|
B0 = 0x0
|
||||||
B110 = 0x6e
|
B110 = 0x6e
|
||||||
B115200 = 0x1c200
|
B115200 = 0x1c200
|
||||||
|
|||||||
@@ -49,6 +49,86 @@ const (
|
|||||||
AF_UNSPEC = 0x0
|
AF_UNSPEC = 0x0
|
||||||
AF_UTUN = 0x26
|
AF_UTUN = 0x26
|
||||||
ALTWERASE = 0x200
|
ALTWERASE = 0x200
|
||||||
|
ATTR_BIT_MAP_COUNT = 0x5
|
||||||
|
ATTR_CMN_ACCESSMASK = 0x20000
|
||||||
|
ATTR_CMN_ACCTIME = 0x1000
|
||||||
|
ATTR_CMN_ADDEDTIME = 0x10000000
|
||||||
|
ATTR_CMN_BKUPTIME = 0x2000
|
||||||
|
ATTR_CMN_CHGTIME = 0x800
|
||||||
|
ATTR_CMN_CRTIME = 0x200
|
||||||
|
ATTR_CMN_DATA_PROTECT_FLAGS = 0x40000000
|
||||||
|
ATTR_CMN_DEVID = 0x2
|
||||||
|
ATTR_CMN_DOCUMENT_ID = 0x100000
|
||||||
|
ATTR_CMN_ERROR = 0x20000000
|
||||||
|
ATTR_CMN_EXTENDED_SECURITY = 0x400000
|
||||||
|
ATTR_CMN_FILEID = 0x2000000
|
||||||
|
ATTR_CMN_FLAGS = 0x40000
|
||||||
|
ATTR_CMN_FNDRINFO = 0x4000
|
||||||
|
ATTR_CMN_FSID = 0x4
|
||||||
|
ATTR_CMN_FULLPATH = 0x8000000
|
||||||
|
ATTR_CMN_GEN_COUNT = 0x80000
|
||||||
|
ATTR_CMN_GRPID = 0x10000
|
||||||
|
ATTR_CMN_GRPUUID = 0x1000000
|
||||||
|
ATTR_CMN_MODTIME = 0x400
|
||||||
|
ATTR_CMN_NAME = 0x1
|
||||||
|
ATTR_CMN_NAMEDATTRCOUNT = 0x80000
|
||||||
|
ATTR_CMN_NAMEDATTRLIST = 0x100000
|
||||||
|
ATTR_CMN_OBJID = 0x20
|
||||||
|
ATTR_CMN_OBJPERMANENTID = 0x40
|
||||||
|
ATTR_CMN_OBJTAG = 0x10
|
||||||
|
ATTR_CMN_OBJTYPE = 0x8
|
||||||
|
ATTR_CMN_OWNERID = 0x8000
|
||||||
|
ATTR_CMN_PARENTID = 0x4000000
|
||||||
|
ATTR_CMN_PAROBJID = 0x80
|
||||||
|
ATTR_CMN_RETURNED_ATTRS = 0x80000000
|
||||||
|
ATTR_CMN_SCRIPT = 0x100
|
||||||
|
ATTR_CMN_SETMASK = 0x41c7ff00
|
||||||
|
ATTR_CMN_USERACCESS = 0x200000
|
||||||
|
ATTR_CMN_UUID = 0x800000
|
||||||
|
ATTR_CMN_VALIDMASK = 0xffffffff
|
||||||
|
ATTR_CMN_VOLSETMASK = 0x6700
|
||||||
|
ATTR_FILE_ALLOCSIZE = 0x4
|
||||||
|
ATTR_FILE_CLUMPSIZE = 0x10
|
||||||
|
ATTR_FILE_DATAALLOCSIZE = 0x400
|
||||||
|
ATTR_FILE_DATAEXTENTS = 0x800
|
||||||
|
ATTR_FILE_DATALENGTH = 0x200
|
||||||
|
ATTR_FILE_DEVTYPE = 0x20
|
||||||
|
ATTR_FILE_FILETYPE = 0x40
|
||||||
|
ATTR_FILE_FORKCOUNT = 0x80
|
||||||
|
ATTR_FILE_FORKLIST = 0x100
|
||||||
|
ATTR_FILE_IOBLOCKSIZE = 0x8
|
||||||
|
ATTR_FILE_LINKCOUNT = 0x1
|
||||||
|
ATTR_FILE_RSRCALLOCSIZE = 0x2000
|
||||||
|
ATTR_FILE_RSRCEXTENTS = 0x4000
|
||||||
|
ATTR_FILE_RSRCLENGTH = 0x1000
|
||||||
|
ATTR_FILE_SETMASK = 0x20
|
||||||
|
ATTR_FILE_TOTALSIZE = 0x2
|
||||||
|
ATTR_FILE_VALIDMASK = 0x37ff
|
||||||
|
ATTR_VOL_ALLOCATIONCLUMP = 0x40
|
||||||
|
ATTR_VOL_ATTRIBUTES = 0x40000000
|
||||||
|
ATTR_VOL_CAPABILITIES = 0x20000
|
||||||
|
ATTR_VOL_DIRCOUNT = 0x400
|
||||||
|
ATTR_VOL_ENCODINGSUSED = 0x10000
|
||||||
|
ATTR_VOL_FILECOUNT = 0x200
|
||||||
|
ATTR_VOL_FSTYPE = 0x1
|
||||||
|
ATTR_VOL_INFO = 0x80000000
|
||||||
|
ATTR_VOL_IOBLOCKSIZE = 0x80
|
||||||
|
ATTR_VOL_MAXOBJCOUNT = 0x800
|
||||||
|
ATTR_VOL_MINALLOCATION = 0x20
|
||||||
|
ATTR_VOL_MOUNTEDDEVICE = 0x8000
|
||||||
|
ATTR_VOL_MOUNTFLAGS = 0x4000
|
||||||
|
ATTR_VOL_MOUNTPOINT = 0x1000
|
||||||
|
ATTR_VOL_NAME = 0x2000
|
||||||
|
ATTR_VOL_OBJCOUNT = 0x100
|
||||||
|
ATTR_VOL_QUOTA_SIZE = 0x10000000
|
||||||
|
ATTR_VOL_RESERVED_SIZE = 0x20000000
|
||||||
|
ATTR_VOL_SETMASK = 0x80002000
|
||||||
|
ATTR_VOL_SIGNATURE = 0x2
|
||||||
|
ATTR_VOL_SIZE = 0x4
|
||||||
|
ATTR_VOL_SPACEAVAIL = 0x10
|
||||||
|
ATTR_VOL_SPACEFREE = 0x8
|
||||||
|
ATTR_VOL_UUID = 0x40000
|
||||||
|
ATTR_VOL_VALIDMASK = 0xf007ffff
|
||||||
B0 = 0x0
|
B0 = 0x0
|
||||||
B110 = 0x6e
|
B110 = 0x6e
|
||||||
B115200 = 0x1c200
|
B115200 = 0x1c200
|
||||||
|
|||||||
@@ -49,6 +49,86 @@ const (
|
|||||||
AF_UNSPEC = 0x0
|
AF_UNSPEC = 0x0
|
||||||
AF_UTUN = 0x26
|
AF_UTUN = 0x26
|
||||||
ALTWERASE = 0x200
|
ALTWERASE = 0x200
|
||||||
|
ATTR_BIT_MAP_COUNT = 0x5
|
||||||
|
ATTR_CMN_ACCESSMASK = 0x20000
|
||||||
|
ATTR_CMN_ACCTIME = 0x1000
|
||||||
|
ATTR_CMN_ADDEDTIME = 0x10000000
|
||||||
|
ATTR_CMN_BKUPTIME = 0x2000
|
||||||
|
ATTR_CMN_CHGTIME = 0x800
|
||||||
|
ATTR_CMN_CRTIME = 0x200
|
||||||
|
ATTR_CMN_DATA_PROTECT_FLAGS = 0x40000000
|
||||||
|
ATTR_CMN_DEVID = 0x2
|
||||||
|
ATTR_CMN_DOCUMENT_ID = 0x100000
|
||||||
|
ATTR_CMN_ERROR = 0x20000000
|
||||||
|
ATTR_CMN_EXTENDED_SECURITY = 0x400000
|
||||||
|
ATTR_CMN_FILEID = 0x2000000
|
||||||
|
ATTR_CMN_FLAGS = 0x40000
|
||||||
|
ATTR_CMN_FNDRINFO = 0x4000
|
||||||
|
ATTR_CMN_FSID = 0x4
|
||||||
|
ATTR_CMN_FULLPATH = 0x8000000
|
||||||
|
ATTR_CMN_GEN_COUNT = 0x80000
|
||||||
|
ATTR_CMN_GRPID = 0x10000
|
||||||
|
ATTR_CMN_GRPUUID = 0x1000000
|
||||||
|
ATTR_CMN_MODTIME = 0x400
|
||||||
|
ATTR_CMN_NAME = 0x1
|
||||||
|
ATTR_CMN_NAMEDATTRCOUNT = 0x80000
|
||||||
|
ATTR_CMN_NAMEDATTRLIST = 0x100000
|
||||||
|
ATTR_CMN_OBJID = 0x20
|
||||||
|
ATTR_CMN_OBJPERMANENTID = 0x40
|
||||||
|
ATTR_CMN_OBJTAG = 0x10
|
||||||
|
ATTR_CMN_OBJTYPE = 0x8
|
||||||
|
ATTR_CMN_OWNERID = 0x8000
|
||||||
|
ATTR_CMN_PARENTID = 0x4000000
|
||||||
|
ATTR_CMN_PAROBJID = 0x80
|
||||||
|
ATTR_CMN_RETURNED_ATTRS = 0x80000000
|
||||||
|
ATTR_CMN_SCRIPT = 0x100
|
||||||
|
ATTR_CMN_SETMASK = 0x41c7ff00
|
||||||
|
ATTR_CMN_USERACCESS = 0x200000
|
||||||
|
ATTR_CMN_UUID = 0x800000
|
||||||
|
ATTR_CMN_VALIDMASK = 0xffffffff
|
||||||
|
ATTR_CMN_VOLSETMASK = 0x6700
|
||||||
|
ATTR_FILE_ALLOCSIZE = 0x4
|
||||||
|
ATTR_FILE_CLUMPSIZE = 0x10
|
||||||
|
ATTR_FILE_DATAALLOCSIZE = 0x400
|
||||||
|
ATTR_FILE_DATAEXTENTS = 0x800
|
||||||
|
ATTR_FILE_DATALENGTH = 0x200
|
||||||
|
ATTR_FILE_DEVTYPE = 0x20
|
||||||
|
ATTR_FILE_FILETYPE = 0x40
|
||||||
|
ATTR_FILE_FORKCOUNT = 0x80
|
||||||
|
ATTR_FILE_FORKLIST = 0x100
|
||||||
|
ATTR_FILE_IOBLOCKSIZE = 0x8
|
||||||
|
ATTR_FILE_LINKCOUNT = 0x1
|
||||||
|
ATTR_FILE_RSRCALLOCSIZE = 0x2000
|
||||||
|
ATTR_FILE_RSRCEXTENTS = 0x4000
|
||||||
|
ATTR_FILE_RSRCLENGTH = 0x1000
|
||||||
|
ATTR_FILE_SETMASK = 0x20
|
||||||
|
ATTR_FILE_TOTALSIZE = 0x2
|
||||||
|
ATTR_FILE_VALIDMASK = 0x37ff
|
||||||
|
ATTR_VOL_ALLOCATIONCLUMP = 0x40
|
||||||
|
ATTR_VOL_ATTRIBUTES = 0x40000000
|
||||||
|
ATTR_VOL_CAPABILITIES = 0x20000
|
||||||
|
ATTR_VOL_DIRCOUNT = 0x400
|
||||||
|
ATTR_VOL_ENCODINGSUSED = 0x10000
|
||||||
|
ATTR_VOL_FILECOUNT = 0x200
|
||||||
|
ATTR_VOL_FSTYPE = 0x1
|
||||||
|
ATTR_VOL_INFO = 0x80000000
|
||||||
|
ATTR_VOL_IOBLOCKSIZE = 0x80
|
||||||
|
ATTR_VOL_MAXOBJCOUNT = 0x800
|
||||||
|
ATTR_VOL_MINALLOCATION = 0x20
|
||||||
|
ATTR_VOL_MOUNTEDDEVICE = 0x8000
|
||||||
|
ATTR_VOL_MOUNTFLAGS = 0x4000
|
||||||
|
ATTR_VOL_MOUNTPOINT = 0x1000
|
||||||
|
ATTR_VOL_NAME = 0x2000
|
||||||
|
ATTR_VOL_OBJCOUNT = 0x100
|
||||||
|
ATTR_VOL_QUOTA_SIZE = 0x10000000
|
||||||
|
ATTR_VOL_RESERVED_SIZE = 0x20000000
|
||||||
|
ATTR_VOL_SETMASK = 0x80002000
|
||||||
|
ATTR_VOL_SIGNATURE = 0x2
|
||||||
|
ATTR_VOL_SIZE = 0x4
|
||||||
|
ATTR_VOL_SPACEAVAIL = 0x10
|
||||||
|
ATTR_VOL_SPACEFREE = 0x8
|
||||||
|
ATTR_VOL_UUID = 0x40000
|
||||||
|
ATTR_VOL_VALIDMASK = 0xf007ffff
|
||||||
B0 = 0x0
|
B0 = 0x0
|
||||||
B110 = 0x6e
|
B110 = 0x6e
|
||||||
B115200 = 0x1c200
|
B115200 = 0x1c200
|
||||||
|
|||||||
Reference in New Issue
Block a user