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:
Greg King
2015-09-25 14:06:58 -04:00
parent 9704b1d11b
commit b82bb4f5ba
4 changed files with 64 additions and 67 deletions

View File

@@ -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