]> git.saurik.com Git - apple/xnu.git/blobdiff - osfmk/console/video_console.h
xnu-7195.50.7.100.1.tar.gz
[apple/xnu.git] / osfmk / console / video_console.h
index 3bc216dc3f85ca0d8182e0d0211d61cf6930e3ca..56d310c190e46d999a101f9b8fdc662689a83af4 100644 (file)
@@ -1,8 +1,8 @@
 /*
- * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
+ * Copyright (c) 2000-2005 Apple Computer, Inc. All rights reserved.
  *
  * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- * 
+ *
  * This file contains Original Code and/or Modifications of Original Code
  * as defined in and that are subject to the Apple Public Source License
  * Version 2.0 (the 'License'). You may not use this file except in
  * unlawful or unlicensed copies of an Apple operating system, or to
  * circumvent, violate, or enable the circumvention or violation of, any
  * terms of an Apple operating system software license agreement.
- * 
+ *
  * Please obtain a copy of the License at
  * http://www.opensource.apple.com/apsl/ and read it before using this file.
- * 
+ *
  * The Original Code and all software distributed under the License are
  * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
  * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
@@ -22,7 +22,7 @@
  * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
  * Please see the License for the specific language governing rights and
  * limitations under the License.
- * 
+ *
  * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
  */
 /*
 
 #include <device/device_types.h>
 
-int vcputc(    int             l,
-               int             u,
-               int             c );
-
-int vcgetc(    int             l,
-               int             u,
-               boolean_t       wait,
-               boolean_t       raw );
-
-void video_scroll_up(  unsigned long   start,
-                       unsigned long   end,
-                       unsigned long   dest );
-
-void video_scroll_down(        unsigned long   start,  /* HIGH addr */
-                       unsigned long   end,    /* LOW addr */
-                       unsigned long   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 long   v_baseaddr;
-       unsigned long   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];
+#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,
+};
+
+enum {
+       kDataRotate0   = 0,
+       kDataRotate90  = 1,
+       kDataRotate180 = 2,
+       kDataRotate270 = 3
+};
+
+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,
+    int             u,
+    boolean_t       wait,
+    boolean_t       raw );
+
+void video_scroll_up(   void    *start,
+    void    *end,
+    void    *dest );
+
+void video_scroll_down( void    *start,  /* HIGH addr */
+    void    *end,                        /* LOW addr */
+    void    *dest );                     /* HIGH addr */
+
+struct vc_info {
+       unsigned int    v_height;       /* pixels */
+       unsigned int    v_width;        /* pixels */
+       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;         /* 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);
+
+#if defined(XNU_TARGET_OS_OSX)
+
+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 /* defined(XNU_TARGET_OS_OSX) */
+
+#endif /* XNU_KERNEL_PRIVATE */
+
+#ifdef __cplusplus
+}
+#endif
 
 #endif /* _VIDEO_CONSOLE_H_ */