1 1991 heppo /* 2 1991 heppo * CDDL HEADER START 3 1991 heppo * 4 1991 heppo * The contents of this file are subject to the terms of the 5 1991 heppo * Common Development and Distribution License (the "License"). 6 1991 heppo * You may not use this file except in compliance with the License. 7 1991 heppo * 8 1991 heppo * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 9 1991 heppo * or http://www.opensolaris.org/os/licensing. 10 1991 heppo * See the License for the specific language governing permissions 11 1991 heppo * and limitations under the License. 12 1991 heppo * 13 1991 heppo * When distributing Covered Code, include this CDDL HEADER in each 14 1991 heppo * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 15 1991 heppo * If applicable, add the following below this CDDL HEADER, with the 16 1991 heppo * fields enclosed by brackets "[]" replaced with your own identifying 17 1991 heppo * information: Portions Copyright [yyyy] [name of copyright owner] 18 1991 heppo * 19 1991 heppo * CDDL HEADER END 20 1991 heppo */ 21 1991 heppo 22 1991 heppo /* 23 5974 jm22469 * Copyright 2008 Sun Microsystems, Inc. All rights reserved. 24 1991 heppo * Use is subject to license terms. 25 1991 heppo */ 26 1991 heppo 27 1991 heppo #ifndef _SYS_PROMIF_IMPL_H 28 1991 heppo #define _SYS_PROMIF_IMPL_H 29 1991 heppo 30 1991 heppo #pragma ident "%Z%%M% %I% %E% SMI" 31 1991 heppo 32 1991 heppo #ifdef __cplusplus 33 1991 heppo extern "C" { 34 1991 heppo #endif 35 1991 heppo 36 1991 heppo #include <sys/types.h> 37 1991 heppo #ifdef _KERNEL 38 1991 heppo #include <sys/promimpl.h> 39 1991 heppo #endif 40 1991 heppo #include <sys/obpdefs.h> 41 1991 heppo #include <sys/cmn_err.h> 42 1991 heppo #include <sys/note.h> 43 1991 heppo 44 1991 heppo /* 45 1991 heppo * CIF handler functions 46 1991 heppo */ 47 1991 heppo typedef int (*cif_func_t) (void *); 48 1991 heppo extern int promif_getprop(void *p); 49 1991 heppo extern int promif_getproplen(void *p); 50 1991 heppo extern int promif_nextprop(void *p); 51 1991 heppo extern int promif_nextnode(void *p); 52 1991 heppo extern int promif_childnode(void *p); 53 1991 heppo extern int promif_parentnode(void *p); 54 1991 heppo extern int promif_enter_mon(void *p); 55 1991 heppo extern int promif_exit_to_mon(void *p); 56 1991 heppo extern int promif_reboot(void *p); 57 1991 heppo extern int promif_write(void *p); 58 1991 heppo extern int promif_read(void *p); 59 1991 heppo extern int promif_interpret(void *p); 60 1991 heppo extern int promif_finddevice(void *p); 61 1991 heppo extern int promif_instance_to_package(void *p); 62 1991 heppo #ifndef _KMDB 63 1991 heppo extern int promif_setprop(void *p); 64 1991 heppo extern int promif_test(void *p); 65 1991 heppo extern int promif_instance_to_path(void *p); 66 1991 heppo extern int promif_power_off(void *p); 67 1991 heppo extern int promif_asr_list_keys_len(void *p); 68 1991 heppo extern int promif_asr_list_keys(void *p); 69 1991 heppo extern int promif_asr_export_len(void *p); 70 1991 heppo extern int promif_asr_export(void *p); 71 1991 heppo extern int promif_set_security_key(void *p); 72 1991 heppo extern int promif_get_security_key(void *p); 73 1991 heppo extern int promif_start_cpu(void *p); 74 1991 heppo extern int promif_set_mmfsa_traptable(void *p); 75 1991 heppo extern int promif_set_sun4v_api_version(void *p); 76 1991 heppo extern int promif_get_sun4v_api_version(void *p); 77 1991 heppo #endif 78 1991 heppo 79 1991 heppo /* 80 1991 heppo * Shadow device tree access functions 81 1991 heppo */ 82 1991 heppo extern pnode_t promif_stree_nextnode(pnode_t nodeid); 83 1991 heppo extern pnode_t promif_stree_childnode(pnode_t nodeid); 84 1991 heppo extern pnode_t promif_stree_parentnode(pnode_t nodeid); 85 1991 heppo extern int promif_stree_getproplen(pnode_t, char *name); 86 1991 heppo extern int promif_stree_getprop(pnode_t, char *name, void *value); 87 1991 heppo extern int promif_stree_setprop(pnode_t, char *name, void *value, int len); 88 1991 heppo extern char *promif_stree_nextprop(pnode_t nodeid, char *name, char *next); 89 1991 heppo 90 1991 heppo /* 91 1991 heppo * Hooks for kmdb to get and set a pointer to the PROM shadow tree 92 1991 heppo */ 93 1991 heppo #ifdef _KMDB 94 1991 heppo extern void promif_stree_setroot(void *root); 95 1991 heppo extern caddr_t promif_stree_getroot(void); 96 1991 heppo #endif 97 1991 heppo 98 1991 heppo /* 99 1991 heppo * Miscellaneous functions 100 1991 heppo */ 101 1991 heppo extern cif_func_t promif_find_cif_callback(char *opname); 102 1991 heppo extern int promif_ldom_setprop(char *name, void *value, int valuelen); 103 5974 jm22469 extern char promif_getchar(void); 104 1991 heppo 105 1991 heppo /* 106 1991 heppo * Initialization functions 107 1991 heppo */ 108 1991 heppo #ifdef _KMDB 109 1991 heppo extern void cif_init(char *, caddr_t, ihandle_t, ihandle_t, 110 1991 heppo phandle_t, phandle_t, pnode_t, pnode_t); 111 1991 heppo extern void promif_io_init(ihandle_t, ihandle_t, phandle_t, phandle_t); 112 1991 heppo extern void promif_set_nodes(pnode_t, pnode_t); 113 1991 heppo #else 114 1991 heppo extern void promif_io_init(void); 115 1991 heppo extern void promif_stree_init(void); 116 1991 heppo extern void promif_prop_init(void); 117 1991 heppo #endif 118 1991 heppo 119 1991 heppo /* 120 1991 heppo * Debugging support 121 1991 heppo */ 122 1991 heppo #ifdef DEBUG 123 1991 heppo 124 1991 heppo extern uint_t cif_debug; 125 1991 heppo 126 1991 heppo #define CIF_DBG_FLAG_NODE 0x01 127 1991 heppo #define CIF_DBG_FLAG_REBOOT 0x02 128 1991 heppo 129 1991 heppo #define CIF_DBG_ALL if (cif_debug) prom_printf 130 1991 heppo #define CIF_DBG_NODE if (cif_debug & CIF_DBG_FLAG_NODE) prom_printf 131 1991 heppo #define CIF_DBG_REBOOT if (cif_debug & CIF_DBG_FLAG_REBOOT) prom_printf 132 1991 heppo 133 1991 heppo #else /* DEBUG */ 134 1991 heppo 135 1991 heppo #define CIF_DBG_ALL _NOTE(CONSTCOND) if (0) prom_printf 136 1991 heppo #define CIF_DBG_NODE CIF_DBG_ALL 137 1991 heppo #define CIF_DBG_REBOOT CIF_DBG_ALL 138 1991 heppo 139 1991 heppo #endif /* DEBUG */ 140 1991 heppo 141 1991 heppo #ifdef __cplusplus 142 1991 heppo } 143 1991 heppo #endif 144 1991 heppo 145 1991 heppo #endif /* _SYS_PROMIF_IMPL_H */ 146