diff options
| author | Dmitry Vyukov <dvyukov@google.com> | 2019-12-02 18:17:04 +0100 |
|---|---|---|
| committer | Dmitry Vyukov <dvyukov@google.com> | 2019-12-02 18:17:04 +0100 |
| commit | dc01aea0031d3e38fdd4124b28197c7597ab39c3 (patch) | |
| tree | 4cfcde6fe170f2c92d20a49ec70b7528cf2d3c33 /sys/linux/dev_fb.txt | |
| parent | b5e323243203d28e406be0c4383e662c408b4fdc (diff) | |
sys/linux: add /dev/fb descriptions
Framebuffer descriptions + open more tty dev nodes.
Diffstat (limited to 'sys/linux/dev_fb.txt')
| -rw-r--r-- | sys/linux/dev_fb.txt | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/sys/linux/dev_fb.txt b/sys/linux/dev_fb.txt index d5aadf262..038ce1ac7 100644 --- a/sys/linux/dev_fb.txt +++ b/sys/linux/dev_fb.txt @@ -3,7 +3,84 @@ include <uapi/asm/ioctl.h> include <uapi/linux/fcntl.h> +include <uapi/linux/fb.h> resource fd_fb[fd] openat$fb0(fd const[AT_FDCWD], file ptr[in, string["/dev/fb0"]], flags flags[open_flags], mode const[0]) fd_fb + +write$fb(fd fd_fb, data ptr[in, array[int8]], len bytesize[data]) +read$fb(fd fd_fb, data ptr[out, array[int8]], len bytesize[data]) +mmap$fb(addr vma, len len[addr], prot flags[mmap_prot], flags flags[mmap_flags], fd fd_fb, off int64[0:0x100000, 0x1000]) + +ioctl$FBIOGET_VSCREENINFO(fd fd_fb, cmd const[FBIOGET_VSCREENINFO], arg ptr[out, array[int8, FB_VAR_SCREENINFO_SIZE]]) +ioctl$FBIOPUT_VSCREENINFO(fd fd_fb, cmd const[FBIOPUT_VSCREENINFO], arg ptr[in, fb_var_screeninfo]) +ioctl$FBIOGET_FSCREENINFO(fd fd_fb, cmd const[FBIOGET_FSCREENINFO], arg ptr[out, array[int8, FB_FIX_SCREENINFO_SIZE]]) +ioctl$FBIOPUTCMAP(fd fd_fb, cmd const[FBIOPUTCMAP], arg ptr[in, fb_cmap_user[in]]) +ioctl$FBIOGETCMAP(fd fd_fb, cmd const[FBIOGETCMAP], arg ptr[in, fb_cmap_user[out]]) +ioctl$FBIOPAN_DISPLAY(fd fd_fb, cmd const[FBIOPAN_DISPLAY], arg ptr[in, fb_var_screeninfo]) +ioctl$FBIOGET_CON2FBMAP(fd fd_fb, cmd const[FBIOGET_CON2FBMAP], arg ptr[in, fb_con2fbmap]) +ioctl$FBIOPUT_CON2FBMAP(fd fd_fb, cmd const[FBIOPUT_CON2FBMAP], arg ptr[in, fb_con2fbmap]) +ioctl$FBIOBLANK(fd fd_fb, cmd const[FBIOBLANK], arg intptr[FB_BLANK_UNBLANK:FB_BLANK_POWERDOWN]) +ioctl$FBIO_WAITFORVSYNC(fd fd_fb, cmd const[FBIO_WAITFORVSYNC], arg const[0]) + +fb_var_screeninfo { + xres int32 + yres int32 + xres_virtual int32 + yres_virtual int32 + xoffset int32 + yoffset int32 + bits_per_pixel flags[fb_bpp, int32] + grayscale int32 + red fb_bitfield + green fb_bitfield + blue fb_bitfield + transp fb_bitfield + nonstd int32 + activate flags[fb_activate, int32] + height int32 + width int32 + accel_flags int32 + pixclock int32 + left_margin int32 + right_margin int32 + upper_margin int32 + lower_margin int32 + hsync_len int32 + vsync_len int32 + sync int32 + vmode flags[fb_mode, int32] + rotate int32 + colorspace int32 + reserved array[const[0, int32], 4] +} + +fb_activate = FB_ACTIVATE_NOW, FB_ACTIVATE_NXTOPEN, FB_ACTIVATE_TEST, FB_ACTIVATE_VBL, FB_ACTIVATE_ALL, FB_ACTIVATE_FORCE, FB_ACTIVATE_INV_MODE +fb_mode = FB_VMODE_NONINTERLACED, FB_VMODE_INTERLACED, FB_VMODE_DOUBLE, FB_VMODE_ODD_FLD_FIRST +fb_bpp = 1, 2, 8, 15, 16, 24, 32 + +type fb_cmap_user[DIR] { + start int32 + len len[red, int32] +# NEED: these should be parallel arrays of the same size. + red ptr[DIR, array[int16]] + green ptr[DIR, array[int16]] + blue ptr[DIR, array[int16]] + transp ptr[DIR, array[int16]] +} + +fb_bitfield { + offset int32 + length int32 + msb_right bool32 +} + +fb_con2fbmap { + console int32 + framebuffer int32 +} + +define FB_VAR_SCREENINFO_SIZE sizeof(struct fb_var_screeninfo) +define FB_FIX_SCREENINFO_SIZE sizeof(struct fb_fix_screeninfo) +_ = __NR_mmap2 |
