]> git.saurik.com Git - apple/xnu.git/blobdiff - osfmk/console/video_console.h
xnu-3789.41.3.tar.gz
[apple/xnu.git] / osfmk / console / video_console.h
index f67778b4e55339575c7b77678d7ddb656080fb3b..468dc9e61eecdb004eb5b3e9bf48919992b8f97d 100644 (file)
 
 #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;
+    // fractional position of middle of spinner 0 (0.0) - 0xFFFFFFFF (1.0)
+    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,
@@ -65,7 +95,56 @@ struct vc_info
        unsigned int    v_rows;         /* characters */
        unsigned int    v_columns;      /* characters */
        unsigned int    v_rowscanbytes; /* Actualy number of bytes used for display per row*/
-       unsigned int    v_reserved[5];
+       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);
+
+
+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 /* XNU_KERNEL_PRIVATE */
+
+#ifdef __cplusplus
+}
+#endif
 
 #endif /* _VIDEO_CONSOLE_H_ */