xref: /onnv-gate/usr/src/uts/sun4v/sys/promif_impl.h (revision 5974:05fbdff2571b)
11991Sheppo /*
21991Sheppo  * CDDL HEADER START
31991Sheppo  *
41991Sheppo  * The contents of this file are subject to the terms of the
51991Sheppo  * Common Development and Distribution License (the "License").
61991Sheppo  * You may not use this file except in compliance with the License.
71991Sheppo  *
81991Sheppo  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
91991Sheppo  * or http://www.opensolaris.org/os/licensing.
101991Sheppo  * See the License for the specific language governing permissions
111991Sheppo  * and limitations under the License.
121991Sheppo  *
131991Sheppo  * When distributing Covered Code, include this CDDL HEADER in each
141991Sheppo  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
151991Sheppo  * If applicable, add the following below this CDDL HEADER, with the
161991Sheppo  * fields enclosed by brackets "[]" replaced with your own identifying
171991Sheppo  * information: Portions Copyright [yyyy] [name of copyright owner]
181991Sheppo  *
191991Sheppo  * CDDL HEADER END
201991Sheppo  */
211991Sheppo 
221991Sheppo /*
23*5974Sjm22469  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
241991Sheppo  * Use is subject to license terms.
251991Sheppo  */
261991Sheppo 
271991Sheppo #ifndef	_SYS_PROMIF_IMPL_H
281991Sheppo #define	_SYS_PROMIF_IMPL_H
291991Sheppo 
301991Sheppo #pragma ident	"%Z%%M%	%I%	%E% SMI"
311991Sheppo 
321991Sheppo #ifdef	__cplusplus
331991Sheppo extern "C" {
341991Sheppo #endif
351991Sheppo 
361991Sheppo #include <sys/types.h>
371991Sheppo #ifdef _KERNEL
381991Sheppo #include <sys/promimpl.h>
391991Sheppo #endif
401991Sheppo #include <sys/obpdefs.h>
411991Sheppo #include <sys/cmn_err.h>
421991Sheppo #include <sys/note.h>
431991Sheppo 
441991Sheppo /*
451991Sheppo  * CIF handler functions
461991Sheppo  */
471991Sheppo typedef int (*cif_func_t) (void *);
481991Sheppo extern int promif_getprop(void *p);
491991Sheppo extern int promif_getproplen(void *p);
501991Sheppo extern int promif_nextprop(void *p);
511991Sheppo extern int promif_nextnode(void *p);
521991Sheppo extern int promif_childnode(void *p);
531991Sheppo extern int promif_parentnode(void *p);
541991Sheppo extern int promif_enter_mon(void *p);
551991Sheppo extern int promif_exit_to_mon(void *p);
561991Sheppo extern int promif_reboot(void *p);
571991Sheppo extern int promif_write(void *p);
581991Sheppo extern int promif_read(void *p);
591991Sheppo extern int promif_interpret(void *p);
601991Sheppo extern int promif_finddevice(void *p);
611991Sheppo extern int promif_instance_to_package(void *p);
621991Sheppo #ifndef _KMDB
631991Sheppo extern int promif_setprop(void *p);
641991Sheppo extern int promif_test(void *p);
651991Sheppo extern int promif_instance_to_path(void *p);
661991Sheppo extern int promif_power_off(void *p);
671991Sheppo extern int promif_asr_list_keys_len(void *p);
681991Sheppo extern int promif_asr_list_keys(void *p);
691991Sheppo extern int promif_asr_export_len(void *p);
701991Sheppo extern int promif_asr_export(void *p);
711991Sheppo extern int promif_set_security_key(void *p);
721991Sheppo extern int promif_get_security_key(void *p);
731991Sheppo extern int promif_start_cpu(void *p);
741991Sheppo extern int promif_set_mmfsa_traptable(void *p);
751991Sheppo extern int promif_set_sun4v_api_version(void *p);
761991Sheppo extern int promif_get_sun4v_api_version(void *p);
771991Sheppo #endif
781991Sheppo 
791991Sheppo /*
801991Sheppo  * Shadow device tree access functions
811991Sheppo  */
821991Sheppo extern pnode_t promif_stree_nextnode(pnode_t nodeid);
831991Sheppo extern pnode_t promif_stree_childnode(pnode_t nodeid);
841991Sheppo extern pnode_t promif_stree_parentnode(pnode_t nodeid);
851991Sheppo extern int promif_stree_getproplen(pnode_t, char *name);
861991Sheppo extern int promif_stree_getprop(pnode_t, char *name, void *value);
871991Sheppo extern int promif_stree_setprop(pnode_t, char *name, void *value, int len);
881991Sheppo extern char *promif_stree_nextprop(pnode_t nodeid, char *name, char *next);
891991Sheppo 
901991Sheppo /*
911991Sheppo  * Hooks for kmdb to get and set a pointer to the PROM shadow tree
921991Sheppo  */
931991Sheppo #ifdef _KMDB
941991Sheppo extern void promif_stree_setroot(void *root);
951991Sheppo extern caddr_t promif_stree_getroot(void);
961991Sheppo #endif
971991Sheppo 
981991Sheppo /*
991991Sheppo  * Miscellaneous functions
1001991Sheppo  */
1011991Sheppo extern cif_func_t promif_find_cif_callback(char *opname);
1021991Sheppo extern int promif_ldom_setprop(char *name, void *value, int valuelen);
103*5974Sjm22469 extern char promif_getchar(void);
1041991Sheppo 
1051991Sheppo /*
1061991Sheppo  * Initialization functions
1071991Sheppo  */
1081991Sheppo #ifdef _KMDB
1091991Sheppo extern void cif_init(char *, caddr_t, ihandle_t, ihandle_t,
1101991Sheppo     phandle_t, phandle_t, pnode_t, pnode_t);
1111991Sheppo extern void promif_io_init(ihandle_t, ihandle_t, phandle_t, phandle_t);
1121991Sheppo extern void promif_set_nodes(pnode_t, pnode_t);
1131991Sheppo #else
1141991Sheppo extern void promif_io_init(void);
1151991Sheppo extern void promif_stree_init(void);
1161991Sheppo extern void promif_prop_init(void);
1171991Sheppo #endif
1181991Sheppo 
1191991Sheppo /*
1201991Sheppo  * Debugging support
1211991Sheppo  */
1221991Sheppo #ifdef DEBUG
1231991Sheppo 
1241991Sheppo extern uint_t cif_debug;
1251991Sheppo 
1261991Sheppo #define	CIF_DBG_FLAG_NODE		0x01
1271991Sheppo #define	CIF_DBG_FLAG_REBOOT		0x02
1281991Sheppo 
1291991Sheppo #define	CIF_DBG_ALL	if (cif_debug)				prom_printf
1301991Sheppo #define	CIF_DBG_NODE	if (cif_debug & CIF_DBG_FLAG_NODE)	prom_printf
1311991Sheppo #define	CIF_DBG_REBOOT	if (cif_debug & CIF_DBG_FLAG_REBOOT)	prom_printf
1321991Sheppo 
1331991Sheppo #else /* DEBUG */
1341991Sheppo 
1351991Sheppo #define	CIF_DBG_ALL	_NOTE(CONSTCOND) if (0)	prom_printf
1361991Sheppo #define	CIF_DBG_NODE	CIF_DBG_ALL
1371991Sheppo #define	CIF_DBG_REBOOT	CIF_DBG_ALL
1381991Sheppo 
1391991Sheppo #endif /* DEBUG */
1401991Sheppo 
1411991Sheppo #ifdef	__cplusplus
1421991Sheppo }
1431991Sheppo #endif
1441991Sheppo 
1451991Sheppo #endif /* _SYS_PROMIF_IMPL_H */
146