Annotation of sys/arch/arm/arm/sys_machdep.c, Revision 1.1
1.1 ! nbrk 1: /* $OpenBSD: sys_machdep.c,v 1.3 2004/05/19 03:17:07 drahn Exp $ */
! 2: /* $NetBSD: sys_machdep.c,v 1.6 2003/07/15 00:24:42 lukem Exp $ */
! 3:
! 4: /*
! 5: * Copyright (c) 1995-1997 Mark Brinicombe.
! 6: * All rights reserved.
! 7: *
! 8: * Redistribution and use in source and binary forms, with or without
! 9: * modification, are permitted provided that the following conditions
! 10: * are met:
! 11: * 1. Redistributions of source code must retain the above copyright
! 12: * notice, this list of conditions and the following disclaimer.
! 13: * 2. Redistributions in binary form must reproduce the above copyright
! 14: * notice, this list of conditions and the following disclaimer in the
! 15: * documentation and/or other materials provided with the distribution.
! 16: * 3. All advertising materials mentioning features or use of this software
! 17: * must display the following acknowledgement:
! 18: * This product includes software developed by Mark Brinicombe
! 19: * 4. The name of the company nor the name of the author may be used to
! 20: * endorse or promote products derived from this software without specific
! 21: * prior written permission.
! 22: *
! 23: * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
! 24: * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
! 25: * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
! 26: * IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
! 27: * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
! 28: * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
! 29: * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
! 30: * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
! 31: * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
! 32: * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
! 33: * SUCH DAMAGE.
! 34: *
! 35: * RiscBSD kernel project
! 36: *
! 37: * sys_machdep.c
! 38: *
! 39: * Machine dependant syscalls
! 40: *
! 41: * Created : 10/01/96
! 42: */
! 43:
! 44: #include <sys/param.h>
! 45: #include <sys/systm.h>
! 46: #include <sys/proc.h>
! 47: #include <sys/mbuf.h>
! 48: #include <sys/mount.h>
! 49: #include <uvm/uvm_extern.h>
! 50: #include <sys/sysctl.h>
! 51: #include <sys/syscallargs.h>
! 52:
! 53: #include <machine/sysarch.h>
! 54:
! 55: /* Prototypes */
! 56: static int arm32_sync_icache (struct proc *, char *, register_t *);
! 57: static int arm32_drain_writebuf (struct proc *, char *, register_t *);
! 58:
! 59: static int
! 60: arm32_sync_icache(p, args, retval)
! 61: struct proc *p;
! 62: char *args;
! 63: register_t *retval;
! 64: {
! 65: struct arm_sync_icache_args ua;
! 66: int error;
! 67:
! 68: if ((error = copyin(args, &ua, sizeof(ua))) != 0)
! 69: return (error);
! 70:
! 71: cpu_icache_sync_range(ua.addr, ua.len);
! 72:
! 73: *retval = 0;
! 74: return(0);
! 75: }
! 76:
! 77: static int
! 78: arm32_drain_writebuf(p, args, retval)
! 79: struct proc *p;
! 80: char *args;
! 81: register_t *retval;
! 82: {
! 83: /* No args. */
! 84:
! 85: cpu_drain_writebuf();
! 86:
! 87: *retval = 0;
! 88: return(0);
! 89: }
! 90:
! 91: int
! 92: sys_sysarch(p, v, retval)
! 93: struct proc *p;
! 94: void *v;
! 95: register_t *retval;
! 96: {
! 97: struct sys_sysarch_args /* {
! 98: syscallarg(int) op;
! 99: syscallarg(void *) parms;
! 100: } */ *uap = v;
! 101: int error = 0;
! 102:
! 103: switch(SCARG(uap, op)) {
! 104: case ARM_SYNC_ICACHE :
! 105: error = arm32_sync_icache(p, SCARG(uap, parms), retval);
! 106: break;
! 107:
! 108: case ARM_DRAIN_WRITEBUF :
! 109: error = arm32_drain_writebuf(p, SCARG(uap, parms), retval);
! 110: break;
! 111:
! 112: default:
! 113: error = EINVAL;
! 114: break;
! 115: }
! 116: return (error);
! 117: }
! 118:
! 119: /* End of sys_machdep.c */
CVSweb