home *** CD-ROM | disk | FTP | other *** search
/ The Datafile PD-CD 4 / DATAFILE_PDCD4.iso / unix / riscbsd / datafile / _btriscbsd / booter / s / areahand < prev    next >
Encoding:
Text File  |  1994-09-21  |  2.7 KB  |  99 lines

  1. ; $NetBSD$
  2.  
  3. ;
  4. ; Copyright (c) 1994 Mark Brinicombe.
  5. ; Copyright (c) 1994 Brini.
  6. ; All rights reserved.
  7. ;
  8. ; This code is derived from software written for Brini by Mark Brinicombe
  9. ;
  10. ; Redistribution and use in source and binary forms, with or without
  11. ; modification, are permitted provided that the following conditions
  12. ; are met:
  13. ; 1. Redistributions of source code must retain the above copyright
  14. ;    notice, this list of conditions and the following disclaimer.
  15. ; 2. Redistributions in binary form must reproduce the above copyright
  16. ;    notice, this list of conditions and the following disclaimer in the
  17. ;    documentation and/or other materials provided with the distribution.
  18. ; 3. All advertising materials mentioning features or use of this software
  19. ;    must display the following acknowledgement:
  20. ;    This product includes software developed by Brini.
  21. ; 4. The name of the company nor the name of the author may be used to
  22. ;    endorse or promote products derived from this software without specific
  23. ;    prior written permission.
  24. ;
  25. ; THIS SOFTWARE IS PROVIDED BY BRINI ``AS IS'' AND ANY EXPRESS OR IMPLIED
  26. ; WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
  27. ; MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
  28. ; IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
  29. ; INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
  30. ; (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
  31. ; SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
  32. ; HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
  33. ; LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  34. ; OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  35. ; SUCH DAMAGE.
  36. ;
  37. ; RiscBSD kernel project
  38. ;
  39. ; areahand.s
  40. ;
  41. ;
  42. ;
  43. ; Created      : 12/09/94
  44. ; Last updated : 12/09/94
  45. ;
  46. ;    $Id$
  47. ;
  48.     GET    h.asmregs
  49.  
  50.         AREA |C$$code|, CODE, READONLY
  51.  
  52.         EXPORT kernarea_handler
  53.  
  54. ; r0 - code
  55. ; r1 - page block
  56. ; r2 - entries
  57. ; r3 - size increase
  58. ; r4 - current size
  59. ; r5 - pagesize
  60. ; r12 - arrangement table
  61. kernarea_handler
  62. ; Is it a pregrow request ?
  63.     TEQ    r0, #&00000000
  64.     BICNES    pc, lr, #1<<28
  65.  
  66. ; Make sure that the area is currently 0 in size
  67.     TEQ    r4, #&00000000
  68.     MOVNE    r0, #&00000000
  69.     ORRNES    pc, lr, #1<<28
  70.  
  71.     TEQ    r1, #&00000000
  72.     BICEQS    pc, lr, #1<<28
  73.  
  74. ; Store registers
  75.     STMFD    sp!, {r0-r12}
  76.  
  77. ; Get first page number
  78.     LDR    r8, [r12, #&0004]
  79.     SUB    r8, r8, r2
  80.     MOV    r8, #&0000700
  81.     STR    r1, [r12]
  82.  
  83. loop
  84.     STR    r8, [r1], #&000c
  85.     ADD    r8, r8, #&00000001
  86.     SUBS    r2, r2, #&00000001
  87.     BNE    loop
  88.  
  89.     LDMFD    sp!, {r0-r12}
  90. ;    BICS    pc, lr, #1<<28
  91.     ADR    r0, error1
  92.     ORRS    pc, lr, #1<<28
  93.  
  94. error1
  95.     DCD    &00000000
  96.     DCB    "error1"
  97.     DCB    &00
  98.         END
  99.