Home | History | Annotate | Download | only in sys
      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