package dmesg // import "github.com/docker/docker/pkg/dmesg"

import (
	"unsafe"

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

// Dmesg returns last messages from the kernel log, up to size bytes
func Dmesg(size int) []byte {
	t := uintptr(3) // SYSLOG_ACTION_READ_ALL
	b := make([]byte, size)
	amt, _, err := unix.Syscall(unix.SYS_SYSLOG, t, uintptr(unsafe.Pointer(&b[0])), uintptr(len(b)))
	if err != 0 {
		return []byte{}
	}
	return b[:amt]
}

package dmesg // import "github.com/docker/docker/pkg/dmesg"

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

// Dmesg returns last messages from the kernel log, up to size bytes
func Dmesg(size int) []byte {
	t := 3 // SYSLOG_ACTION_READ_ALL
	b := make([]byte, size)
	amt, err := unix.Klogctl(t, b)
	if err != nil {
		return []byte{}
	}
	return b[:amt]
}

Use Klogctl from x/sys/unix to read Linux kernel log
Use Klogctl from x/sys/unix to read Linux kernel log

Signed-off-by: Tobias Klauser <9249c549618448e4c699e8032ba6c7f0d7fd4b7f@distanz.ch>
