MCPcopy Create free account
hub / github.com/rabbitstack/fibratus / NewFrameBuffer

Function NewFrameBuffer

pkg/util/term/fb.go:46–67  ·  view source on GitHub ↗

NewFrameBuffer builds a fresh frame buffer.

()

Source from the content-addressed store, hash-verified

44
45// NewFrameBuffer builds a fresh frame buffer.
46func NewFrameBuffer() (io.Writer, error) {
47 handle, _, err := createConsoleScreenBuffer.Call(
48 uintptr(syscall.GENERIC_READ|syscall.GENERIC_WRITE),
49 uintptr(0),
50 uintptr(0),
51 uintptr(consoleTextModeBuffer),
52 uintptr(0),
53 uintptr(0),
54 )
55 if handle == 0 {
56 return nil, fmt.Errorf("unable to create screen buffer: %v", err)
57 }
58 fb := &FrameBuffer{
59 handle: syscall.Handle(handle),
60 }
61 errno, _, err := setConsoleActiveScreenBuffer.Call(handle)
62 if errno == 0 {
63 return nil, fmt.Errorf("couldn't activate console screen buffer: %v", err)
64 }
65 showCursor(fb.handle, false)
66 return fb, nil
67}
68
69// Write draws the character buffer to the screen frame buffer.
70func (fb FrameBuffer) Write(p []byte) (int, error) {

Callers 1

NewFunction · 0.92

Calls 3

showCursorFunction · 0.85
HandleMethod · 0.80
CallMethod · 0.65

Tested by

no test coverage detected