Deleted Added
full compact
cpufunc.h (266058) cpufunc.h (266203)
1/* $NetBSD: cpufunc.h,v 1.29 2003/09/06 09:08:35 rearnsha Exp $ */
2
3/*-
4 * Copyright (c) 1997 Mark Brinicombe.
5 * Copyright (c) 1997 Causality Limited
6 * All rights reserved.
7 *
8 * Redistribution and use in source and binary forms, with or without

--- 24 unchanged lines hidden (view full) ---

33 * SUCH DAMAGE.
34 *
35 * RiscBSD kernel project
36 *
37 * cpufunc.h
38 *
39 * Prototypes for cpu, mmu and tlb related functions.
40 *
1/* $NetBSD: cpufunc.h,v 1.29 2003/09/06 09:08:35 rearnsha Exp $ */
2
3/*-
4 * Copyright (c) 1997 Mark Brinicombe.
5 * Copyright (c) 1997 Causality Limited
6 * All rights reserved.
7 *
8 * Redistribution and use in source and binary forms, with or without

--- 24 unchanged lines hidden (view full) ---

33 * SUCH DAMAGE.
34 *
35 * RiscBSD kernel project
36 *
37 * cpufunc.h
38 *
39 * Prototypes for cpu, mmu and tlb related functions.
40 *
41 * $FreeBSD: stable/10/sys/arm/include/cpufunc.h 266058 2014-05-14 17:40:18Z ian $
41 * $FreeBSD: stable/10/sys/arm/include/cpufunc.h 266203 2014-05-16 00:14:50Z ian $
42 */
43
44#ifndef _MACHINE_CPUFUNC_H_
45#define _MACHINE_CPUFUNC_H_
46
47#ifdef _KERNEL
48
49#include <sys/types.h>

--- 49 unchanged lines hidden (view full) ---

99 * Invalidate I-cache range
100 *
101 * Note that the ARM term for "write-back" is "clean". We use
102 * the term "write-back" since it's a more common way to describe
103 * the operation.
104 *
105 * There are some rules that must be followed:
106 *
42 */
43
44#ifndef _MACHINE_CPUFUNC_H_
45#define _MACHINE_CPUFUNC_H_
46
47#ifdef _KERNEL
48
49#include <sys/types.h>

--- 49 unchanged lines hidden (view full) ---

99 * Invalidate I-cache range
100 *
101 * Note that the ARM term for "write-back" is "clean". We use
102 * the term "write-back" since it's a more common way to describe
103 * the operation.
104 *
105 * There are some rules that must be followed:
106 *
107 * ID-cache Invalidate All:
108 * Unlike other functions, this one must never write back.
109 * It is used to intialize the MMU when it is in an unknown
110 * state (such as when it may have lines tagged as valid
111 * that belong to a previous set of mappings).
112 *
107 * I-cache Synch (all or range):
108 * The goal is to synchronize the instruction stream,
109 * so you may beed to write-back dirty D-cache blocks
110 * first. If a range is requested, and you can't
111 * synchronize just a range, you have to hit the whole
112 * thing.
113 *
114 * D-cache Write-Back and Invalidate range:

--- 18 unchanged lines hidden (view full) ---

133 void (*cf_icache_sync_all) (void);
134 void (*cf_icache_sync_range) (vm_offset_t, vm_size_t);
135
136 void (*cf_dcache_wbinv_all) (void);
137 void (*cf_dcache_wbinv_range) (vm_offset_t, vm_size_t);
138 void (*cf_dcache_inv_range) (vm_offset_t, vm_size_t);
139 void (*cf_dcache_wb_range) (vm_offset_t, vm_size_t);
140
113 * I-cache Synch (all or range):
114 * The goal is to synchronize the instruction stream,
115 * so you may beed to write-back dirty D-cache blocks
116 * first. If a range is requested, and you can't
117 * synchronize just a range, you have to hit the whole
118 * thing.
119 *
120 * D-cache Write-Back and Invalidate range:

--- 18 unchanged lines hidden (view full) ---

