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:
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user