Skip to content

Commit

Permalink
libcontainer: configs: ensure can build on darwin
Browse files Browse the repository at this point in the history
Signed-off-by: Eric Ernst <eric_ernst@apple.com>
  • Loading branch information
egernst committed Jan 11, 2023
1 parent da548c1 commit 167d603
Show file tree
Hide file tree
Showing 3 changed files with 70 additions and 35 deletions.
35 changes: 0 additions & 35 deletions libcontainer/configs/mount.go
Original file line number Diff line number Diff line change
@@ -1,42 +1,7 @@
package configs

import "golang.org/x/sys/unix"

const (
// EXT_COPYUP is a directive to copy up the contents of a directory when
// a tmpfs is mounted over it.
EXT_COPYUP = 1 << iota //nolint:golint // ignore "don't use ALL_CAPS" warning
)

type Mount struct {
// Source path for the mount.
Source string `json:"source"`

// Destination path for the mount inside the container.
Destination string `json:"destination"`

// Device the mount is for.
Device string `json:"device"`

// Mount flags.
Flags int `json:"flags"`

// Propagation Flags
PropagationFlags []int `json:"propagation_flags"`

// Mount data applied to the mount.
Data string `json:"data"`

// Relabel source if set, "z" indicates shared, "Z" indicates unshared.
Relabel string `json:"relabel"`

// RecAttr represents mount properties to be applied recursively (AT_RECURSIVE), see mount_setattr(2).
RecAttr *unix.MountAttr `json:"rec_attr"`

// Extensions are additional flags that are specific to runc.
Extensions int `json:"extensions"`
}

func (m *Mount) IsBind() bool {
return m.Flags&unix.MS_BIND != 0
}
36 changes: 36 additions & 0 deletions libcontainer/configs/mount_linux.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
package configs

import "golang.org/x/sys/unix"

type Mount struct {
// Source path for the mount.
Source string `json:"source"`

// Destination path for the mount inside the container.
Destination string `json:"destination"`

// Device the mount is for.
Device string `json:"device"`

// Mount flags.
Flags int `json:"flags"`

// Propagation Flags
PropagationFlags []int `json:"propagation_flags"`

// Mount data applied to the mount.
Data string `json:"data"`

// Relabel source if set, "z" indicates shared, "Z" indicates unshared.
Relabel string `json:"relabel"`

// RecAttr represents mount properties to be applied recursively (AT_RECURSIVE), see mount_setattr(2).
RecAttr *unix.MountAttr `json:"rec_attr"`

// Extensions are additional flags that are specific to runc.
Extensions int `json:"extensions"`
}

func (m *Mount) IsBind() bool {
return m.Flags&unix.MS_BIND != 0
}
34 changes: 34 additions & 0 deletions libcontainer/configs/mount_unsupported.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
//go:build !linux
// +build !linux

package configs

type Mount struct {
// Source path for the mount.
Source string `json:"source"`

// Destination path for the mount inside the container.
Destination string `json:"destination"`

// Device the mount is for.
Device string `json:"device"`

// Mount flags.
Flags int `json:"flags"`

// Propagation Flags
PropagationFlags []int `json:"propagation_flags"`

// Mount data applied to the mount.
Data string `json:"data"`

// Relabel source if set, "z" indicates shared, "Z" indicates unshared.
Relabel string `json:"relabel"`

// Extensions are additional flags that are specific to runc.
Extensions int `json:"extensions"`
}

func (m *Mount) IsBind() bool {
return false
}

0 comments on commit 167d603

Please sign in to comment.