Correct definition of SysV IPC structures.

PiperOrigin-RevId: 195849066
Change-Id: If2146c7ce649522f86e661c5e52a9983345d6967
This commit is contained in:
Jamie Liu
2018-05-08 11:26:36 -07:00
committed by Shentubot
parent 32cabad8da
commit 3ac3ea1d6a
2 changed files with 29 additions and 25 deletions
+20 -14
View File
@@ -14,7 +14,8 @@
package linux
// Control commands used with semctl. Source: //include/uapi/linux/ipc.h.
// Control commands used with semctl, shmctl, and msgctl. Source:
// include/uapi/linux/ipc.h.
const (
IPC_RMID = 0
IPC_SET = 1
@@ -22,7 +23,7 @@ const (
IPC_INFO = 3
)
// resource get request flags. Source: //include/uapi/linux/ipc.h
// resource get request flags. Source: include/uapi/linux/ipc.h
const (
IPC_CREAT = 00001000
IPC_EXCL = 00002000
@@ -31,17 +32,22 @@ const (
const IPC_PRIVATE = 0
// IPCPerm is equivalent to struct ipc_perm.
// In Linux, amd64 does not enable CONFIG_ARCH_WANT_IPC_PARSE_VERSION, so SysV
// IPC unconditionally uses the "new" 64-bit structures that are needed for
// features like 32-bit UIDs.
// IPCPerm is equivalent to struct ipc64_perm.
type IPCPerm struct {
Key uint32
UID uint32
GID uint32
CUID uint32
CGID uint32
Mode uint16
pad1 uint16
Seq uint16
pad2 uint16
reserved1 uint32
reserved2 uint32
Key uint32
UID uint32
GID uint32
CUID uint32
CGID uint32
Mode uint16
pad1 uint16
Seq uint16
pad2 uint16
pad3 uint32
unused1 uint64
unused2 uint64
}
+9 -11
View File
@@ -14,7 +14,7 @@
package linux
// semctl Command Definitions. Source: //include/uapi/linux/sem.h
// semctl Command Definitions. Source: include/uapi/linux/sem.h
const (
GETPID = 11
GETVAL = 12
@@ -25,7 +25,7 @@ const (
SETALL = 17
)
// ipcs ctl cmds. Source: //include/uapi/linux/sem.h
// ipcs ctl cmds. Source: include/uapi/linux/sem.h
const (
SEM_STAT = 18
SEM_INFO = 19
@@ -33,16 +33,14 @@ const (
const SEM_UNDO = 0x1000
// SemidDS is equivalent to struct semid_ds.
// SemidDS is equivalent to struct semid64_ds.
type SemidDS struct {
SemPerm IPCPerm
SemOTime TimeT
reserved1 uint32
SemCTime TimeT
reserved2 uint32
SemNSems uint32
reserved3 uint32
reserved4 uint32
SemPerm IPCPerm
SemOTime TimeT
SemCTime TimeT
SemNSems uint64
unused3 uint64
unused4 uint64
}
// Sembuf is equivalent to struct sembuf.