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