* ========== Copyright Header Begin ==========================================
* OpenSPARC T2 Processor File: tm_impl.h
* Copyright (c) 2006 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES.
* The above named program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public
* License version 2 as published by the Free Software Foundation.
* The above named program is distributed in the hope that it will be
* useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
* You should have received a copy of the GNU General Public
* License along with this work; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
* ========== Copyright Header End ============================================
* Copyright (C) 2004 Sun Microsystems, Inc.
#pragma ident "@(#)1.36 06/05/19 tm_impl.h"
/////////////////////////////////////////
typedef struct asi_handler_t
mmi_ld_asi_action mmi_ld_action
;
mmi_st_asi_action mmi_st_action
;
typedef List1Node
<AsiHandlerT
> AsiHandlerNode
;
/////////////////////////////////////////
typedef List1Node
<LdmCmd
> LdmCmdNode
;
/////////////////////////////////////////
typedef struct ldm_time_intf
fn_event_cycle event_handler
;
TM_OPAQUE_DATA client_data
;
struct ldm_time_intf
*next
;
struct ldm_time_intf
*self
;
#define TM_INTF_STATUS_ENABLED 22
#define TM_INTF_STATUS_DISABLED 33
/////////////////////////////////////////
uint32_t mode
; // TM_BUFMODE || TM_CBMODE
char *soname
; // name of *.so file
void *so_handle
; // is returned by DLOPEN
TM_OPAQUE_DATA client_data
;
TM_OPAQUE_DATA asi_client_data
;
fn_time_interval ti_action
;
mmi_interface_cb interface_cb
;
mmi_modinfo_cb modinfo_cb
;
fn_cpustat cpustat_action
;
fn_cpustatB cpustat_actionB
;
// misc callback (io, asi)
fn_misc io_mmi_ld_action
;
fn_misc io_mmi_st_action
;
////////////////////////////////////
mmi_instance_creator create_instance
;
////////////////////////////////////
uint8_t ea_valid
[MAX_MP
];
uint8_t tr_valid
[MAX_MP
];
typedef List1Node
<Ldm
> LdmNode
;
extern LdmNode
*head_ldm
;
extern LdmNode
*head_spec_ldm
;
/////////////////////////////////////////
//void tm_handle_tlb (cpuT* sp, Ldm* pldm, Tlb_t *ptlb, uint32_t idx);
void ldm_tick_ext_init ();
Ldm
* ldm_add_spec (char * name
, const char *soname
);
/////////////////////////////////////////
typedef void (*fn_setvar_local
)(void *cb_data
, void *value
);
typedef struct mmi_var_t
{
typedef List1Node
<MmiVar
> MmiVarNode
;
// MMI dump-restore functionality
// this mirrors blaze DR, but hides the DR_opaque interface from mmi modules
mmi_restore_cb restore_fn
;
extern mmi_dr_s
* mmi_dr_list
;
extern int mmi_dr_list_sz
;
extern int mmi_dr_list_count
;