#ifndef _SYS_CPU_MODULE_H
#define _SYS_CPU_MODULE_H
#pragma ident "%Z%%M% %I% %E% SMI"
#include <sys/pte.h>
#include <sys/async.h>
#include <sys/x_call.h>
#include <sys/conf.h>
#include <sys/obpdefs.h>
#include <sys/mdesc.h>
#ifdef __cplusplus
extern "C" {
#endif
#ifdef _KERNEL
extern struct module_ops *moduleops;
struct kdi;
void cpu_setup(void);
struct cpu_node;
void cpu_fiximp(struct cpu_node *cpunode);
void cpu_map_exec_units(struct cpu *cp);
#pragma weak mmu_init_mmu_page_sizes
int mmu_init_mmu_page_sizes(int cinfo);
void vtag_flushpage(caddr_t addr, uint64_t sfmmup);
void vtag_flushall(void);
#pragma weak vtag_flushall_uctxs
void vtag_flushall_uctxs(void);
void vtag_flushpage_tl1(uint64_t addr, uint64_t sfmmup);
void vtag_flush_pgcnt_tl1(uint64_t addr, uint64_t sfmmup_pgcnt);
void vtag_flushall_tl1(uint64_t dummy1, uint64_t dummy2);
void vtag_unmap_perm_tl1(uint64_t addr, uint64_t ctx);
extern uchar_t *ctx_pgsz_array;
void flush_instr_mem(caddr_t addr, size_t len);
#pragma weak itlb_parity_trap
void itlb_parity_trap(void);
#pragma weak dtlb_parity_trap
void dtlb_parity_trap(void);
#pragma weak demap_all
void cpu_change_speed(uint64_t divisor, uint64_t arg2);
#pragma weak dtrace_flush_sec
void dtrace_flush_sec(uintptr_t);
void cpu_init_private(struct cpu *);
void cpu_uninit_private(struct cpu *);
#pragma weak cpu_mp_init
void cpu_mp_init(void);
#pragma weak cpu_feature_init
void cpu_feature_init(void);
#pragma weak cpu_error_init
void cpu_error_init(int);
extern int kzero(void *addr, size_t count);
extern void uzero(void *addr, size_t count);
extern void bzero(void *addr, size_t count);
#define CPU_TSTATCONF_INIT 1
#define CPU_TSTATCONF_FINI 2
#define CPU_TSTATCONF_ENABLE 3
#define CPU_TSTATCONF_DISABLE 4
int cpu_trapstat_conf(int cmd);
void cpu_trapstat_data(void *buf, uint_t pgszs);
#define NO_MAPPING_FOUND 0xffffffff
#define NO_EU_MAPPING_FOUND NO_MAPPING_FOUND
#define NO_CHIP_MAPPING_FOUND NO_MAPPING_FOUND
#define NO_CORE_MAPPING_FOUND NO_MAPPING_FOUND
#define NO_L2_CACHE_MAPPING_FOUND NO_MAPPING_FOUND
#define DEFAULT_SUN4V_MMU_PAGESIZE_MASK ((1 << TTE8K) | (1 << TTE64K) \
| (1 << TTE4M))
void cpu_setup_common(char **);
int l2_cache_node_count(void);
void fill_cpu(md_t *, mde_cookie_t);
int setup_cpu_common(int);
int cleanup_cpu_common(int);
void setup_exec_unit_mappings(md_t *);
void setup_chip_mappings(md_t *);
boolean_t broken_md_flag;
int va_bits;
#endif
#ifdef __cplusplus
}
#endif
#endif