screen_info
extern struct screen_info vgacon_screen_info;
struct screen_info vgacon_screen_info = {
extern struct screen_info vgacon_screen_info;
extern struct screen_info vgacon_screen_info;
struct screen_info vgacon_screen_info = {
void efifb_setup_from_dmi(struct screen_info *si, const char *opt);
static struct screen_info si = {
static struct screen_info vgacon_screen_info = {
static struct screen_info si;
x = boot_params_ptr->screen_info.orig_x;
y = boot_params_ptr->screen_info.orig_y;
boot_params_ptr->screen_info.orig_x = x;
boot_params_ptr->screen_info.orig_y = y;
if (boot_params_ptr->screen_info.orig_video_mode == 7) {
lines = boot_params_ptr->screen_info.orig_video_lines;
cols = boot_params_ptr->screen_info.orig_video_cols;
boot_params.screen_info.ext_mem_k = oreg.ax;
if (new_mode != boot_params.screen_info.orig_video_mode) {
ireg.ax = boot_params.screen_info.orig_video_mode;
u8 saved_mode = boot_params.screen_info.orig_video_mode;
boot_params.screen_info.red_size = dac_size;
boot_params.screen_info.green_size = dac_size;
boot_params.screen_info.blue_size = dac_size;
boot_params.screen_info.rsvd_size = dac_size;
boot_params.screen_info.red_pos = 0;
boot_params.screen_info.green_pos = 0;
boot_params.screen_info.blue_pos = 0;
boot_params.screen_info.rsvd_pos = 0;
boot_params.screen_info.vesapm_seg = oreg.es;
boot_params.screen_info.vesapm_off = oreg.di;
boot_params.screen_info.orig_video_isVGA = VIDEO_TYPE_VLFB;
boot_params.screen_info.vesa_attributes = vminfo.mode_attr;
boot_params.screen_info.lfb_linelength = vminfo.logical_scan;
boot_params.screen_info.lfb_width = vminfo.h_res;
boot_params.screen_info.lfb_height = vminfo.v_res;
boot_params.screen_info.lfb_depth = vminfo.bpp;
boot_params.screen_info.pages = vminfo.image_planes;
boot_params.screen_info.lfb_base = vminfo.lfb_ptr;
memcpy(&boot_params.screen_info.red_size,
boot_params.screen_info.lfb_size = vginfo.total_memory;
boot_params.screen_info.orig_video_ega_bx = oreg.bx;
boot_params.screen_info.orig_video_isVGA = 1;
saved.x = boot_params.screen_info.orig_video_cols;
saved.y = boot_params.screen_info.orig_video_lines;
saved.curx = boot_params.screen_info.orig_x;
saved.cury = boot_params.screen_info.orig_y;
int xs = boot_params.screen_info.orig_video_cols;
int ys = boot_params.screen_info.orig_video_lines;
boot_params.screen_info.orig_x = oreg.dl;
boot_params.screen_info.orig_y = oreg.dh;
boot_params.screen_info.flags |= VIDEO_FLAGS_NOCURSOR;
boot_params.screen_info.flags |= VIDEO_FLAGS_NOCURSOR;
boot_params.screen_info.orig_video_mode = oreg.al & 0x7f;
boot_params.screen_info.orig_video_page = oreg.bh;
if (boot_params.screen_info.orig_video_mode == 0x07) {
boot_params.screen_info.orig_video_points = font_size;
boot_params.screen_info.orig_video_cols = x;
boot_params.screen_info.orig_video_lines = y;
BOOT_PARAM_PRESERVE(screen_info),
struct screen_info screen_info; /* 0x000 */
if (boot_params.alt_mem_k < boot_params.screen_info.ext_mem_k) {
mem_size = boot_params.screen_info.ext_mem_k;
boot_params.screen_info.orig_video_isVGA == 1) {
max_xpos = boot_params.screen_info.orig_video_cols;
max_ypos = boot_params.screen_info.orig_video_lines;
current_ypos = boot_params.screen_info.orig_y;
memcpy(¶ms->screen_info, &sysfb_primary_display.screen,
params->screen_info.ext_mem_k = 0;
params->screen_info.ext_mem_k = mem_k;
params->screen_info.ext_mem_k = 0xfc00; /* 64M*/
sysfb_primary_display.screen = boot_params.screen_info;
struct screen_info *si = &sysfb_primary_display.screen;
if (!boot_params.screen_info.orig_video_isVGA)
if (boot_params.screen_info.orig_video_isVGA)
&boot_params.screen_info);
&boot_params->screen_info);
struct screen_info *screen_info)
screen_info->orig_video_mode = 3;
screen_info->orig_video_isVGA = 1;
screen_info->orig_video_lines = 25;
screen_info->orig_video_cols = 80;
screen_info->orig_video_ega_bx = 3;
screen_info->orig_video_points = 16;
screen_info->orig_y = screen_info->orig_video_lines - 1;
screen_info->orig_video_lines = info->u.text_mode_3.rows;
screen_info->orig_video_cols = info->u.text_mode_3.columns;
screen_info->orig_x = info->u.text_mode_3.cursor_x;
screen_info->orig_y = info->u.text_mode_3.cursor_y;
screen_info->orig_video_points =
screen_info->orig_video_isVGA = VIDEO_TYPE_VLFB;
screen_info->lfb_width = info->u.vesa_lfb.width;
screen_info->lfb_height = info->u.vesa_lfb.height;
screen_info->lfb_depth = info->u.vesa_lfb.bits_per_pixel;
screen_info->lfb_base = info->u.vesa_lfb.lfb_base;
screen_info->lfb_size = info->u.vesa_lfb.lfb_size;
screen_info->lfb_linelength = info->u.vesa_lfb.bytes_per_line;
screen_info->red_size = info->u.vesa_lfb.red_size;
screen_info->red_pos = info->u.vesa_lfb.red_pos;
screen_info->green_size = info->u.vesa_lfb.green_size;
screen_info->green_pos = info->u.vesa_lfb.green_pos;
screen_info->blue_size = info->u.vesa_lfb.blue_size;
screen_info->blue_pos = info->u.vesa_lfb.blue_pos;
screen_info->rsvd_size = info->u.vesa_lfb.rsvd_size;
screen_info->rsvd_pos = info->u.vesa_lfb.rsvd_pos;
screen_info->ext_lfb_base = info->u.vesa_lfb.ext_lfb_base;
screen_info->capabilities |= VIDEO_CAPABILITY_64BIT_BASE;
screen_info->orig_video_isVGA = VIDEO_TYPE_EFI;
screen_info->vesa_attributes = info->u.vesa_lfb.mode_attrs;
struct screen_info *);
size_t size, struct screen_info *si)
const struct screen_info *si)
const struct screen_info *si = &sysfb_primary_display.screen;
const struct screen_info *si = &sysfb_primary_display.screen;
const struct screen_info *si = &sysfb_primary_display.screen;
static void efi_earlycon_clear_scanline(unsigned int y, const struct screen_info *si)
static void efi_earlycon_scroll_up(const struct screen_info *si)
struct screen_info *screen = NULL;
efi_status_t efi_setup_graphics(struct screen_info *si, struct edid_info *edid);
struct screen_info;
static void setup_screen_info(struct screen_info *si, const efi_graphics_output_protocol_t *gop)
efi_status_t efi_setup_graphics(struct screen_info *si, struct edid_info *edid)
struct screen_info *si = memset(&boot_params->screen_info, 0, sizeof(*si));
struct screen_info *si = &sysfb_primary_display.screen;
struct screen_info *si = &sysfb_primary_display.screen;
static bool efifb_overlaps_pci_range(const struct screen_info *si,
__init void sysfb_apply_efi_quirks(struct screen_info *si)
__init void sysfb_set_efifb_fwnode(const struct screen_info *si, struct platform_device *pd)
void efifb_setup_from_dmi(struct screen_info *si, const char *opt)
static int __init efifb_set_system(struct screen_info *si, const struct dmi_system_id *id)
static struct device *sysfb_parent_dev(const struct screen_info *si)
struct screen_info *si = &dpy->screen;
static struct device *sysfb_parent_dev(const struct screen_info *si);
struct screen_info *si = &sysfb_primary_display.screen;
const struct screen_info *si = &sysfb_primary_display.screen;
__init bool sysfb_parse_mode(const struct screen_info *si,
__init struct platform_device *sysfb_create_simplefb(const struct screen_info *si,
struct screen_info;
int drm_sysfb_get_width_si(struct drm_device *dev, const struct screen_info *si);
int drm_sysfb_get_height_si(struct drm_device *dev, const struct screen_info *si);
const struct screen_info *si,
int drm_sysfb_get_stride_si(struct drm_device *dev, const struct screen_info *si,
u64 drm_sysfb_get_visible_size_si(struct drm_device *dev, const struct screen_info *si,
const struct screen_info *si);
int drm_sysfb_get_width_si(struct drm_device *dev, const struct screen_info *si)
int drm_sysfb_get_height_si(struct drm_device *dev, const struct screen_info *si)
const struct screen_info *si,
int drm_sysfb_get_stride_si(struct drm_device *dev, const struct screen_info *si,
u64 drm_sysfb_get_visible_size_si(struct drm_device *dev, const struct screen_info *si,
const struct screen_info *si)
const struct screen_info *si;
const struct screen_info *si)
const struct screen_info *si;
const struct screen_info *si)
void vgacon_register_screen(struct screen_info *si)
static struct screen_info *vga_si;
static void efifb_copy_bmp(u8 *src, u32 *dst, int width, const struct screen_info *si)
static bool efifb_bgrt_sanity_check(const struct screen_info *si, u32 bmp_width)
static bool efifb_bgrt_sanity_check(const struct screen_info *si, u32 bmp_width)
static void efifb_show_boot_graphics(struct fb_info *info, const struct screen_info *si)
static inline void efifb_show_boot_graphics(struct fb_info *info, const struct screen_info *si)
static void efifb_setup(struct screen_info *si, char *options)
static inline bool fb_base_is_valid(struct screen_info *si)
struct screen_info *si = dev_get_drvdata(dev); \
struct screen_info *si;
struct screen_info *si;
struct screen_info *si;
static inline int check_mode_supported(const struct screen_info *si)
u32 __screen_info_lfb_bits_per_pixel(const struct screen_info *si)
static int __screen_info_lfb_pixel_format(const struct screen_info *si, struct pixel_format *f)
int screen_info_pixel_format(const struct screen_info *si, struct pixel_format *f)
ssize_t screen_info_resources(const struct screen_info *si, struct resource *r, size_t num)
static bool __screen_info_relocation_is_valid(const struct screen_info *si, struct resource *pr)
struct pci_dev *screen_info_pci_dev(const struct screen_info *si)
struct screen_info *si = &sysfb_primary_display.screen;
static int __screen_info_lfb_pci_bus_region(const struct screen_info *si, unsigned int type,
const struct screen_info *si = &sysfb_primary_display.screen;
struct screen_info;
void vgacon_register_screen(struct screen_info *si);
static inline void vgacon_register_screen(struct screen_info *si) { }
extern void efifb_setup_from_dmi(struct screen_info *si, const char *opt);
struct screen_info;
static inline u32 __screen_info_vesapm_info_base(const struct screen_info *si)
ssize_t screen_info_resources(const struct screen_info *si, struct resource *r, size_t num);
u32 __screen_info_lfb_bits_per_pixel(const struct screen_info *si);
int screen_info_pixel_format(const struct screen_info *si, struct pixel_format *f);
struct pci_dev *screen_info_pci_dev(const struct screen_info *si);
static inline struct pci_dev *screen_info_pci_dev(const struct screen_info *si)
static inline u64 __screen_info_lfb_base(const struct screen_info *si)
static inline void __screen_info_set_lfb_base(struct screen_info *si, u64 lfb_base)
static inline u64 __screen_info_lfb_size(const struct screen_info *si, unsigned int type)
static inline bool __screen_info_vbe_mode_nonvga(const struct screen_info *si)
static inline unsigned int screen_info_video_type(const struct screen_info *si)
static inline void sysfb_apply_efi_quirks(struct screen_info *si)
static inline void sysfb_set_efifb_fwnode(const struct screen_info *si,
bool sysfb_parse_mode(const struct screen_info *si,
struct platform_device *sysfb_create_simplefb(const struct screen_info *si,
static inline bool sysfb_parse_mode(const struct screen_info *si,
static inline struct platform_device *sysfb_create_simplefb(const struct screen_info *si,
struct screen_info;
struct screen_info screen;
void sysfb_apply_efi_quirks(struct screen_info *si);
void sysfb_set_efifb_fwnode(const struct screen_info *si, struct platform_device *pd);