github.com/resin-io/docker@v1.13.1/pkg/system/mknod.go (about)

     1  // +build !windows
     2  
     3  package system
     4  
     5  import (
     6  	"syscall"
     7  )
     8  
     9  // Mknod creates a filesystem node (file, device special file or named pipe) named path
    10  // with attributes specified by mode and dev.
    11  func Mknod(path string, mode uint32, dev int) error {
    12  	return syscall.Mknod(path, mode, dev)
    13  }
    14  
    15  // Mkdev is used to build the value of linux devices (in /dev/) which specifies major
    16  // and minor number of the newly created device special file.
    17  // Linux device nodes are a bit weird due to backwards compat with 16 bit device nodes.
    18  // They are, from low to high: the lower 8 bits of the minor, then 12 bits of the major,
    19  // then the top 12 bits of the minor.
    20  func Mkdev(major int64, minor int64) uint32 {
    21  	return uint32(((minor & 0xfff00) << 12) | ((major & 0xfff) << 8) | (minor & 0xff))
    22  }