139 void (*cf_icache_sync_all) (void);
140 void (*cf_icache_sync_range) (vm_offset_t, vm_size_t);
141
142 void (*cf_dcache_wbinv_all) (void);
143 void (*cf_dcache_wbinv_range) (vm_offset_t, vm_size_t);
144 void (*cf_dcache_inv_range) (vm_offset_t, vm_size_t);
145 void (*cf_dcache_wb_range) (vm_offset_t, vm_size_t);
146
147 void (*cf_idcache_inv_all) (void);
141 void (*cf_idcache_wbinv_all) (void);
142 void (*cf_idcache_wbinv_range) (vm_offset_t, vm_size_t);
143 void (*cf_l2cache_wbinv_all) (void);
144 void (*cf_l2cache_wbinv_range) (vm_offset_t, vm_size_t);
145 void (*cf_l2cache_inv_range) (vm_offset_t, vm_size_t);
146 void (*cf_l2cache_wb_range) (vm_offset_t, vm_size_t);
147
148 /* Other functions */

--- 84 unchanged lines hidden (view full) ---

233#define cpu_icache_sync_all() cpufuncs.cf_icache_sync_all()
234#define cpu_icache_sync_range(a, s) cpufuncs.cf_icache_sync_range((a), (s))
235
236#define cpu_dcache_wbinv_all() cpufuncs.cf_dcache_wbinv_all()
237#define cpu_dcache_wbinv_range(a, s) cpufuncs.cf_dcache_wbinv_range((a), (s))
238#define cpu_dcache_inv_range(a, s) cpufuncs.cf_dcache_inv_range((a), (s))
239#define cpu_dcache_wb_range(a, s) cpufuncs.cf_dcache_wb_range((a), (s))
240
148 void (*cf_idcache_wbinv_all) (void);
149 void (*cf_idcache_wbinv_range) (vm_offset_t, vm_size_t);
150 void (*cf_l2cache_wbinv_all) (void);
151 void (*cf_l2cache_wbinv_range) (vm_offset_t, vm_size_t);
152 void (*cf_l2cache_inv_range) (vm_offset_t, vm_size_t);
153 void (*cf_l2cache_wb_range) (vm_offset_t, vm_size_t);
154
155 /* Other functions */

--- 84 unchanged lines hidden (view full) ---

240#define cpu_icache_sync_all() cpufuncs.cf_icache_sync_all()
241#define cpu_icache_sync_range(a, s) cpufuncs.cf_icache_sync_range((a), (s))
242
243#define cpu_dcache_wbinv_all() cpufuncs.cf_dcache_wbinv_all()
244#define cpu_dcache_wbinv_range(a, s) cpufuncs.cf_dcache_wbinv_range((a), (s))
245#define cpu_dcache_inv_range(a, s) cpufuncs.cf_dcache_inv_range((a), (s))
246#define cpu_dcache_wb_range(a, s) cpufuncs.cf_dcache_wb_range((a), (s))
247
248#define cpu_idcache_inv_all() cpufuncs.cf_idcache_inv_all()
241#define cpu_idcache_wbinv_all() cpufuncs.cf_idcache_wbinv_all()
242#define cpu_idcache_wbinv_range(a, s) cpufuncs.cf_idcache_wbinv_range((a), (s))
243#define cpu_l2cache_wbinv_all() cpufuncs.cf_l2cache_wbinv_all()
244#define cpu_l2cache_wb_range(a, s) cpufuncs.cf_l2cache_wb_range((a), (s))
245#define cpu_l2cache_inv_range(a, s) cpufuncs.cf_l2cache_inv_range((a), (s))
246#define cpu_l2cache_wbinv_range(a, s) cpufuncs.cf_l2cache_wbinv_range((a), (s))
247
248#define cpu_flush_prefetchbuf() cpufuncs.cf_flush_prefetchbuf()

--- 241 unchanged lines hidden (view full) ---

490void armv6_icache_sync_all (void);
491void armv6_icache_sync_range (vm_offset_t, vm_size_t);
492
493void armv6_dcache_wbinv_all (void);
494void armv6_dcache_wbinv_range (vm_offset_t, vm_size_t);
495void armv6_dcache_inv_range (vm_offset_t, vm_size_t);
496void armv6_dcache_wb_range (vm_offset_t, vm_size_t);
497
249#define cpu_idcache_wbinv_all() cpufuncs.cf_idcache_wbinv_all()
250#define cpu_idcache_wbinv_range(a, s) cpufuncs.cf_idcache_wbinv_range((a), (s))
251#define cpu_l2cache_wbinv_all() cpufuncs.cf_l2cache_wbinv_all()
252#define cpu_l2cache_wb_range(a, s) cpufuncs.cf_l2cache_wb_range((a), (s))
253#define cpu_l2cache_inv_range(a, s) cpufuncs.cf_l2cache_inv_range((a), (s))
254#define cpu_l2cache_wbinv_range(a, s) cpufuncs.cf_l2cache_wbinv_range((a), (s))
255
256#define cpu_flush_prefetchbuf() cpufuncs.cf_flush_prefetchbuf()

