]> 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 1851b87567864ed6059e87f1aed539658f4d7231..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,
@@ -44,28 +74,77 @@ int vcgetc( int             l,
                boolean_t       wait,
                boolean_t       raw );
 
-void video_scroll_up(  unsigned long   start,
-                       unsigned long   end,
-                       unsigned long   dest );
+void video_scroll_up(  void    *start,
+                       void    *end,
+                       void    *dest );
 
-void video_scroll_down(        unsigned long   start,  /* HIGH addr */
-                       unsigned long   end,    /* LOW addr */
-                       unsigned long   dest ); /* HIGH addr */
+void video_scroll_down(        void    *start,  /* HIGH addr */
+                       void    *end,    /* LOW addr */
+                       void    *dest ); /* HIGH addr */
 
 struct vc_info
 {
-       unsigned long   v_height;       /* pixels */
-       unsigned long   v_width;        /* pixels */
-       unsigned long   v_depth;
-       unsigned long   v_rowbytes;
+       unsigned int    v_height;       /* pixels */
+       unsigned int    v_width;        /* pixels */
+       unsigned int    v_depth;
+       unsigned int    v_rowbytes;
        unsigned long   v_baseaddr;
-       unsigned long   v_type;
+       unsigned int    v_type;
        char            v_name[32];
-       unsigned long   v_physaddr;
-       unsigned long   v_rows;         /* characters */
-       unsigned long   v_columns;      /* characters */
-       unsigned long   v_rowscanbytes; /* Actualy number of bytes used for display per row*/
-       unsigned long   v_reserved[5];
+       uint64_t        v_physaddr;
+       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_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_ */