diff --git a/Kernel/FB.h b/Kernel/FB.h new file mode 100644 index 0000000000..66b234f842 --- /dev/null +++ b/Kernel/FB.h @@ -0,0 +1,33 @@ +#pragma once + +#include +#include + +__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 diff --git a/Libraries/LibC/sys/ioctl_numbers.h b/Libraries/LibC/sys/ioctl_numbers.h index 26ec4548d5..3156b950fa 100644 --- a/Libraries/LibC/sys/ioctl_numbers.h +++ b/Libraries/LibC/sys/ioctl_numbers.h @@ -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, };