/* SPDX-License-Identifier: GPL-2.0-only */ /* -*- linux-c -*- ------------------------------------------------------- * * * Copyright (C) 1991, 1992 Linus Torvalds * Copyright 2007 rPath, Inc. - All Rights Reserved * * ----------------------------------------------------------------------- */ /* * Header file for the real-mode video probing code */ #ifndef BOOT_VIDEO_H #define BOOT_VIDEO_H #include <linux/types.h> /* * This code uses an extended set of video mode numbers. These include: * Aliases for standard modes * NORMAL_VGA (-1) * EXTENDED_VGA (-2) * ASK_VGA (-3) * Video modes numbered by menu position -- NOT RECOMMENDED because of lack * of compatibility when extending the table. These are between 0x00 and 0xff. */ #define VIDEO_FIRST_MENU … /* Standard BIOS video modes (BIOS number + 0x0100) */ #define VIDEO_FIRST_BIOS … /* VESA BIOS video modes (VESA number + 0x0200) */ #define VIDEO_FIRST_VESA … /* Video7 special modes (BIOS number + 0x0900) */ #define VIDEO_FIRST_V7 … /* Special video modes */ #define VIDEO_FIRST_SPECIAL … #define VIDEO_80x25 … #define VIDEO_8POINT … #define VIDEO_80x43 … #define VIDEO_80x28 … #define VIDEO_CURRENT_MODE … #define VIDEO_80x30 … #define VIDEO_80x34 … #define VIDEO_80x60 … #define VIDEO_GFX_HACK … #define VIDEO_LAST_SPECIAL … /* Video modes given by resolution */ #define VIDEO_FIRST_RESOLUTION … /* The "recalculate timings" flag */ #define VIDEO_RECALC … void store_screen(void); #define DO_STORE() … /* * Mode table structures */ struct mode_info { … }; struct card_info { … }; #define __videocard … extern struct card_info video_cards[], video_cards_end[]; int mode_defined(u16 mode); /* video.c */ /* Basic video information */ #define ADAPTER_CGA … #define ADAPTER_EGA … #define ADAPTER_VGA … extern int adapter; extern int force_x, force_y; /* Don't query the BIOS for cols/rows */ extern int do_restore; /* Restore screen contents */ extern int graphic_mode; /* Graphics mode with linear frame buffer */ /* Accessing VGA indexed registers */ static inline u8 in_idx(u16 port, u8 index) { … } static inline void out_idx(u8 v, u16 port, u8 index) { … } /* Writes a value to an indexed port and then reads the port again */ static inline u8 tst_idx(u8 v, u16 port, u8 index) { … } /* Get the I/O port of the VGA CRTC */ u16 vga_crtc(void); /* video-vga.c */ #endif /* BOOT_VIDEO_H */