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 */