unix: add additional file mode bit constants from sys/stat.h on Solaris
Also generate the constants using mkerrors.sh instead of having to list
each of them manually in types_solaris.go
In order to avoid _*_MAGIC constants being generated, also adjust the
corresponding rule in mkerrors.sh
Change-Id: If9193b12c2a2ec3b509a324be78329fee35a240d
Reviewed-on: https://go-review.googlesource.com/130355
Run-TryBot: Tobias Klauser <tobias.klauser@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
diff --git a/unix/mkerrors.sh b/unix/mkerrors.sh
index 9ecd372..1243437ad 100755
--- a/unix/mkerrors.sh
+++ b/unix/mkerrors.sh
@@ -296,6 +296,7 @@
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/sockio.h>
+#include <sys/stat.h>
#include <sys/mman.h>
#include <sys/wait.h>
#include <sys/ioctl.h>
@@ -437,7 +438,7 @@
$2 ~ /^SECCOMP_MODE_/ ||
$2 ~ /^SPLICE_/ ||
$2 !~ /^AUDIT_RECORD_MAGIC/ &&
- $2 ~ /^[A-Z0-9_]+_MAGIC2?$/ ||
+ $2 ~ /^[A-Z][A-Z0-9_]+_MAGIC2?$/ ||
$2 ~ /^(VM|VMADDR)_/ ||
$2 ~ /^IOCTL_VM_SOCKETS_/ ||
$2 ~ /^(TASKSTATS|TS)_/ ||
diff --git a/unix/types_solaris.go b/unix/types_solaris.go
index f777155..8cef71b 100644
--- a/unix/types_solaris.go
+++ b/unix/types_solaris.go
@@ -118,23 +118,6 @@
// Files
-const ( // Directory mode bits
- S_IFMT = C.S_IFMT
- S_IFIFO = C.S_IFIFO
- S_IFCHR = C.S_IFCHR
- S_IFDIR = C.S_IFDIR
- S_IFBLK = C.S_IFBLK
- S_IFREG = C.S_IFREG
- S_IFLNK = C.S_IFLNK
- S_IFSOCK = C.S_IFSOCK
- S_ISUID = C.S_ISUID
- S_ISGID = C.S_ISGID
- S_ISVTX = C.S_ISVTX
- S_IRUSR = C.S_IRUSR
- S_IWUSR = C.S_IWUSR
- S_IXUSR = C.S_IXUSR
-)
-
type Stat_t C.struct_stat
type Flock_t C.struct_flock
diff --git a/unix/zerrors_solaris_amd64.go b/unix/zerrors_solaris_amd64.go
index be42830..22569db 100644
--- a/unix/zerrors_solaris_amd64.go
+++ b/unix/zerrors_solaris_amd64.go
@@ -996,6 +996,39 @@
SO_USELOOPBACK = 0x40
SO_VRRP = 0x1017
SO_WROFF = 0x2
+ S_ENFMT = 0x400
+ S_IAMB = 0x1ff
+ S_IEXEC = 0x40
+ S_IFBLK = 0x6000
+ S_IFCHR = 0x2000
+ S_IFDIR = 0x4000
+ S_IFDOOR = 0xd000
+ S_IFIFO = 0x1000
+ S_IFLNK = 0xa000
+ S_IFMT = 0xf000
+ S_IFNAM = 0x5000
+ S_IFPORT = 0xe000
+ S_IFREG = 0x8000
+ S_IFSOCK = 0xc000
+ S_INSEM = 0x1
+ S_INSHD = 0x2
+ S_IREAD = 0x100
+ S_IRGRP = 0x20
+ S_IROTH = 0x4
+ S_IRUSR = 0x100
+ S_IRWXG = 0x38
+ S_IRWXO = 0x7
+ S_IRWXU = 0x1c0
+ S_ISGID = 0x400
+ S_ISUID = 0x800
+ S_ISVTX = 0x200
+ S_IWGRP = 0x10
+ S_IWOTH = 0x2
+ S_IWRITE = 0x80
+ S_IWUSR = 0x80
+ S_IXGRP = 0x8
+ S_IXOTH = 0x1
+ S_IXUSR = 0x40
TAB0 = 0x0
TAB1 = 0x800
TAB2 = 0x1000
@@ -1102,6 +1135,8 @@
TIOCSTOP = 0x746f
TIOCSWINSZ = 0x5467
TOSTOP = 0x100
+ UTIME_NOW = -0x1
+ UTIME_OMIT = -0x2
VCEOF = 0x8
VCEOL = 0x9
VDISCARD = 0xd
diff --git a/unix/ztypes_solaris_amd64.go b/unix/ztypes_solaris_amd64.go
index 2248598..0543e1a 100644
--- a/unix/ztypes_solaris_amd64.go
+++ b/unix/ztypes_solaris_amd64.go
@@ -75,23 +75,6 @@
type _Gid_t uint32
-const (
- S_IFMT = 0xf000
- S_IFIFO = 0x1000
- S_IFCHR = 0x2000
- S_IFDIR = 0x4000
- S_IFBLK = 0x6000
- S_IFREG = 0x8000
- S_IFLNK = 0xa000
- S_IFSOCK = 0xc000
- S_ISUID = 0x800
- S_ISGID = 0x400
- S_ISVTX = 0x200
- S_IRUSR = 0x100
- S_IWUSR = 0x80
- S_IXUSR = 0x40
-)
-
type Stat_t struct {
Dev uint64
Ino uint64