1 /*
2 * CDDL HEADER START
3 *
4 * The contents of this file are subject to the terms of the
5 * Common Development and Distribution License (the "License").
6 * You may not use this file except in compliance with the License.
7 *
8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9 * or http://www.opensolaris.org/os/licensing.
10 * See the License for the specific language governing permissions
11 * and limitations under the License.
12 *
13 * When distributing Covered Code, include this CDDL HEADER in each
14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15 * If applicable, add the following below this CDDL HEADER, with the
16 * fields enclosed by brackets "[]" replaced with your own identifying
17 * information: Portions Copyright [yyyy] [name of copyright owner]
18 *
19 * CDDL HEADER END
20 */
21 /*
22 * Copyright 2010 Sun Microsystems, Inc. All rights reserved.
23 * Use is subject to license terms.
24 */
25
26 #ifndef _BOOT_PLAT_H
27 #define _BOOT_PLAT_H
28
29 #ifdef __cplusplus
30 extern "C" {
31 #endif
32
33
34 /*
35 * boot platform defaults per architecture
36 */
37 typedef struct bootplat_defaults {
38 char *plat_defaults_name;
39 char *plat_defaults_path;
40 int plat_defaults_vac;
41 } bootplat_defaults_t;
42
43 /* boot_plat.c */
44 extern int verbosemode;
45 extern char filename[];
46 extern char *const defname;
47 extern char *const defname64;
48
49 extern int bootprog(char *, char *, boolean_t);
50 extern char *choose_default_filename(char *, char *);
51 extern char *get_default_filename(void);
52 extern void post_mountroot(char *, char *);
53 extern void redirect_boot_path(char *, char *);
54 extern void set_client_bootargs(const char *, const char *);
55 extern boolean_t is_netdev(char *devpath);
56
57
58 /* bootops.c */
59 extern struct bootops bootops;
60
61 extern void setup_bootops(void);
62 extern void update_memlist(char *, char *, struct memlist **);
63
64
65 /*
66 * bootprop.c. These variables will be exported to the standalone as boot
67 * properties.
68 */
69 extern char *v2path, *kernname, *systype, *my_own_name;
70 extern char v2args_buf[];
71 #define V2ARGS_BUF_SZ OBP_MAXPATHLEN
72 extern char *v2args;
73 extern char *mfg_name;
74 extern char *impl_arch_name;
75 extern char *bootp_response;
76 extern char *boot_message;
77 extern int cache_state;
78 extern uint64_t memlistextent;
79 extern char *netdev_path;
80
81 extern void set_default_filename(char *filename);
82
83
84 /* get.c */
85 extern int cons_gets(char *, int);
86
87
88 /* machdep.c */
89 extern int vac;
90
91 extern void fiximp(void);
92 extern void retain_nvram_page();
93 extern int cpu_is_ultrasparc_1(void);
94
95
96 /* memlist.c */
97 extern void init_memlists(void);
98 extern struct memlist *fill_memlists(char *name, char *prop,
99 struct memlist *old);
100
101
102 /* srt0.c */
103 extern void _start(void *romp, ...);
104 extern void exitto(int (*entrypoint)());
105 extern void exitto64(int (*entrypoint)(), void *bootvec);
106
107
108 /* standalloc.c */
109 extern caddr_t memlistpage;
110 extern caddr_t scratchmemp;
111
112
113
114 #ifdef __cplusplus
115 }
116 #endif
117
118 #endif /* _BOOT_PLAT_H */