#ifndef _VIDEO_CONSOLE_H_
#define _VIDEO_CONSOLE_H_
#include <device/device_types.h>
#ifdef __cplusplus
extern "C" {
#endif
#define kVCSysctlProgressOptions "kern.progressoptions"
#define kVCSysctlConsoleOptions "kern.consoleoptions"
#define kVCSysctlProgressMeterEnable "kern.progressmeterenable"
#define kVCSysctlProgressMeter "kern.progressmeter"
enum
{
kVCDarkReboot = 0x00000001,
kVCAcquireImmediate = 0x00000002,
kVCUsePosition = 0x00000004,
kVCDarkBackground = 0x00000008,
kVCLightBackground = 0x00000010,
};
struct vc_progress_user_options {
uint32_t options;
uint32_t x_pos;
uint32_t y_pos;
uint32_t resv[8];
};
typedef struct vc_progress_user_options vc_progress_user_options;
#if XNU_KERNEL_PRIVATE
void vcputc(int, int, int);
int vcgetc( int l,
int u,
boolean_t wait,
boolean_t raw );
void video_scroll_up( void *start,
void *end,
void *dest );
void video_scroll_down( void *start,
void *end,
void *dest );
struct vc_info
{
unsigned int v_height;
unsigned int v_width;
unsigned int v_depth;
unsigned int v_rowbytes;
unsigned long v_baseaddr;
unsigned int v_type;
char v_name[32];
uint64_t v_physaddr;
unsigned int v_rows;
unsigned int v_columns;
unsigned int v_rowscanbytes;
unsigned int v_scale;
unsigned int v_rotate;
unsigned int v_reserved[3];
};
struct vc_progress_element {
unsigned int version;
unsigned int flags;
unsigned int time;
unsigned char count;
unsigned char res[3];
int width;
int height;
int dx;
int dy;
int transparent;
unsigned int res2[3];
};
typedef struct vc_progress_element vc_progress_element;
extern struct vc_progress_user_options vc_user_options;
void vc_progress_initialize( vc_progress_element * desc,
const unsigned char * data1x,
const unsigned char * data2x,
const unsigned char * data3x,
const unsigned char * clut );
void vc_progress_set(boolean_t enable, uint32_t vc_delay);
void vc_display_icon( vc_progress_element * desc, const unsigned char * data );
int vc_display_lzss_icon(uint32_t dst_x, uint32_t dst_y,
uint32_t image_width, uint32_t image_height,
const uint8_t *compressed_image,
uint32_t compressed_size,
const uint8_t *clut);
#if !CONFIG_EMBEDDED
extern void vc_enable_progressmeter(int new_value);
extern void vc_set_progressmeter(int new_value);
extern int vc_progressmeter_enable;
extern int vc_progressmeter_value;
extern void vc_progress_setdiskspeed(uint32_t speed);
#endif
#endif
#ifdef __cplusplus
}
#endif
#endif