--- 241 unchanged lines hidden (view full) ---

498void armv6_icache_sync_all (void);
499void armv6_icache_sync_range (vm_offset_t, vm_size_t);
500
501void armv6_dcache_wbinv_all (void);
502void armv6_dcache_wbinv_range (vm_offset_t, vm_size_t);
503void armv6_dcache_inv_range (vm_offset_t, vm_size_t);
504void armv6_dcache_wb_range (vm_offset_t, vm_size_t);
505
506void armv6_idcache_inv_all (void);
498void armv6_idcache_wbinv_all (void);
499void armv6_idcache_wbinv_range (vm_offset_t, vm_size_t);
500
501void armv7_setttb (u_int);
502void armv7_tlb_flushID (void);
503void armv7_tlb_flushID_SE (u_int);
504void armv7_icache_sync_range (vm_offset_t, vm_size_t);
505void armv7_idcache_wbinv_range (vm_offset_t, vm_size_t);
507void armv6_idcache_wbinv_all (void);
508void armv6_idcache_wbinv_range (vm_offset_t, vm_size_t);
509
510void armv7_setttb (u_int);
511void armv7_tlb_flushID (void);
512void armv7_tlb_flushID_SE (u_int);
513void armv7_icache_sync_range (vm_offset_t, vm_size_t);
514void armv7_idcache_wbinv_range (vm_offset_t, vm_size_t);
515void armv7_idcache_inv_all (void);
506void armv7_dcache_wbinv_all (void);
507void armv7_idcache_wbinv_all (void);
508void armv7_dcache_wbinv_range (vm_offset_t, vm_size_t);
509void armv7_dcache_inv_range (vm_offset_t, vm_size_t);
510void armv7_dcache_wb_range (vm_offset_t, vm_size_t);
511void armv7_cpu_sleep (int);
512void armv7_setup (char *string);
513void armv7_context_switch (void);

--- 68 unchanged lines hidden (view full) ---

582 defined(CPU_XSCALE_80219) || defined(CPU_XSCALE_81342)
583
584void armv4_tlb_flushID (void);
585void armv4_tlb_flushI (void);
586void armv4_tlb_flushD (void);
587void armv4_tlb_flushD_SE (u_int va);
588
589void armv4_drain_writebuf (void);
516void armv7_dcache_wbinv_all (void);
517void armv7_idcache_wbinv_all (void);
518void armv7_dcache_wbinv_range (vm_offset_t, vm_size_t);
519void armv7_dcache_inv_range (vm_offset_t, vm_size_t);
520void armv7_dcache_wb_range (vm_offset_t, vm_size_t);
521void armv7_cpu_sleep (int);
522void armv7_setup (char *string);
523void armv7_context_switch (void);

--- 68 unchanged lines hidden (view full) ---

592 defined(CPU_XSCALE_80219) || defined(CPU_XSCALE_81342)
593
594void armv4_tlb_flushID (void);
595void armv4_tlb_flushI (void);
596void armv4_tlb_flushD (void);
597void armv4_tlb_flushD_SE (u_int va);
598
599void armv4_drain_writebuf (void);
600void armv4_idcache_inv_all (void);
590#endif
591
592#if defined(CPU_IXP12X0)
593void ixp12x0_drain_readbuf (void);
594void ixp12x0_context_switch (void);
595void ixp12x0_setup (char *string);
596#endif
597

--- 174 unchanged lines hidden ---
601#endif
602
603#if defined(CPU_IXP12X0)
604void ixp12x0_drain_readbuf (void);
605void ixp12x0_context_switch (void);
606void ixp12x0_setup (char *string);
607#endif
608

--- 174 unchanged lines hidden ---