Chameleon

Chameleon Svn Source Tree

Root/branches/cparm/i386/libsaio/bootstruct.h

1/*
2 * Copyright (c) 2002-2003 Apple Computer, Inc. All rights reserved.
3 *
4 * @APPLE_LICENSE_HEADER_START@
5 *
6 * Portions Copyright (c) 2002-2003 Apple Computer, Inc. All Rights
7 * Reserved. This file contains Original Code and/or Modifications of
8 * Original Code as defined in and that are subject to the Apple Public
9 * Source License Version 2.0 (the "License"). You may not use this file
10 * except in compliance with the License. Please obtain a copy of the
11 * License at http://www.apple.com/publicsource and read it before using
12 * this file.
13 *
14 * The Original Code and all software distributed under the License are
15 * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER
16 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
17 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
18 * FITNESS FOR A PARTICULAR PURPOSE OR NON- INFRINGEMENT. Please see the
19 * License for the specific language governing rights and limitations
20 * under the License.
21 *
22 * @APPLE_LICENSE_HEADER_END@
23 */
24
25#ifndef __BOOTSTRUCT_H
26#define __BOOTSTRUCT_H
27
28#include "bootXnu.h"
29#include "saio_types.h"
30#include "bios.h"
31#include "device_tree.h"
32/*!
33 Kernel boot args global also used by booter for its own data.
34 */
35extern boot_args_common *bootArgs;
36
37/*!
38 Boot args passed to the kernel.
39 */
40extern boot_args_Legacy *bootArgsLegacy;
41extern boot_args_107 *bootArgs107;
42extern boot_args_108 *bootArgs108;
43
44//extern Node *gMemoryMapNode;
45
46#define VGA_TEXT_MODE 0
47
48#if 0
49/*
50 * Maximum number of boot drivers that can be loaded.
51 */
52#define NDRIVERS 500
53
54#define CONFIG_SIZE (40 * 4096)
55#endif
56
57#define kMemoryMapCountMax 40
58
59#if UNUSED
60
61/*
62 * PCI bus information.
63 */
64typedef struct _PCI_bus_info_t {
65 union {
66 struct {
67 unsigned char configMethod1 :1;
68 unsigned char configMethod2 :1;
69 unsigned char :2;
70 unsigned char specialCycle1 :1;
71 unsigned char specialCycle2 :1;
72 } s;
73 unsigned char d;
74 } u_bus;
75 unsigned char maxBusNum;
76 unsigned char majorVersion;
77 unsigned char minorVersion;
78 unsigned char BIOSPresent;
79} PCI_bus_info_t;
80
81typedef struct {
82 unsigned long address; // address where driver was loaded
83 unsigned long size; // number of bytes
84 unsigned long type; // driver type
85} driver_config_t;
86#endif
87
88/*
89 * INT15, E820h - Query System Address Map.
90 *
91 * Documented in ACPI Specification Rev 2.0,
92 * Chapter 15 (System Address Map Interfaces).
93 */
94
95/*
96 * ACPI defined memory range types.
97 */
98enum {
99 kMemoryRangeUsable = 1, // RAM usable by the OS.
100 kMemoryRangeReserved = 2, // Reserved. (Do not use)
101 kMemoryRangeACPI = 3, // ACPI tables. Can be reclaimed.
102 kMemoryRangeNVS = 4, // ACPI NVS memory. (Do not use)
103
104 /* Undefined types should be treated as kMemoryRangeReserved */
105};
106
107/*!
108 PrivateBootInfo has fields used by the booter that used to be part of
109 KernelBootArgs_t *bootArgs. When the switch was made to EFI the structure
110 completely changed to boot_args *bootArgs. This (new to boot-132) structure
111 contains the fields the kernel no longer cares about but the booter still
112 uses internally. Some fields (e.g. the video information) remain interesting
113 to the kernel and are thus located in bootArgs although with different field names.
114 */
115typedef struct PrivateBootInfo {
116
117 char bootFile[128]; // kernel file name
118
119 config_file_t bootConfig; // the booter boot.plist
120 config_file_t overrideConfig; // additional boot.plist which can override bootConfig keys
121
122config_file_t SystemConfig; // system confing found in /Library/Preferences/SystemConfiguration/com.apple.Boot.plist
123
124
125 config_file_t smbiosConfig; // smbios.plist
126 config_file_t helperConfig; // boot helper partition's boot.plist
127
128char uuidStr[64+1];//boot device uuid
129
130} PrivateBootInfo_t;
131
132#define DEFAULT_BOOT_CONFIG (config_file_t*)0
133#define DEFAULT_SYSTEM_CONFIG (config_file_t*)1
134#define DEFAULT_OVERRIDE_CONFIG (config_file_t*)2
135#define DEFAULT_SMBIOS_CONFIG (config_file_t*)3
136#define DEFAULT_HELPER_CONFIG (config_file_t*)4
137
138extern PrivateBootInfo_t *bootInfo;
139
140#endif /* __BOOTSTRUCT_H */
141

Archive Download this file

Revision: 1972