Changes from Oliver: Use posix_memalign instead of _aligned_malloc

git-svn-id: svn://svn.cc65.org/cc65/trunk@3589 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
cuz
2005-08-26 12:09:43 +00:00
parent 1bc775d21d
commit 6871cc6c57

View File

@@ -12,8 +12,8 @@
.import pushname, popname .import pushname, popname
.import errnoexit, oserrexit .import errnoexit, oserrexit
.import __aligned_malloc, _free .import _posix_memalign, _free
.import addysp, incsp4, pushax, popax .import addysp, incsp4, incaxy, pushax, popax
.include "zeropage.inc" .include "zeropage.inc"
.include "errno.inc" .include "errno.inc"
@@ -48,12 +48,11 @@ _open:
cpy #MAX_FDS * .sizeof(FD) cpy #MAX_FDS * .sizeof(FD)
bcc :- bcc :-
; Load errno codes ; Load errno code
lda #ENOMEM ^ EMFILE lda #EMFILE
enomem: eor #ENOMEM
; Cleanup stack ; Cleanup stack
jsr incsp4 ; Preserves A errno: jsr incsp4 ; Preserves A
; Return errno ; Return errno
jmp errnoexit jmp errnoexit
@@ -63,24 +62,24 @@ found: tya
pha pha
; Alloc I/O buffer ; Alloc I/O buffer
lda #<(fdtab + FD::BUFFER)
ldx #>(fdtab + FD::BUFFER)
jsr incaxy
jsr pushax
lda #$00 lda #$00
ldx #>$0400
jsr pushax ; Preserves A
ldx #>$0100 ldx #>$0100
jsr __aligned_malloc jsr pushax ; Preserves A
ldx #>$0400
jsr _posix_memalign
tay ; Save errno code
; Restore fdtab slot ; Restore fdtab slot
pla pla
tay sta tmp2 ; Save fdtab slot
; Get and check I/O buffer high byte ; Check for error
txa tya ; Restore errno code
beq enomem bne errno
; Set I/O buffer high byte (low byte remains zero)
sta fdtab + FD::BUFFER+1,y
sty tmp2 ; Save fdtab slot
; Get and save flags ; Get and save flags
jsr popax jsr popax