/*
- * Copyright (c) 1999 Apple Computer, Inc. All rights reserved.
+ * Copyright (c) 1999-2003 Apple Computer, Inc. All rights reserved.
*
* @APPLE_LICENSE_HEADER_START@
*
- * Portions Copyright (c) 1999 Apple Computer, Inc. All Rights
+ * 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 1.1 (the "License"). You may not use this file
+ * 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.
#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
*/
extern long LoadDrivers(char * dirSpec);
+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();
+/*
+ * lzss.c
+ */
+extern int decompress_lzss(u_int8_t *dst, u_int8_t *src, u_int32_t srclen);
+
+struct compressed_kernel_header {
+ u_int32_t signature;
+ u_int32_t compress_type;
+ u_int32_t adler32;
+ u_int32_t uncompressed_size;
+ u_int32_t compressed_size;
+ u_int32_t reserved[11];
+ char platform_name[64];
+ char root_path[256];
+ u_int8_t data[0];
+};
+typedef struct compressed_kernel_header compressed_kernel_header;
+
#endif /* !__BOOT2_BOOT_H */