sysarch.h revision 188540
1331766Sken/* $NetBSD: sysarch.h,v 1.5 2003/09/11 09:40:12 kleink Exp $ */ 2331766Sken 3331766Sken/*- 4331766Sken * Copyright (c) 1996-1997 Mark Brinicombe. 5331766Sken * All rights reserved. 6331766Sken * 7331766Sken * Redistribution and use in source and binary forms, with or without 8331766Sken * modification, are permitted provided that the following conditions 9331766Sken * are met: 10331766Sken * 1. Redistributions of source code must retain the above copyright 11331766Sken * notice, this list of conditions and the following disclaimer. 12331766Sken * 2. Redistributions in binary form must reproduce the above copyright 13331766Sken * notice, this list of conditions and the following disclaimer in the 14331766Sken * documentation and/or other materials provided with the distribution. 15331766Sken * 3. All advertising materials mentioning features or use of this software 16331766Sken * must display the following acknowledgement: 17331766Sken * This product includes software developed by Mark Brinicombe. 18331766Sken * 4. The name of the company nor the name of the author may be used to 19331766Sken * endorse or promote products derived from this software without specific 20331766Sken * prior written permission. 21331766Sken * 22331766Sken * THIS SOFTWARE IS PROVIDED BY AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED 23331766Sken * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 24331766Sken * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 25331766Sken * IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 26331766Sken * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 27331766Sken * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 28331766Sken * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 29331766Sken * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 30331766Sken * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 31331766Sken * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 32331766Sken * SUCH DAMAGE. 33331766Sken */ 34331766Sken 35331766Sken/* $FreeBSD: head/sys/arm/include/sysarch.h 188540 2009-02-12 23:23:30Z cognet $ */ 36331766Sken 37331766Sken#ifndef _ARM_SYSARCH_H_ 38331766Sken#define _ARM_SYSARCH_H_ 39331766Sken 40331766Sken#include <machine/armreg.h> 41331766Sken/* 42331766Sken * The ARM_TP_ADDRESS points to a special purpose page, which is used as local 43331766Sken * store for the ARM per-thread data and Restartable Atomic Sequences support. 44331766Sken * Put it just above the "high" vectors' page. 45331766Sken * the cpu_switch() code assumes ARM_RAS_START is ARM_TP_ADDRESS + 4, and 46331766Sken * ARM_RAS_END is ARM_TP_ADDRESS + 8, so if that ever changes, be sure to 47331766Sken * update the cpu_switch() (and cpu_throw()) code as well. 48331766Sken */ 49331766Sken#define ARM_TP_ADDRESS (ARM_VECTORS_HIGH + 0x1000) 50#define ARM_RAS_START (ARM_TP_ADDRESS + 4) 51#define ARM_RAS_END (ARM_TP_ADDRESS + 8) 52 53#ifndef LOCORE 54 55#include <sys/cdefs.h> 56 57/* 58 * Pickup definition of uintptr_t 59 */ 60#include <sys/stdint.h> 61 62/* 63 * Architecture specific syscalls (arm) 64 */ 65 66#define ARM_SYNC_ICACHE 0 67#define ARM_DRAIN_WRITEBUF 1 68#define ARM_SET_TP 2 69#define ARM_GET_TP 3 70 71struct arm_sync_icache_args { 72 uintptr_t addr; /* Virtual start address */ 73 size_t len; /* Region size */ 74}; 75 76#ifndef _KERNEL 77__BEGIN_DECLS 78int arm_sync_icache (u_int addr, int len); 79int arm_drain_writebuf (void); 80int sysarch(int, void *); 81__END_DECLS 82#endif 83 84#endif /* LOCORE */ 85 86#endif /* !_ARM_SYSARCH_H_ */ 87