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 * Copyright 2019 Peter Tribble.
25 */
26
27 #ifndef _BOOT_PLAT_H
28 #define _BOOT_PLAT_H
29
30 #ifdef __cplusplus
31 extern "C" {
32 #endif
33
34
35 /*
36 * boot platform defaults per architecture
37 */
38 typedef struct bootplat_defaults {
39 char *plat_defaults_name;
40 char *plat_defaults_path;
41 int plat_defaults_vac;
42 } bootplat_defaults_t;
43
44 /* boot_plat.c */
45 extern int verbosemode;
46 extern char filename[];
47 extern char *const defname;
48 extern char *const defname64;
49
50 extern int bootprog(char *, char *, boolean_t);
51 extern char *choose_default_filename(char *, char *);
52 extern char *get_default_filename(void);
53 extern void post_mountroot(char *, char *);
54 extern void redirect_boot_path(char *, char *);
55 extern void set_client_bootargs(const char *, const char *);
56 extern boolean_t is_netdev(char *devpath);
57
58
59 /* bootops.c */
60 extern struct bootops bootops;
61
62 extern void setup_bootops(void);
63 extern void update_memlist(char *, char *, struct memlist **);
64
65
66 /*
67 * bootprop.c. These variables will be exported to the standalone as boot
68 * properties.
69 */
70 extern char *v2path, *kernname, *systype, *my_own_name;
71 extern char v2args_buf[];
72 #define V2ARGS_BUF_SZ OBP_MAXPATHLEN
73 extern char *v2args;
74 extern char *mfg_name;
75 extern char *impl_arch_name;
76 extern char *bootp_response;
77 extern char *boot_message;
78 extern int cache_state;
79 extern uint64_t memlistextent;
80 extern char *netdev_path;
81
82 extern void set_default_filename(char *filename);
83
84
85 /* get.c */
86 extern int cons_gets(char *, int);
87
88
89 /* machdep.c */
90 extern int vac;
91
92 extern void fiximp(void);
93 extern void retain_nvram_page();
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 */