summaryrefslogtreecommitdiff
path: root/runtime/graphdriver/devmapper/sys.go
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/graphdriver/devmapper/sys.go')
-rw-r--r--runtime/graphdriver/devmapper/sys.go57
1 files changed, 57 insertions, 0 deletions
diff --git a/runtime/graphdriver/devmapper/sys.go b/runtime/graphdriver/devmapper/sys.go
new file mode 100644
index 0000000000..5a9ab4d74b
--- /dev/null
+++ b/runtime/graphdriver/devmapper/sys.go
@@ -0,0 +1,57 @@
+// +build linux,amd64
+
+package devmapper
+
+import (
+ "os"
+ "os/exec"
+ "syscall"
+)
+
+type (
+ sysStatT syscall.Stat_t
+ sysErrno syscall.Errno
+
+ osFile struct{ *os.File }
+)
+
+var (
+ sysMount = syscall.Mount
+ sysUnmount = syscall.Unmount
+ sysCloseOnExec = syscall.CloseOnExec
+ sysSyscall = syscall.Syscall
+
+ osOpenFile = func(name string, flag int, perm os.FileMode) (*osFile, error) {
+ f, err := os.OpenFile(name, flag, perm)
+ return &osFile{File: f}, err
+ }
+ osOpen = func(name string) (*osFile, error) { f, err := os.Open(name); return &osFile{File: f}, err }
+ osNewFile = os.NewFile
+ osCreate = os.Create
+ osStat = os.Stat
+ osIsNotExist = os.IsNotExist
+ osIsExist = os.IsExist
+ osMkdirAll = os.MkdirAll
+ osRemoveAll = os.RemoveAll
+ osRename = os.Rename
+ osReadlink = os.Readlink
+
+ execRun = func(name string, args ...string) error { return exec.Command(name, args...).Run() }
+)
+
+const (
+ sysMsMgcVal = syscall.MS_MGC_VAL
+ sysMsRdOnly = syscall.MS_RDONLY
+ sysEInval = syscall.EINVAL
+ sysSysIoctl = syscall.SYS_IOCTL
+ sysEBusy = syscall.EBUSY
+
+ osORdOnly = os.O_RDONLY
+ osORdWr = os.O_RDWR
+ osOCreate = os.O_CREATE
+ osModeDevice = os.ModeDevice
+)
+
+func toSysStatT(i interface{}) *sysStatT {
+ return (*sysStatT)(i.(*syscall.Stat_t))
+}