132 lines
3.4 KiB
C
132 lines
3.4 KiB
C
/* fioLib.h - header for formatted i/o library */
|
|
|
|
/*
|
|
* Copyright (c) 1984-1995, 2009-2010 Wind River Systems, Inc.
|
|
*
|
|
* The right to copy, distribute, modify or otherwise make use
|
|
* of this software may be licensed only pursuant to the terms
|
|
* of an applicable Wind River license agreement.
|
|
*/
|
|
|
|
/*
|
|
modification history
|
|
--------------------
|
|
01r,15sep10,mcm Updated FIOFORMATV_OUTPUT_FUNCPTR definition for LP64
|
|
01q,19jan10,pad Applied C++ inline scheme for fioFormatV() and fioScanV().
|
|
01q,19jan10,pad Removed usage of _WRS_KEEP_USING_FUNCPTR.
|
|
01p,26mar09,mcm Updates for the LP64 data model; moved unpublished APIs out
|
|
01o,14may95,p_m added fioLibInit() prototype.
|
|
01n,20jul92,jmm removed declaration of itob()
|
|
01m,13nov92,dnw made include of stdarg.h conditional on __STDC__
|
|
01l,22sep92,rrr added support for c++
|
|
01k,02aug92,jcf added printExc().
|
|
01j,04jul92,jcf cleaned up.
|
|
01i,26may92,rrr the tree shuffle
|
|
01h,04dec91,rrr some more ansi cleanup.
|
|
01g,04oct91,rrr passed through the ansification filter
|
|
-changed includes to have absolute path from h/
|
|
-fixed #else and #endif
|
|
-changed copyright notice
|
|
01f,24mar91,del added include of varargs.h.
|
|
01e,05oct90,shl added ANSI function prototypes.
|
|
added copyright notice.
|
|
made #endif ANSI style.
|
|
01d,07aug90,shl added INCfioLibh to #endif.
|
|
01c,10jun90,dnw removed S_fioLib_UNEXPECTED_EOF (no longer returned by fioRead)
|
|
This file is now just a place holder!
|
|
01b,24dec86,gae changed stsLib.h to vwModNum.h.
|
|
01a,07aug84,ecs written
|
|
*/
|
|
|
|
#ifndef __INCfioLibh
|
|
#define __INCfioLibh
|
|
|
|
#include <stdarg.h>
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/*
|
|
* Type definitions for fioFormatV() and fioScanV()'s fully-qualified
|
|
* function pointer parameter.
|
|
*/
|
|
|
|
typedef int (*GET_NEXT_CHAR_FUNCPTR) (void *);
|
|
|
|
typedef STATUS (*FIOFORMATV_OUTPUT_FUNCPTR)
|
|
(
|
|
char *,
|
|
size_t,
|
|
_Vx_usr_arg_t
|
|
);
|
|
|
|
/* function declarations */
|
|
|
|
extern void fioLibInit (void);
|
|
extern void fioBaseLibInit (void);
|
|
extern int fioFormatV
|
|
(
|
|
const char *fmt,
|
|
va_list vaList,
|
|
FIOFORMATV_OUTPUT_FUNCPTR outRoutine,
|
|
_Vx_usr_arg_t outarg
|
|
);
|
|
extern int fioScanV
|
|
(
|
|
const char *fmt,
|
|
GET_NEXT_CHAR_FUNCPTR getRtn,
|
|
void *getArg,
|
|
int *pUnget,
|
|
va_list vaList
|
|
);
|
|
|
|
extern ssize_t fioRead (int fd, char *buffer, size_t maxbytes);
|
|
extern ssize_t fioRdString (int fd, char string[], size_t maxbytes);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
|
|
/*
|
|
* inlined C++ wrapper for the old-style FUNCPTR based fioFormatV() and
|
|
* fioScanV() function prototypes.
|
|
*/
|
|
|
|
extern int fioFormatV (const char *fmt, va_list vaList, FUNCPTR outRoutine,
|
|
_Vx_usr_arg_t outarg) \
|
|
_WRS_DEPRECATED ("please use fully qualified function pointer "
|
|
"version of API");
|
|
|
|
inline int fioFormatV
|
|
(
|
|
const char *fmt,
|
|
va_list vaList,
|
|
FUNCPTR outRoutine,
|
|
_Vx_usr_arg_t outarg
|
|
)
|
|
{
|
|
return fioFormatV (fmt, vaList, (FIOFORMATV_OUTPUT_FUNCPTR)outRoutine,
|
|
outarg);
|
|
}
|
|
|
|
extern int fioScanV (const char *fmt, FUNCPTR getRtn, void *getArg,
|
|
int *pUnget, va_list vaList) \
|
|
_WRS_DEPRECATED ("please use fully qualified function pointer "
|
|
"version of API");
|
|
|
|
inline int fioScanV
|
|
(
|
|
const char *fmt,
|
|
FUNCPTR getRtn,
|
|
void *getArg,
|
|
int *pUnget,
|
|
va_list vaList
|
|
)
|
|
{
|
|
return fioScanV (fmt, (GET_NEXT_CHAR_FUNCPTR)getRtn, getArg, pUnget,
|
|
vaList);
|
|
}
|
|
#endif /* __cplusplus */
|
|
|
|
#endif /* __INCfioLibh */
|