1/* 2 * CDDL HEADER START 3 * 4 * The contents of this file are subject to the terms of the 5 * Common Development and Distribution License (the "License"). 6 * You may not use this file except in compliance with the License. 7 * 8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 9 * or http://www.opensolaris.org/os/licensing. 10 * See the License for the specific language governing permissions 11 * and limitations under the License. 12 * 13 * When distributing Covered Code, include this CDDL HEADER in each 14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 15 * If applicable, add the following below this CDDL HEADER, with the 16 * fields enclosed by brackets "[]" replaced with your own identifying 17 * information: Portions Copyright [yyyy] [name of copyright owner] 18 * 19 * CDDL HEADER END 20 */ 21/* 22 * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. 23 */ 24 25#include <sys/cpu_module.h> 26#include <sys/lockstat.h> 27 28/* 29 * This is a dummy file that provides the default cpu module 30 * that is linked to unix. 31 */ 32 33uint_t root_phys_addr_lo_mask; 34int64_t timedelta; 35hrtime_t hres_last_tick; 36volatile timestruc_t hrestime; 37int64_t hrestime_adj; 38volatile int hres_lock; 39uint_t nsec_scale; 40uint_t nsec_shift; 41uint_t adj_shift; 42hrtime_t hrtime_base; 43int traptrace_use_stick; 44uint_t cpu_impl_dual_pgsz; 45uint64_t native_tick_offset; 46uint64_t native_stick_offset; 47 48void 49cpu_setup(void) 50{} 51 52void 53cpu_init_tick_freq(void) 54{} 55 56/*ARGSUSED*/ 57void 58vtag_flushpage(caddr_t addr, uint64_t sfmmup) 59{} 60 61void 62vtag_flushall(void) 63{} 64 65void 66vtag_flushall_uctxs(void) 67{} 68 69/*ARGSUSED*/ 70void 71vtag_flushpage_tl1(uint64_t addr, uint64_t sfmmup) 72{} 73 74/*ARGSUSED*/ 75void 76vtag_flush_pgcnt_tl1(uint64_t addr, uint64_t sfmmup_pgcnt) 77{} 78 79/*ARGSUSED*/ 80void 81vtag_flushall_tl1(uint64_t dummy1, uint64_t dummy2) 82{} 83 84/*ARGSUSED*/ 85void 86vtag_unmap_perm_tl1(uint64_t addr, uint64_t ctx) 87{} 88 89/*ARGSUSED*/ 90void 91vac_flushpage(pfn_t pf, int color) 92{} 93 94/*ARGSUSED*/ 95void 96vac_flushpage_tl1(uint64_t pf, uint64_t color) 97{} 98 99/*ARGSUSED*/ 100void 101vac_flushcolor(int color, pfn_t pf) 102{} 103 104/*ARGSUSED*/ 105void 106vac_flushcolor_tl1(uint64_t color, uint64_t dummy) 107{} 108 109/*ARGSUSED*/ 110void 111init_mondo(xcfunc_t func, uint64_t arg1, uint64_t arg2) 112{} 113 114/*ARGSUSED*/ 115void 116send_one_mondo(int cpuid) 117{} 118 119/*ARGSUSED*/ 120void 121send_mondo_set(cpuset_t set) 122{} 123 124/*ARGSUSED*/ 125void 126flush_instr_mem(caddr_t addr, size_t len) 127{} 128 129void 130syncfpu(void) 131{} 132 133/*ARGSUSED*/ 134void 135cpu_change_speed(uint64_t divisor, uint64_t arg2) 136{} 137 138u_longlong_t 139gettick(void) 140{ return (0); } 141 142u_longlong_t 143randtick(void) 144{ return (0); } 145 146uint64_t 147gettick_counter(void) 148{ return (0); } 149 150/*ARGSUSED*/ 151void 152gethrestime(timespec_t *tp) 153{} 154 155time_t 156gethrestime_sec(void) 157{ return (0); } 158 159/*ARGSUSED*/ 160void 161gethrestime_lasttick(timespec_t *tp) 162{} 163 164hrtime_t 165gethrtime(void) 166{ return (0); } 167 168hrtime_t 169gethrtime_unscaled(void) 170{ return (0); } 171 172hrtime_t 173gethrtime_waitfree(void) 174{ return (0); } 175 176hrtime_t 177dtrace_gethrtime(void) 178{ return (0); } 179 180uint_t 181get_impl(void) 182{ return (0); } 183 184hrtime_t 185get_hrestime(void) 186{ return (0); } 187 188ulong_t 189get_timestamp(void) 190{ return (0); } 191 192ulong_t 193get_virtime(void) 194{ return (0); } 195 196hrtime_t 197gethrtime_max(void) 198{ return (0); } 199 200/*ARGSUSED*/ 201void 202scalehrtime(hrtime_t *hrt) 203{} 204 205void 206hres_tick(void) 207{} 208 209/*ARGSUSED*/ 210void 211tickcmpr_set(uint64_t clock_cycles) 212{} 213 214void 215tickcmpr_disable(void) 216{} 217 218/*ARGSUSED*/ 219void 220tick_write_delta(uint64_t delta) 221{} 222 223int 224tickcmpr_disabled(void) 225{ return (0); } 226 227/*ARGSUSED*/ 228void 229drv_usecwait(clock_t n) 230{} 231 232/* 233 * Processor-optimized memory routines 234 */ 235/*ARGSUSED*/ 236int 237kcopy(const void *from, void *to, size_t count) 238{ return (0); } 239 240/*ARGSUSED*/ 241int 242kcopy_nta(const void *from, void *to, size_t count, int dummy) 243{ return (0); } 244 245/*ARGSUSED*/ 246void 247bcopy(const void *from, void *to, size_t count) 248{} 249 250/*ARGSUSED*/ 251void 252ovbcopy(const void *from, void *to, size_t count) 253{} 254 255/*ARGSUSED*/ 256int 257copyin(const void *uaddr, void *kaddr, size_t count) 258{ return (0); } 259 260/*ARGSUSED*/ 261int 262xcopyin(const void *uaddr, void *kaddr, size_t count) 263{ return (0); } 264 265/*ARGSUSED*/ 266int 267xcopyin_nta(const void *uaddr, void *kaddr, size_t count, int dummy) 268{ return (0); } 269 270/*ARGSUSED*/ 271int 272copyout(const void *kaddr, void *uaddr, size_t count) 273{ return (0); } 274 275/*ARGSUSED*/ 276int 277xcopyout(const void *kaddr, void *uaddr, size_t count) 278{ return (0); } 279 280/*ARGSUSED*/ 281int 282xcopyout_nta(const void *kaddr, void *uaddr, size_t count, int dummy) 283{ return (0); } 284 285/*ARGSUSED*/ 286void 287copyout_noerr(const void *kfrom, void *uto, size_t count) 288{} 289 290/*ARGSUSED*/ 291void 292copyin_noerr(const void *kfrom, void *uto, size_t count) 293{} 294 295/*ARGSUSED*/ 296int 297xcopyin_little(const void *uaddr, void *kaddr, size_t count) 298{ return (0); } 299 300/*ARGSUSED*/ 301int 302xcopyout_little(const void *kaddr, void *uaddr, size_t count) 303{ return (0); } 304 305/*ARGSUSED*/ 306void 307hwblkpagecopy(const void *src, void *dst) 308{} 309 310/*ARGSUSED*/ 311void 312hw_pa_bcopy32(uint64_t src, uint64_t dst) 313{} 314 315/*ARGSUSED*/ 316int 317hwblkclr(void *addr, size_t len) 318{ return (0); } 319 320int use_hw_bzero; 321int use_hw_bcopy; 322uint_t hw_copy_limit_1; 323uint_t hw_copy_limit_2; 324uint_t hw_copy_limit_4; 325uint_t hw_copy_limit_8; 326 327/* 328 * tick operations 329 */ 330 331void 332tick_rtt(void) 333{ } 334 335void 336pil14_interrupt(void) 337{ } 338 339void 340pil15_interrupt(void) 341{ } 342 343/* ARGSUSED */ 344void 345cpu_init_private(struct cpu *cp) 346{} 347 348/* ARGSUSED */ 349void 350cpu_uninit_private(struct cpu *cp) 351{} 352 353void 354sticksync_slave(void) 355{} 356 357void 358sticksync_master(void) 359{} 360 361/*ARGSUSED*/ 362int 363dtrace_blksuword32(uintptr_t addr, uint32_t *data, int tryagain) 364{ return (-1); } 365