mirror of
https://github.com/cc65/cc65.git
synced 2024-12-26 08:32:00 +00:00
Moved two errno helper functions into separate files.
Only the function that actually is needed will be linked. It is very useful for targets that do not have file-system I/O.
This commit is contained in:
parent
9704b1d11b
commit
b82bb4f5ba
27
libsrc/common/_directerrno.s
Normal file
27
libsrc/common/_directerrno.s
Normal file
@ -0,0 +1,27 @@
|
||||
;
|
||||
; 2003-08-12, Ullrich von Bassewitz
|
||||
; 2015-09-24, Greg King
|
||||
;
|
||||
; Helper function for several high-level file functions.
|
||||
;
|
||||
|
||||
.include "errno.inc"
|
||||
|
||||
.macpack cpu
|
||||
|
||||
; ----------------------------------------------------------------------------
|
||||
; int __fastcall__ _directerrno (unsigned char code);
|
||||
; /* Set errno to a specific error code, clear _oserror, and return -1. Used
|
||||
; ** by the library.
|
||||
; */
|
||||
|
||||
__directerrno:
|
||||
jsr __seterrno ; Set errno (returns with .A = 0)
|
||||
sta __oserror ; Clear __oserror
|
||||
.if (.cpu .bitand CPU_ISET_65SC02)
|
||||
dec a
|
||||
.else
|
||||
lda #$FF ; Return -1
|
||||
.endif
|
||||
tax
|
||||
rts
|
33
libsrc/common/_mappederrno.s
Normal file
33
libsrc/common/_mappederrno.s
Normal file
@ -0,0 +1,33 @@
|
||||
;
|
||||
; 2003-08-12, Ullrich von Bassewitz
|
||||
; 2015-09-24, Greg King
|
||||
;
|
||||
; Helper function for several high-level file functions.
|
||||
;
|
||||
|
||||
.include "errno.inc"
|
||||
|
||||
.macpack generic
|
||||
.macpack cpu
|
||||
|
||||
; ----------------------------------------------------------------------------
|
||||
; int __fastcall__ _mappederrno (unsigned char code);
|
||||
; /* Set _oserror to the given platform-specific error code. If it is a real
|
||||
; ** error code (not zero), set errno to the corresponding system error code,
|
||||
; ** and return -1. Otherwise, return zero.
|
||||
; ** Used by the library.
|
||||
; */
|
||||
|
||||
__mappederrno:
|
||||
sta __oserror ; Store the error code
|
||||
tax ; Did we have an error?
|
||||
bze ok ; Branch if no
|
||||
jsr __osmaperrno ; Map OS error into errno code
|
||||
jsr __seterrno ; Save in errno (returns with .A = 0)
|
||||
.if (.cpu .bitand CPU_ISET_65SC02)
|
||||
dec a
|
||||
.else
|
||||
lda #$FF ; Return -1 if error
|
||||
.endif
|
||||
tax
|
||||
ok: rts
|
@ -1,47 +1,14 @@
|
||||
;
|
||||
; Ullrich von Bassewitz, 2003-08-12
|
||||
; 2003-08-12, Ullrich von Bassewitz
|
||||
; 2015-09-24, Greg King
|
||||
;
|
||||
; Helper functions for several high level file functions.
|
||||
; extern int _errno;
|
||||
; /* Library errors go here. */
|
||||
;
|
||||
|
||||
|
||||
.include "errno.inc"
|
||||
|
||||
.code
|
||||
|
||||
; ----------------------------------------------------------------------------
|
||||
; int __fastcall__ _directerrno (unsigned char code);
|
||||
; /* Set errno to a specific error code, clear _oserror and return -1. Used
|
||||
; ** by the library.
|
||||
; */
|
||||
|
||||
__directerrno:
|
||||
jsr __seterrno ; Set errno, returns with A = 0
|
||||
sta __oserror ; Clear __oserror
|
||||
beq fail ; Branch always
|
||||
|
||||
; ----------------------------------------------------------------------------
|
||||
; int __fastcall__ _mappederrno (unsigned char code);
|
||||
; /* Set _oserror to the given platform specific error code. If it is a real
|
||||
; ** error code (not zero) set errno to the corresponding system error code
|
||||
; ** and return -1. Otherwise return zero.
|
||||
; ** Used by the library.
|
||||
; */
|
||||
|
||||
__mappederrno:
|
||||
sta __oserror ; Store the error code
|
||||
tax ; Did we have an error?
|
||||
beq ok ; Branch if no
|
||||
jsr __osmaperrno ; Map os error into errno code
|
||||
jsr __seterrno ; Save in errno
|
||||
fail: lda #$FF ; Return -1
|
||||
tax
|
||||
ok: rts
|
||||
|
||||
|
||||
; ----------------------------------------------------------------------------
|
||||
.bss
|
||||
|
||||
__errno:
|
||||
.word 0
|
||||
|
||||
|
@ -1,30 +0,0 @@
|
||||
;
|
||||
; 2013-05-16, Oliver Schmidt
|
||||
; 2015-07-18, Greg King
|
||||
;
|
||||
; Helper functions for several high-level functions.
|
||||
;
|
||||
|
||||
.include "errno.inc"
|
||||
|
||||
; ----------------------------------------------------------------------------
|
||||
; int __fastcall__ _directerrno (unsigned char code);
|
||||
; /* Set errno to a specific error code; and, return -1. Used
|
||||
; ** by the library.
|
||||
; */
|
||||
|
||||
__directerrno:
|
||||
jsr __seterrno ; Save in errno
|
||||
fail: lda #$FF ; Return -1
|
||||
tax
|
||||
ok: rts
|
||||
|
||||
|
||||
; ----------------------------------------------------------------------------
|
||||
;
|
||||
; extern int _errno;
|
||||
;
|
||||
.bss
|
||||
|
||||
__errno:
|
||||
.word 0
|
Loading…
Reference in New Issue
Block a user