Kernel: Add framebuffer ioctls; wrap raw ioctls with a C API

This commit is contained in:
Conrad Pankoff 2019-08-18 12:25:22 +10:00 committed by Andreas Kling
parent 1868523e00
commit 5e46122a82
Notes: sideshowbarker 2024-07-19 12:37:50 +09:00
2 changed files with 44 additions and 0 deletions

33
Kernel/FB.h Normal file
View file

@ -0,0 +1,33 @@
#pragma once
#include <sys/cdefs.h>
#include <sys/ioctl.h>
__BEGIN_DECLS
int fb_get_size_in_bytes(int fd, size_t* out)
{
return ioctl(fd, FB_IOCTL_GET_SIZE_IN_BYTES, out);
}
int fb_get_resolution(int fd, FBResolution* info)
{
return ioctl(fd, FB_IOCTL_GET_RESOLUTION, info);
}
int fb_set_resolution(int fd, FBResolution* info)
{
return ioctl(fd, FB_IOCTL_SET_RESOLUTION, info);
}
int fb_get_buffer(int fd, int* index)
{
return ioctl(fd, FB_IOCTL_GET_BUFFER, index);
}
int fb_set_buffer(int fd, int index)
{
return ioctl(fd, FB_IOCTL_SET_BUFFER, index);
}
__END_DECLS

View file

@ -9,6 +9,12 @@ struct winsize {
unsigned short ws_col;
};
struct FBResolution {
int pitch;
int width;
int height;
};
__END_DECLS
enum IOCtlNumber {
@ -22,4 +28,9 @@ enum IOCtlNumber {
TIOCSCTTY,
TIOCNOTTY,
TIOCSWINSZ,
FB_IOCTL_GET_SIZE_IN_BYTES,
FB_IOCTL_GET_RESOLUTION,
FB_IOCTL_SET_RESOLUTION,
FB_IOCTL_GET_BUFFER,
FB_IOCTL_SET_BUFFER,
};