home *** CD-ROM | disk | FTP | other *** search
- ; $NetBSD$
-
- ;
- ; Copyright (c) 1994 Mark Brinicombe.
- ; Copyright (c) 1994 Brini.
- ; All rights reserved.
- ;
- ; This code is derived from software written for Brini by Mark Brinicombe
- ;
- ; Redistribution and use in source and binary forms, with or without
- ; modification, are permitted provided that the following conditions
- ; are met:
- ; 1. Redistributions of source code must retain the above copyright
- ; notice, this list of conditions and the following disclaimer.
- ; 2. Redistributions in binary form must reproduce the above copyright
- ; notice, this list of conditions and the following disclaimer in the
- ; documentation and/or other materials provided with the distribution.
- ; 3. All advertising materials mentioning features or use of this software
- ; must display the following acknowledgement:
- ; This product includes software developed by Brini.
- ; 4. The name of the company nor the name of the author may be used to
- ; endorse or promote products derived from this software without specific
- ; prior written permission.
- ;
- ; THIS SOFTWARE IS PROVIDED BY BRINI ``AS IS'' AND ANY EXPRESS OR IMPLIED
- ; WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- ; MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- ; IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- ; INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- ; (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- ; SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- ; HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- ; LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- ; OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- ; SUCH DAMAGE.
- ;
- ; RiscBSD kernel project
- ;
- ; areahand.s
- ;
- ;
- ;
- ; Created : 12/09/94
- ; Last updated : 12/09/94
- ;
- ; $Id$
- ;
- GET h.asmregs
-
- AREA |C$$code|, CODE, READONLY
-
- EXPORT kernarea_handler
-
- ; r0 - code
- ; r1 - page block
- ; r2 - entries
- ; r3 - size increase
- ; r4 - current size
- ; r5 - pagesize
- ; r12 - arrangement table
- kernarea_handler
- ; Is it a pregrow request ?
- TEQ r0, #&00000000
- BICNES pc, lr, #1<<28
-
- ; Make sure that the area is currently 0 in size
- TEQ r4, #&00000000
- MOVNE r0, #&00000000
- ORRNES pc, lr, #1<<28
-
- TEQ r1, #&00000000
- BICEQS pc, lr, #1<<28
-
- ; Store registers
- STMFD sp!, {r0-r12}
-
- ; Get first page number
- LDR r8, [r12, #&0004]
- SUB r8, r8, r2
- MOV r8, #&0000700
- STR r1, [r12]
-
- loop
- STR r8, [r1], #&000c
- ADD r8, r8, #&00000001
- SUBS r2, r2, #&00000001
- BNE loop
-
- LDMFD sp!, {r0-r12}
- ; BICS pc, lr, #1<<28
- ADR r0, error1
- ORRS pc, lr, #1<<28
-
- error1
- DCD &00000000
- DCB "error1"
- DCB &00
- END
-