diff options
author | gVisor bot <gvisor-bot@google.com> | 2019-12-12 19:23:34 +0000 |
---|---|---|
committer | gVisor bot <gvisor-bot@google.com> | 2019-12-12 19:23:34 +0000 |
commit | c166476f2ec3b8bae5590c74e61865eb6aa5a408 (patch) | |
tree | 0b4283e5f160d16db63fbd1555e5c404ae012540 /pkg/abi | |
parent | bbea3a5df7d107311788fa34a9e3e633473a3ddc (diff) | |
parent | 007707a0726602bc99fc0dccaf2994ad967b9d96 (diff) |
Merge release-20191210.0-26-g007707a (automated)
Diffstat (limited to 'pkg/abi')
-rw-r--r-- | pkg/abi/linux/file.go | 23 | ||||
-rw-r--r-- | pkg/abi/linux/fs.go | 7 |
2 files changed, 30 insertions, 0 deletions
diff --git a/pkg/abi/linux/file.go b/pkg/abi/linux/file.go index 0f014d27f..16791d03e 100644 --- a/pkg/abi/linux/file.go +++ b/pkg/abi/linux/file.go @@ -286,6 +286,29 @@ func (m FileMode) String() string { return strings.Join(s, "|") } +// DirentType maps file types to dirent types appropriate for (struct +// dirent)::d_type. +func (m FileMode) DirentType() uint8 { + switch m.FileType() { + case ModeSocket: + return DT_SOCK + case ModeSymlink: + return DT_LNK + case ModeRegular: + return DT_REG + case ModeBlockDevice: + return DT_BLK + case ModeDirectory: + return DT_DIR + case ModeCharacterDevice: + return DT_CHR + case ModeNamedPipe: + return DT_FIFO + default: + return DT_UNKNOWN + } +} + var modeExtraBits = abi.FlagSet{ { Flag: ModeSetUID, diff --git a/pkg/abi/linux/fs.go b/pkg/abi/linux/fs.go index b416e3472..2c652baa2 100644 --- a/pkg/abi/linux/fs.go +++ b/pkg/abi/linux/fs.go @@ -92,3 +92,10 @@ const ( SYNC_FILE_RANGE_WRITE = 2 SYNC_FILE_RANGE_WAIT_AFTER = 4 ) + +// Flag argument to renameat2(2), from include/uapi/linux/fs.h. +const ( + RENAME_NOREPLACE = (1 << 0) // Don't overwrite target. + RENAME_EXCHANGE = (1 << 1) // Exchange src and dst. + RENAME_WHITEOUT = (1 << 2) // Whiteout src. +) |