github.com/shishir-a412ed/docker@v1.3.2-0.20180103180333-fda904911d87/pkg/dmesg/dmesg_linux.go (about)

     1  package dmesg
     2  
     3  import (
     4  	"unsafe"
     5  
     6  	"golang.org/x/sys/unix"
     7  )
     8  
     9  // Dmesg returns last messages from the kernel log, up to size bytes
    10  func Dmesg(size int) []byte {
    11  	t := uintptr(3) // SYSLOG_ACTION_READ_ALL
    12  	b := make([]byte, size)
    13  	amt, _, err := unix.Syscall(unix.SYS_SYSLOG, t, uintptr(unsafe.Pointer(&b[0])), uintptr(len(b)))
    14  	if err != 0 {
    15  		return []byte{}
    16  	}
    17  	return b[:amt]
    18  }