mirror of
https://github.com/CloverHackyColor/CloverBootloader.git
synced 2024-11-24 11:45:27 +01:00
74 lines
2.0 KiB
C
74 lines
2.0 KiB
C
|
/*
|
||
|
* nviviaresolution.h
|
||
|
*
|
||
|
*
|
||
|
* Created by Le Bidou on 19/03/10.
|
||
|
* Copyright 2010 ---. All rights reserved.
|
||
|
*
|
||
|
*/
|
||
|
|
||
|
#ifndef _NVDA_RESOLUTION_HEADER_
|
||
|
#define _NVDA_RESOLUTION_HEADER_
|
||
|
|
||
|
#include "libsaio.h"
|
||
|
#include "autoresolution.h"
|
||
|
|
||
|
#define NVIDIA_SIGNATURE "NVIDIA Corp"
|
||
|
|
||
|
#define OFFSET_TO_VESA_TABLE_INDEX 2
|
||
|
#define MAIN_VESA_TABLE 0
|
||
|
#define SECOND_VESA_TABLE 1
|
||
|
|
||
|
typedef struct {
|
||
|
unsigned char ucTable_Major; //These names are probably wrong
|
||
|
unsigned char ucTable_Minor;
|
||
|
unsigned char ucTable_Rev;
|
||
|
unsigned short usTable_Size;
|
||
|
} NV_COMMON_TABLE_HEADER;
|
||
|
|
||
|
typedef struct {
|
||
|
unsigned short usPixel_Clock;
|
||
|
unsigned short usH_Active;
|
||
|
unsigned short usH_Active_minus_One;
|
||
|
unsigned short reserved1;
|
||
|
unsigned short usH_Active_minus_One_;
|
||
|
unsigned short usH_SyncStart;
|
||
|
unsigned short usH_SyncEnd;
|
||
|
unsigned short usH_Total;
|
||
|
unsigned short usV_Active;
|
||
|
unsigned short usV_Active_minus_One;
|
||
|
unsigned short reserved2;
|
||
|
unsigned short usV_Active_minus_One_;
|
||
|
unsigned short usV_SyncStart;
|
||
|
unsigned short usV_SyncEnd;
|
||
|
unsigned short usV_Total;
|
||
|
unsigned short reserved3;
|
||
|
} NV_MODELINE;
|
||
|
|
||
|
typedef struct {
|
||
|
unsigned short h_disp;
|
||
|
unsigned short v_disp;
|
||
|
unsigned char h_blank;
|
||
|
unsigned char h_syncoffset;
|
||
|
unsigned char h_syncwidth;
|
||
|
unsigned char v_blank;
|
||
|
//unsigned char v_syncwidth;
|
||
|
unsigned char flags; //looks like flags & 1 means "Graphics Mode", to oppose to "Console Mode"
|
||
|
//on 7xxx the high four bits look like a mode id number.
|
||
|
//on 8xxx only the low four bits are used, standard graphics mode are always 5.
|
||
|
// it can be 1 (1400x1050 and 2048x1536) (HSync High, VSync High ?)
|
||
|
// 3 (1440x900, 1680x1050 and 1920x1200) (Hsync High, VSync Low ?)
|
||
|
// 3 (Standard Timings) (Hsync Low, VSync High ?)
|
||
|
// or 7 (1280x800 and 768x340) (Hync Low, VSync Low ?)
|
||
|
} NV_MODELINE_2;
|
||
|
|
||
|
typedef struct {
|
||
|
NV_COMMON_TABLE_HEADER sHeader;
|
||
|
NV_MODELINE * sModelines;
|
||
|
} NV_VESA_TABLE;
|
||
|
|
||
|
vbios_map * open_nvidia_vbios(vbios_map *map);
|
||
|
|
||
|
bool nvidia_set_mode(vbios_map* map, UInt8 idx, UInt32* x, UInt32* y, char Type);
|
||
|
|
||
|
#endif
|