first commit - moved from local dev to git
This commit is contained in:
223
devtools/ahcccf.bin/sinclude/stdio.h
Normal file
223
devtools/ahcccf.bin/sinclude/stdio.h
Normal file
@@ -0,0 +1,223 @@
|
||||
/* This file is part of the AHCC C Library.
|
||||
|
||||
The AHCC C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
The AHCC C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
/* stdio.h */
|
||||
|
||||
#if !defined( __STDIO_H_ )
|
||||
#define __STDIO_H_
|
||||
|
||||
#include <stdarg.h>
|
||||
|
||||
#if !defined( __STDDEF )
|
||||
#include <stddef.h>
|
||||
#endif
|
||||
|
||||
typedef unsigned long fpos_t;
|
||||
|
||||
#include <errno.h>
|
||||
|
||||
/* old
|
||||
typedef struct
|
||||
{
|
||||
short _cnt; /* # of bytes in buffer */
|
||||
unsigned char *_ptr; /* current buffer pointer */
|
||||
unsigned char *_base; /* base of file buffer */
|
||||
unsigned short _flag; /* file status flags */
|
||||
short _file; /* file handle */
|
||||
size_t _bsiz; /* buffer size */
|
||||
unsigned char _ch; /* tiny buffer, for "unbuffered" i/o */
|
||||
}
|
||||
FILE;
|
||||
*/
|
||||
/* Try to make Pure C and AHCC FILE structure alike */
|
||||
typedef struct
|
||||
{
|
||||
unsigned char *BufPtr; /* current buffer pointer */
|
||||
long _cnt; /* # of bytes in buffer */
|
||||
unsigned char *BufStart; /* base of file buffer */
|
||||
size_t _bsiz; /* buffer size */
|
||||
short Handle; /* file handle */
|
||||
unsigned char Flags,Mode; /* file status flags, file mode */
|
||||
unsigned char ChrBuf; /* tiny buffer, for "unbuffered" i/o */
|
||||
char ungetFlag;
|
||||
}
|
||||
FILE;
|
||||
|
||||
typedef short InFunc(void *ip);
|
||||
typedef short OutFunc(char c, void *op);
|
||||
|
||||
typedef short UnFunc(short c, void *ip);
|
||||
|
||||
/****** FileIo constants ************************************************/
|
||||
|
||||
#define OPEN_MAX 32
|
||||
#define FOPEN_MAX 32
|
||||
#define FILENAME_MAX 128
|
||||
#define PATH_MAX 132
|
||||
#define BUFSIZ 1024
|
||||
#define EOF (-1) /* end of file */
|
||||
#undef EOS
|
||||
#define EOS '\0' /* end-of-string indicator */
|
||||
|
||||
#define O_RDONLY 0x00
|
||||
#define O_WRONLY 0x01
|
||||
#define O_RDWR 0x02
|
||||
#define O_APPEND 0x08
|
||||
#define O_CREAT 0x20
|
||||
#define O_TRUNC 0x40
|
||||
#define O_EXCL 0x80
|
||||
|
||||
#define SEEK_SET 0
|
||||
#define SEEK_CUR 1
|
||||
#define SEEK_END 2
|
||||
|
||||
#define TMP_MAX 65535
|
||||
#define L_tmpnam 13
|
||||
|
||||
/* Mode flags */
|
||||
#define _IOFBF 0 /* full buffering */
|
||||
#define _IOLBF 1 /* line buffering */
|
||||
#define _IONBF 2 /* no buffering */
|
||||
|
||||
extern FILE _iob[];
|
||||
|
||||
/* standard streams */
|
||||
#define stdin (&_StdInF)
|
||||
#define stdout (&_StdOutF)
|
||||
#define stderr (&_StdErrF)
|
||||
#define stdprn (&_StdPrnF)
|
||||
#define stdaux (&_StdAuxF)
|
||||
|
||||
/* External data */
|
||||
|
||||
extern FILE _StdInF;
|
||||
extern FILE _StdOutF;
|
||||
extern FILE _StdErrF;
|
||||
extern FILE _StdPrnF;
|
||||
extern FILE _StdAuxF;
|
||||
|
||||
/* StreamIO routines */
|
||||
|
||||
FILE * fopen ( const char *filename, const char *mo );
|
||||
FILE * freopen ( const char *filename, const char *mo, FILE *stream );
|
||||
FILE * tmpfile ( void );
|
||||
void clearerr ( FILE *stream );
|
||||
short fclose ( FILE *stream );
|
||||
short feof ( FILE *stream );
|
||||
short ferror ( FILE *stream );
|
||||
short fflush ( FILE *stream );
|
||||
short fgetc ( FILE *stream );
|
||||
short fgetpos ( FILE *stream, fpos_t *pos );
|
||||
short fprintf ( FILE *stream, const char *format, ... );
|
||||
short d_fprintf ( FILE *stream, const char *format, ... );
|
||||
short fscanf ( FILE *stream, const char *format, ... );
|
||||
short fseek ( FILE *stream, long offset, short mo );
|
||||
void rewind ( FILE *stream);
|
||||
short fsetpos ( FILE *stream, const fpos_t *pos );
|
||||
long ftell ( FILE *stream );
|
||||
void setbuf ( FILE *stream, void *buf );
|
||||
short setvbuf ( FILE *stream, void *, short , size_t );
|
||||
short vfprintf ( FILE *stream, const char *format, va_list param );
|
||||
short vfscanf ( FILE *stream, const char *format, va_list param );
|
||||
short fileno ( FILE *stream );
|
||||
|
||||
size_t fread ( void *buf, size_t elem_Siz, size_t count,
|
||||
FILE *stream );
|
||||
char * fgets ( char *str, short n,
|
||||
FILE *stream );
|
||||
size_t fwrite ( const void *buf, size_t elem_Siz, size_t count,
|
||||
FILE *stream );
|
||||
short fputc ( short ch,
|
||||
FILE *stream );
|
||||
short fputs ( const char *str,
|
||||
FILE *stream );
|
||||
|
||||
/* other IO routines */
|
||||
|
||||
char * gets ( char *str );
|
||||
void perror ( char *s );
|
||||
void perrorf (char *fmt, ...);
|
||||
short d_printf ( const char *format, ... ); /* HR used when debugging */
|
||||
short printf ( const char *format, ... );
|
||||
short puts ( const char *str );
|
||||
short scanf ( const char *format, ... );
|
||||
short sprintf ( char *string, const char *format, ... );
|
||||
short sscanf ( const char *string, const char *format, ... );
|
||||
char * tmpnam ( char *s );
|
||||
short vprintf ( const char *format, va_list param );
|
||||
short vsprintf ( char *string, const char *format, va_list param );
|
||||
short vscanf ( const char *format, va_list param );
|
||||
short vsscanf ( char *string, const char *format, va_list param );
|
||||
|
||||
/* FileIo macros */
|
||||
|
||||
#define getc( c ) fgetc( c )
|
||||
#define getchar() fgetc( stdin )
|
||||
#define ungetchar( c) fungetc(c, stdin)
|
||||
#define putc( c, s ) fputc( c, s )
|
||||
#define putchar( c ) fputc( c, stdout )
|
||||
#define exists(f ) access( f, 0x00 )
|
||||
|
||||
/* GEMDOS Handle level FileIO routines */
|
||||
|
||||
short open ( const char *filename, short access, ... );
|
||||
short close ( short handle );
|
||||
short creat ( const char *filename, ...);
|
||||
size_t read ( short handle, void *buf, size_t nbyte );
|
||||
size_t write ( short handle, const void *buf, size_t nbyte );
|
||||
size_t lseek ( short handle, size_t offset, short mo );
|
||||
short remove ( const char *filename );
|
||||
short unlink ( const char *filename );
|
||||
short rename ( const char *oldname, const char *newname );
|
||||
|
||||
/* In dlibs, not in PC */
|
||||
FILE * fopenp ( const char *filename, const char *mode );
|
||||
FILE * fdopen ( short h, const char *mode );
|
||||
char * fullpath ( char *full, const char *part );
|
||||
char * findfile ( const char *afn, const char *ext );
|
||||
char * pfindfile ( const char *path, const char *afn, const char *ext );
|
||||
short fungetc ( short c, FILE *fp );
|
||||
short ungetc ( short c, FILE *fp );
|
||||
short cprintf ( const char *fmt, ... );
|
||||
void cputs ( char *data );
|
||||
short getw ( FILE *fp );
|
||||
short putw ( short n, FILE *fp );
|
||||
long getl ( FILE *fp);
|
||||
long putl ( long n, FILE *fp );
|
||||
size_t tell ( short h );
|
||||
short rmdir ( const char *pathname );
|
||||
short mkdir ( const char *pathname );
|
||||
short dup ( short handle);
|
||||
short dup2 ( short handle1, short handle2 );
|
||||
short _tttty ( FILE *fp );
|
||||
char *_splitpath
|
||||
(
|
||||
const char *src,
|
||||
char *drive,
|
||||
char *path,
|
||||
char *file,
|
||||
char *ext
|
||||
);
|
||||
|
||||
short printf_dmode( short );
|
||||
|
||||
#ifndef ERROR
|
||||
#define ERROR (-1) /* general error condition */
|
||||
#endif
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user