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