;;; -*- Mode:Lisp; Readtable:ZL; Package:USER; Base:8; Patch-File:T -*- ;;; Patch file for System version 124.127 ;;; Reason: ;;; SI:MAKE-DMA-BUFFER was working by accident. Discovered as a problem ;;; running TAPE software. ;;; ;;; This is the only occurrence in the SYSTEM system I can find that was ;;; making the mistaken assumption that an array's named-structure-symbol ;;; was by default stored in the array leader. (See the recent patch to ;;; MAKE-ARRAY.) ;;; ;;; Solution: wherever you want the NAMED-STRUCTURE-SYMBOL stored in the ;;; array leader, specify a postive :LEADER-LENGTH also. ;;; Written 5-Jul-88 21:40:54 by keith at site Gigamos Cambridge ;;; while running on Breaking Glass from band 1 ;;; with Experimental System 124.124, Experimental Local-File 74.3, Experimental File-Server 23.1, Unix-Interface 12.0, Experimental ZMail 72.1, Experimental Tape 23.6, Experimental Lambda-Diag 16.2, Tiger 28.0, microcode 1761, SDU Boot Tape 3.14, SDU ROM 103, Beta 3 plus patches. ; From modified file DJ: L.IO; NEW-DISK.LISP#56 at 5-Jul-88 21:40:55 #8R SYSTEM-INTERNALS#: (COMPILER-LET ((*PACKAGE* (PKG-FIND-PACKAGE "SYSTEM-INTERNALS"))) (COMPILER::PATCH-SOURCE-FILE "SYS: IO; NEW-DISK  " (defun make-dma-buffer (ignore n-pages) (let ((dma-buffer (make-wireable-array n-pages 'art-32b 'dma-buffer))) (setf (dma-buffer-16b dma-buffer) (make-array (* n-pages page-size 2) :type :art-16b :displaced-to dma-buffer :leader-length 2 :named-structure-symbol 'dma-buffer-16b)) (setf (dma-buffer-8b dma-buffer) (make-array (* n-pages page-size 4) :type :art-8b :displaced-to dma-buffer :leader-length 2 :named-structure-symbol 'dma-buffer-8b)) (setf (dma-buffer-string dma-buffer) (make-array (* n-pages page-size 4) :type :art-string :displaced-to dma-buffer :leader-length 2 :named-structure-symbol 'dma-buffer-string)) ;; (setf (dma-buffer-size-in-pages dma-buffer) n-pages) (setf (dma-buffer-data-vadr dma-buffer) (%pointer-plus dma-buffer (array-data-offset dma-buffer))) dma-buffer)) ))