123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125 |
- (define-interface heap-two-space-interface
- (export heap-begin
- set-heap-pointer!
- heap-pointer
- swap-spaces
- heap-limit
- allocate
- get-new-heap-start-addr
- in-trouble?))
- (define-interface heap-two-space-native-code-interface
- (export s48-*hp* s48-*limit*))
- (define-structures ((heap heap-interface)
- (heap-gc-util heap-gc-util-interface)
- (heap-init heap-init-interface)
- (heap-two-space heap-two-space-interface)
- (heap-two-space-native-code heap-two-space-native-code-interface))
- (open prescheme ps-receive vm-utilities vm-architecture memory data
- ps-memory
- debugging)
- (files (gc-twospace heap)))
- (define-structure gc gc-interface
- (open prescheme ps-receive vm-utilities vm-architecture
- external
- memory data
- heap heap-gc-util
- heap-two-space
- interpreter-gc
- debugging)
- (files (gc-twospace gc)
- (heap trace-continuation)))
- (define-structure allocation allocation-interface
- (open prescheme memory
- heap-gc-util heap-two-space
- gc
- gc-static-hack
- data
- vm-architecture
- debugging
- vm-utilities
- )
- (files (gc-twospace allocation)))
- (define-structure gc-static-hack (export)
- (open prescheme gc heap-gc-util gc-roots)
- (begin
- (add-gc-root! (lambda ()
- (walk-impure-areas
- (lambda (start end)
- (s48-trace-locations! start end)
- #t))))))
- (define-structure read-image-gc-specific read-image-gc-specific-interface
- (open prescheme ps-receive enum-case
- vm-utilities vm-architecture
- memory
- data struct
- ps-memory
- heap
- heap-init
-
-
- heap-two-space
- image-util
- image-table
- read-image-util
- read-image-portable
- )
- (files (gc-twospace read-image)))
- (define-structure read-image-util-gc-specific read-image-util-gc-specific-interface
- (open prescheme
- ps-memory
- read-image-util)
- (begin
- (define (get-small-start-addr heap-image-pointer)
- (address+ heap-image-pointer
- (address-difference (get-weaks-img-end-addr)
- (get-large-img-start-addr))))
- (define (get-large-start-addr heap-image-pointer)
- (address+ heap-image-pointer
- (address-difference (get-weaks-img-end-addr)
- (get-weaks-img-start-addr))))
-
- (define (get-weaks-start-addr heap-image-pointer)
- heap-image-pointer)))
- (define-structure write-image-gc-specific write-image-gc-specific-interface
- (open prescheme ps-receive
- vm-utilities vm-architecture
- memory data struct
- heap
- heap-two-space
- image-table
- image-util
- write-image-util
- string-tables
- symbols
- shared-bindings-access
- )
- (files (gc-twospace write-image)))
|