cpufunc.h (92860) | cpufunc.h (93018) |
---|---|
1/*- 2 * Copyright (c) 1993 The Regents of the University of California. 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright --- 16 unchanged lines hidden (view full) --- 25 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 26 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 27 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 28 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 29 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 30 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 31 * SUCH DAMAGE. 32 * | 1/*- 2 * Copyright (c) 1993 The Regents of the University of California. 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright --- 16 unchanged lines hidden (view full) --- 25 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 26 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 27 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 28 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 29 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 30 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 31 * SUCH DAMAGE. 32 * |
33 * $FreeBSD: head/sys/amd64/include/cpufunc.h 92860 2002-03-21 06:19:08Z imp $ | 33 * $FreeBSD: head/sys/amd64/include/cpufunc.h 93018 2002-03-23 15:09:35Z bde $ |
34 */ 35 36/* 37 * Functions to provide access to special i386 instructions. 38 * This in included in sys/systm.h, and that file should be 39 * used in preference to this. 40 */ 41 --- 189 unchanged lines hidden (view full) --- 231 232#if defined(SMP) && defined(_KERNEL) 233 234/* 235 * When using APIC IPI's, invlpg() is not simply the invlpg instruction 236 * (this is a bug) and the inlining cost is prohibitive since the call 237 * executes into the IPI transmission system. 238 */ | 34 */ 35 36/* 37 * Functions to provide access to special i386 instructions. 38 * This in included in sys/systm.h, and that file should be 39 * used in preference to this. 40 */ 41 --- 189 unchanged lines hidden (view full) --- 231 232#if defined(SMP) && defined(_KERNEL) 233 234/* 235 * When using APIC IPI's, invlpg() is not simply the invlpg instruction 236 * (this is a bug) and the inlining cost is prohibitive since the call 237 * executes into the IPI transmission system. 238 */ |
239void invlpg (u_int addr); 240void invltlb (void); | 239void invlpg(u_int addr); 240void invltlb(void); |
241 242static __inline void 243cpu_invlpg(void *addr) 244{ 245 __asm __volatile("invlpg %0" : : "m" (*(char *)addr) : "memory"); 246} 247 248static __inline void --- 399 unchanged lines hidden --- | 241 242static __inline void 243cpu_invlpg(void *addr) 244{ 245 __asm __volatile("invlpg %0" : : "m" (*(char *)addr) : "memory"); 246} 247 248static __inline void --- 399 unchanged lines hidden --- |