/*
- * 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
/*
* options.c
*/
-extern void getBootOptions();
+extern int getBootOptions(BOOL firstRun);
extern int processBootOptions();
/*