]> git.saurik.com Git - apple/boot.git/blobdiff - i386/boot2/boot.h
boot-132.tar.gz
[apple/boot.git] / i386 / boot2 / boot.h
index b570c09a89a8518b44a59cf466900a94c37d9108..98982f4d8e41a6d57c0b8f2ee17cb1dc318cbfc6 100644 (file)
@@ -1,24 +1,23 @@
 /*
- * Copyright (c) 1999 Apple Computer, Inc. All rights reserved.
+ * Copyright (c) 1999-2003 Apple Computer, Inc. All rights reserved.
  *
  * @APPLE_LICENSE_HEADER_START@
  * 
- * Copyright (c) 1999-2003 Apple Computer, Inc.  All Rights Reserved.
- * 
- * 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
- * compliance with the License. Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this
- * file.
+ * Portions Copyright (c) 1999-2003 Apple Computer, Inc.  All Rights
+ * Reserved.  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 compliance with the License.  Please obtain a copy of the
+ * License at http://www.apple.com/publicsource 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
+ * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER
  * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
  * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * 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.
+ * FITNESS FOR A PARTICULAR PURPOSE OR NON- INFRINGEMENT.  Please see the
+ * License for the specific language governing rights and limitations
+ * under the License.
  * 
  * @APPLE_LICENSE_HEADER_END@
  */
 #include "libsaio.h"
 
 /*
- * Keys used in system Default.table / Instance0.table
+ * Keys used in system Boot.plist
  */
 #define kGraphicsModeKey    "Graphics Mode"
 #define kTextModeKey        "Text Mode"
 #define kBootGraphicsKey    "Boot Graphics"
 #define kQuietBootKey       "Quiet Boot"
 #define kKernelFlagsKey     "Kernel Flags"
+#define kMKextCacheKey      "MKext Cache"
 #define kKernelNameKey      "Kernel"
 #define kKernelCacheKey     "Kernel Cache"
+#define kBootDeviceKey      "Boot Device"
+#define kTimeoutKey         "Timeout"
+#define kRootDeviceKey      "rd"
+#define kBootUUIDKey        "boot-uuid"
+#define kPlatformKey        "platform"
+#define kACPIKey            "acpi"
+#define kCDROMPromptKey     "CD-ROM Prompt"
+#define kCDROMOptionKey     "CD-ROM Option Key"
+
+#define kDefaultKernel      "mach_kernel"
+
+/*
+ * Flags to the booter or kernel
+ *
+ */
+#define kVerboseModeFlag     "-v"
+#define kSafeModeFlag        "-x"
+#define kOldSafeModeFlag     "-f"
+#define kIgnoreBootFileFlag  "-F"
+#define kSingleUserModeFlag  "-s"
+
+/*
+ * Booter behavior control
+ */
+#define kBootTimeout         -1
+#define kCDBootTimeout       8
 
 /*
  * A global set by boot() to record the device that the booter
  * was loaded from.
  */
 extern int  gBIOSDev;
-extern BOOL gBootGraphics;
 extern long gBootMode;
 extern BOOL sysConfigValid;
 extern char bootBanner[];
 extern char bootPrompt[];
+extern BOOL gOverrideKernel;
+extern char *gPlatformName;
+extern char gMKextName[];
+extern char gRootDevice[];
+extern BVRef gBootVolume;
 
 // Boot Modes
 enum {
     kBootModeNormal = 0,
-    kBootModeSafe,
-    kBootModeSecure
+    kBootModeSafe   = 1,
+    kBootModeSecure = 2,
+    kBootModeQuiet  = 4
 };
 
 /*
  * graphics.c
  */
 extern void printVBEInfo();
+extern void printVBEModeInfo();
 extern void setVideoMode(int mode);
 extern int  getVideoMode();
 extern void spinActivityIndicator();
 extern void clearActivityIndicator();
+extern void drawColorRectangle( unsigned short x,
+                         unsigned short y,
+                         unsigned short width,
+                         unsigned short height,
+                         unsigned char  colorIndex );
+extern void drawDataRectangle( unsigned short  x,
+                        unsigned short  y,
+                        unsigned short  width,
+                        unsigned short  height,
+                               unsigned char * data );
+extern int
+convertImage( unsigned short width,
+              unsigned short height,
+              const unsigned char *imageData,
+              unsigned char **newImageData );
+extern char * decodeRLE( const void * rleData, int rleBlocks, int outBytes );
+extern void drawBootGraphics(void);
+extern int getVideoMode(void);
 
 /*
  * drivers.c
@@ -79,7 +129,7 @@ extern long DecodeKernel(void *binary, entry_t *rentry, char **raddr, int *rsize
 /*
  * options.c
  */
-extern void getBootOptions();
+extern int  getBootOptions(BOOL firstRun);
 extern int  processBootOptions();
 
 /*