added qse_awk_rtx_isnilval().
enhanced the qse_awk_sio_t core functions so that the implementaion can set the stream name added export specifiers to some functions
This commit is contained in:
@ -205,32 +205,44 @@ public:
|
||||
public:
|
||||
Mode getMode() const
|
||||
{
|
||||
return mode;
|
||||
return this->mode;
|
||||
}
|
||||
|
||||
int getFlags () const
|
||||
{
|
||||
return arg->flags;
|
||||
}
|
||||
|
||||
const char_t* getName() const
|
||||
{
|
||||
return arg->name;
|
||||
return this->arg->name;
|
||||
}
|
||||
|
||||
// since it doesn't copy the contents,
|
||||
// it should point to something that outlives this object.
|
||||
void setName (const char_t* name)
|
||||
{
|
||||
this->arg->name = name;
|
||||
}
|
||||
|
||||
void* getHandle () const
|
||||
{
|
||||
return arg->handle;
|
||||
return this->arg->handle;
|
||||
}
|
||||
|
||||
void setHandle (void* handle)
|
||||
{
|
||||
arg->handle = handle;
|
||||
this->arg->handle = handle;
|
||||
}
|
||||
|
||||
operator Awk* () const
|
||||
{
|
||||
return awk;
|
||||
return this->awk;
|
||||
}
|
||||
|
||||
operator awk_t* () const
|
||||
{
|
||||
return awk->awk;
|
||||
return this->awk->awk;
|
||||
}
|
||||
|
||||
protected:
|
||||
|
@ -499,11 +499,39 @@ struct qse_awk_sio_lxc_t
|
||||
};
|
||||
typedef struct qse_awk_sio_lxc_t qse_awk_sio_lxc_t;
|
||||
|
||||
enum qse_awk_sio_arg_flag_t
|
||||
{
|
||||
QSE_AWK_SIO_INCLUDED = (1 << 0)
|
||||
};
|
||||
|
||||
typedef struct qse_awk_sio_arg_t qse_awk_sio_arg_t;
|
||||
struct qse_awk_sio_arg_t
|
||||
{
|
||||
const qse_char_t* name; /**< [IN] name of I/O object */
|
||||
void* handle; /**< [OUT] I/O handle set by a handler */
|
||||
/**
|
||||
* [IN] bitwise-ORed of #qse_awk_sio_arg_flag_t.
|
||||
* The field is set with #QSE_AWK_SIO_INCLUDED if an included file
|
||||
* is handled.
|
||||
*/
|
||||
int flags;
|
||||
|
||||
/**
|
||||
* [IN/OUT] name of I/O object.
|
||||
* if #QSE_AWK_SIO_INCLUDED is not set, the name is set to #QSE_NULL.
|
||||
* the source stream handler(#qse_awk_sio_impl_t) can change this field
|
||||
* to give useful information back to the parser.
|
||||
*
|
||||
* if #QSE_AWK_SIO_INCLUDED is set in the flags field,
|
||||
* the name field is set to the name of the included file.
|
||||
*/
|
||||
const qse_char_t* name;
|
||||
|
||||
/**
|
||||
* [OUT] I/O handle set by a handler.
|
||||
* The source stream handler can set this field when it opens a stream.
|
||||
* All subsequent operations on the stream see this field as set
|
||||
* during opening.
|
||||
*/
|
||||
void* handle;
|
||||
|
||||
/*-- from here down, internal use only --*/
|
||||
struct
|
||||
@ -1378,21 +1406,6 @@ typedef struct qse_awk_nrflt_t qse_awk_nrflt_t;
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/** represents a nil value */
|
||||
QSE_EXPORT extern qse_awk_val_t* qse_awk_val_nil;
|
||||
|
||||
/** represents an empty string */
|
||||
QSE_EXPORT extern qse_awk_val_t* qse_awk_val_zls;
|
||||
|
||||
/** represents a numeric value -1 */
|
||||
QSE_EXPORT extern qse_awk_val_t* qse_awk_val_negone;
|
||||
|
||||
/** represents a numeric value 0 */
|
||||
QSE_EXPORT extern qse_awk_val_t* qse_awk_val_zero;
|
||||
|
||||
/** represents a numeric value 1 */
|
||||
QSE_EXPORT extern qse_awk_val_t* qse_awk_val_one;
|
||||
|
||||
/**
|
||||
* The qse_awk_open() function creates a new qse_awk_t object. The object
|
||||
* created can be passed to other qse_awk_xxx() functions and is valid until
|
||||
@ -2190,7 +2203,16 @@ QSE_EXPORT int qse_awk_rtx_setrec (
|
||||
);
|
||||
|
||||
/**
|
||||
* The qse_awk_rtx_makenilval() function create a nil value.
|
||||
* The qse_awk_rtx_isnilval(0 function determines if a value
|
||||
* is a nil value.
|
||||
*/
|
||||
QSE_EXPORT int qse_awk_rtx_isnilval (
|
||||
qse_awk_rtx_t* rtx,
|
||||
qse_awk_val_t* val
|
||||
);
|
||||
|
||||
/**
|
||||
* The qse_awk_rtx_makenilval() function creates a nil value.
|
||||
* It always returns the pointer to the statically allocated
|
||||
* nil value. So it never fails.
|
||||
*/
|
||||
|
@ -90,7 +90,7 @@ extern "C" {
|
||||
* }
|
||||
* @endcode
|
||||
*/
|
||||
void* qse_bsearch (
|
||||
QSE_EXPORT void* qse_bsearch (
|
||||
const void* key,
|
||||
const void* base,
|
||||
qse_size_t nmemb,
|
||||
@ -102,7 +102,7 @@ void* qse_bsearch (
|
||||
/**
|
||||
* The qse_lsearch() function performs linear search over an array.
|
||||
*/
|
||||
void* qse_lsearch (
|
||||
QSE_EXPORT void* qse_lsearch (
|
||||
const void* key,
|
||||
const void* base,
|
||||
qse_size_t nmemb,
|
||||
@ -115,7 +115,7 @@ void* qse_lsearch (
|
||||
/**
|
||||
* The qse_qsort() function performs quick-sorting over an array.
|
||||
*/
|
||||
void qse_qsort (
|
||||
QSE_EXPORT void qse_qsort (
|
||||
void* base,
|
||||
qse_size_t nmemb,
|
||||
qse_size_t size,
|
||||
@ -128,7 +128,7 @@ void qse_qsort (
|
||||
* The qse_rand31() function implements Park-Miller's minimal standard
|
||||
* 32 bit pseudo-random number generator.
|
||||
*/
|
||||
qse_uint32_t qse_rand31 (
|
||||
QSE_EXPORT qse_uint32_t qse_rand31 (
|
||||
qse_uint32_t seed
|
||||
);
|
||||
|
||||
@ -138,7 +138,7 @@ qse_uint32_t qse_rand31 (
|
||||
* The qse_randxs32() function implements the xorshift random number generator
|
||||
* by George Marsaglia.
|
||||
*/
|
||||
qse_uint32_t qse_randxs32 (
|
||||
QSE_EXPORT qse_uint32_t qse_randxs32 (
|
||||
qse_uint32_t seed
|
||||
);
|
||||
#endif
|
||||
@ -148,7 +148,7 @@ qse_uint32_t qse_randxs32 (
|
||||
* The qse_randxs64() function implements the xorshift random number generator
|
||||
* by George Marsaglia.
|
||||
*/
|
||||
qse_uint64_t qse_randxs64 (
|
||||
QSE_EXPORT qse_uint64_t qse_randxs64 (
|
||||
qse_uint64_t seed
|
||||
);
|
||||
#endif
|
||||
@ -169,8 +169,7 @@ qse_uint64_t qse_randxs64 (
|
||||
# error Unsupported
|
||||
#endif
|
||||
|
||||
|
||||
qse_size_t qse_enbase64 (
|
||||
QSE_EXPORT qse_size_t qse_enbase64 (
|
||||
const void* in,
|
||||
qse_size_t isz,
|
||||
qse_mchar_t* out,
|
||||
@ -178,7 +177,7 @@ qse_size_t qse_enbase64 (
|
||||
qse_size_t* xsz
|
||||
);
|
||||
|
||||
qse_size_t qse_debase64 (
|
||||
QSE_EXPORT qse_size_t qse_debase64 (
|
||||
const qse_mchar_t* in,
|
||||
qse_size_t isz,
|
||||
void* out,
|
||||
|
@ -166,43 +166,43 @@ typedef qse_ctype_t qse_wctype_t;
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
int qse_ismctype (
|
||||
QSE_EXPORT int qse_ismctype (
|
||||
qse_mcint_t c,
|
||||
qse_mctype_t type
|
||||
);
|
||||
|
||||
int qse_iswctype (
|
||||
QSE_EXPORT int qse_iswctype (
|
||||
qse_wcint_t c,
|
||||
qse_wctype_t type
|
||||
);
|
||||
|
||||
qse_mcint_t qse_tomctype (
|
||||
QSE_EXPORT qse_mcint_t qse_tomctype (
|
||||
qse_mcint_t c,
|
||||
qse_mctype_t type
|
||||
);
|
||||
|
||||
qse_wcint_t qse_towctype (
|
||||
QSE_EXPORT qse_wcint_t qse_towctype (
|
||||
qse_wcint_t c,
|
||||
qse_wctype_t type
|
||||
);
|
||||
|
||||
int qse_mbstoctype (
|
||||
QSE_EXPORT int qse_mbstoctype (
|
||||
const qse_mchar_t* name,
|
||||
qse_mctype_t* id
|
||||
);
|
||||
|
||||
int qse_mbsntoctype (
|
||||
QSE_EXPORT int qse_mbsntoctype (
|
||||
const qse_mchar_t* name,
|
||||
qse_size_t len,
|
||||
qse_mctype_t* id
|
||||
);
|
||||
|
||||
int qse_wcstoctype (
|
||||
QSE_EXPORT int qse_wcstoctype (
|
||||
const qse_wchar_t* name,
|
||||
qse_wctype_t* id
|
||||
);
|
||||
|
||||
int qse_wcsntoctype (
|
||||
QSE_EXPORT int qse_wcsntoctype (
|
||||
const qse_wchar_t* name,
|
||||
qse_size_t len,
|
||||
qse_wctype_t* id
|
||||
|
@ -52,7 +52,7 @@ extern "C" {
|
||||
* This function doesn't check invalid unicode code points and performs
|
||||
* conversion compuationally.
|
||||
*/
|
||||
qse_size_t qse_uctocp949 (
|
||||
QSE_EXPORT qse_size_t qse_uctocp949 (
|
||||
qse_wchar_t uc,
|
||||
qse_mchar_t* cp949,
|
||||
qse_size_t size
|
||||
@ -66,7 +66,7 @@ qse_size_t qse_uctocp949 (
|
||||
* not complete.
|
||||
* - An integer between 1 and size inclusive is returned in all other cases.
|
||||
*/
|
||||
qse_size_t qse_cp949touc (
|
||||
QSE_EXPORT qse_size_t qse_cp949touc (
|
||||
const qse_mchar_t* cp949,
|
||||
qse_size_t size,
|
||||
qse_wchar_t* uc
|
||||
@ -82,7 +82,7 @@ qse_size_t qse_cp949touc (
|
||||
* not complete.
|
||||
* - An integer between 1 and size inclusive is returned in all other cases.
|
||||
*/
|
||||
qse_size_t qse_cp949len (
|
||||
QSE_EXPORT qse_size_t qse_cp949len (
|
||||
const qse_mchar_t* cp949,
|
||||
qse_size_t size
|
||||
);
|
||||
@ -92,7 +92,7 @@ qse_size_t qse_cp949len (
|
||||
* to form a single unicode character. Use #QSE_CP949LEN_MAX if you need a
|
||||
* compile-time constant.
|
||||
*/
|
||||
qse_size_t qse_cp949lenmax (
|
||||
QSE_EXPORT qse_size_t qse_cp949lenmax (
|
||||
void
|
||||
);
|
||||
|
||||
|
@ -52,7 +52,7 @@ extern "C" {
|
||||
* This function doesn't check invalid unicode code points and performs
|
||||
* conversion compuationally.
|
||||
*/
|
||||
qse_size_t qse_uctocp950 (
|
||||
QSE_EXPORT qse_size_t qse_uctocp950 (
|
||||
qse_wchar_t uc,
|
||||
qse_mchar_t* cp950,
|
||||
qse_size_t size
|
||||
@ -66,7 +66,7 @@ qse_size_t qse_uctocp950 (
|
||||
* not complete.
|
||||
* - An integer between 1 and size inclusive is returned in all other cases.
|
||||
*/
|
||||
qse_size_t qse_cp950touc (
|
||||
QSE_EXPORT qse_size_t qse_cp950touc (
|
||||
const qse_mchar_t* cp950,
|
||||
qse_size_t size,
|
||||
qse_wchar_t* uc
|
||||
@ -82,7 +82,7 @@ qse_size_t qse_cp950touc (
|
||||
* not complete.
|
||||
* - An integer between 1 and size inclusive is returned in all other cases.
|
||||
*/
|
||||
qse_size_t qse_cp950len (
|
||||
QSE_EXPORT qse_size_t qse_cp950len (
|
||||
const qse_mchar_t* cp950,
|
||||
qse_size_t size
|
||||
);
|
||||
@ -92,7 +92,7 @@ qse_size_t qse_cp950len (
|
||||
* to form a single unicode character. Use #QSE_CP950LEN_MAX if you need a
|
||||
* compile-time constant.
|
||||
*/
|
||||
qse_size_t qse_cp950lenmax (
|
||||
QSE_EXPORT qse_size_t qse_cp950lenmax (
|
||||
void
|
||||
);
|
||||
|
||||
|
@ -72,31 +72,31 @@ struct qse_dir_ent_t
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
qse_dir_t* qse_dir_open (
|
||||
QSE_EXPORT qse_dir_t* qse_dir_open (
|
||||
qse_mmgr_t* mmgr,
|
||||
qse_size_t xtnsize,
|
||||
const qse_char_t* path,
|
||||
int flags
|
||||
);
|
||||
|
||||
void qse_dir_close (
|
||||
QSE_EXPORT void qse_dir_close (
|
||||
qse_dir_t* dir
|
||||
);
|
||||
|
||||
qse_mmgr_t* qse_dir_getmmgr (
|
||||
QSE_EXPORT qse_mmgr_t* qse_dir_getmmgr (
|
||||
qse_dir_t* dir
|
||||
);
|
||||
|
||||
void* qse_dir_getxtn (
|
||||
QSE_EXPORT void* qse_dir_getxtn (
|
||||
qse_dir_t* dir
|
||||
);
|
||||
|
||||
int qse_dir_reset (
|
||||
QSE_EXPORT int qse_dir_reset (
|
||||
qse_dir_t* dir,
|
||||
const qse_char_t* path
|
||||
);
|
||||
|
||||
int qse_dir_read (
|
||||
QSE_EXPORT int qse_dir_read (
|
||||
qse_dir_t* dir,
|
||||
qse_dir_ent_t* ent
|
||||
);
|
||||
|
@ -50,7 +50,7 @@ typedef struct qse_env_t qse_env_t;
|
||||
|
||||
struct qse_env_t
|
||||
{
|
||||
QSE_DEFINE_COMMON_FIELDS(env)
|
||||
qse_mmgr_t* mmgr;
|
||||
|
||||
struct
|
||||
{
|
||||
@ -72,37 +72,43 @@ struct qse_env_t
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
QSE_DEFINE_COMMON_FUNCTIONS(env)
|
||||
|
||||
qse_env_t* qse_env_open (
|
||||
QSE_EXPORT qse_env_t* qse_env_open (
|
||||
qse_mmgr_t* mmgr,
|
||||
qse_size_t xtnsize,
|
||||
int fromcurenv
|
||||
);
|
||||
|
||||
void qse_env_close (
|
||||
QSE_EXPORT void qse_env_close (
|
||||
qse_env_t* env
|
||||
);
|
||||
|
||||
int qse_env_init (
|
||||
QSE_EXPORT int qse_env_init (
|
||||
qse_env_t* env,
|
||||
qse_mmgr_t* mmgr,
|
||||
int fromcurenv
|
||||
);
|
||||
|
||||
void qse_env_fini (
|
||||
QSE_EXPORT void qse_env_fini (
|
||||
qse_env_t* env
|
||||
);
|
||||
|
||||
void qse_env_clear (
|
||||
QSE_EXPORT qse_mmgr_t* qse_env_getmmgr (
|
||||
qse_env_t* env
|
||||
);
|
||||
|
||||
const qse_env_char_t* qse_env_getstr (
|
||||
QSE_EXPORT void* qse_env_getxtn (
|
||||
qse_env_t* env
|
||||
);
|
||||
|
||||
qse_env_char_t** qse_env_getarr (
|
||||
QSE_EXPORT void qse_env_clear (
|
||||
qse_env_t* env
|
||||
);
|
||||
|
||||
QSE_EXPORT const qse_env_char_t* qse_env_getstr (
|
||||
qse_env_t* env
|
||||
);
|
||||
|
||||
QSE_EXPORT qse_env_char_t** qse_env_getarr (
|
||||
qse_env_t* env
|
||||
);
|
||||
|
||||
@ -113,36 +119,36 @@ qse_env_char_t** qse_env_getarr (
|
||||
*
|
||||
* @return 0 on success, -1 on failure
|
||||
*/
|
||||
int qse_env_insertwcs (
|
||||
QSE_EXPORT int qse_env_insertwcs (
|
||||
qse_env_t* env,
|
||||
const qse_wchar_t* name,
|
||||
const qse_wchar_t* value
|
||||
);
|
||||
|
||||
int qse_env_insertwcsa (
|
||||
QSE_EXPORT int qse_env_insertwcsa (
|
||||
qse_env_t* env,
|
||||
const qse_wchar_t* name,
|
||||
const qse_wchar_t* value[]
|
||||
);
|
||||
|
||||
int qse_env_insertmbs (
|
||||
QSE_EXPORT int qse_env_insertmbs (
|
||||
qse_env_t* env,
|
||||
const qse_mchar_t* name,
|
||||
const qse_mchar_t* value
|
||||
);
|
||||
|
||||
int qse_env_insertmbsa (
|
||||
QSE_EXPORT int qse_env_insertmbsa (
|
||||
qse_env_t* env,
|
||||
const qse_mchar_t* name,
|
||||
const qse_mchar_t* value[]
|
||||
);
|
||||
|
||||
int qse_env_deletewcs (
|
||||
QSE_EXPORT int qse_env_deletewcs (
|
||||
qse_env_t* env,
|
||||
const qse_wchar_t* name
|
||||
);
|
||||
|
||||
int qse_env_deletembs (
|
||||
QSE_EXPORT int qse_env_deletembs (
|
||||
qse_env_t* env,
|
||||
const qse_mchar_t* name
|
||||
);
|
||||
|
@ -141,7 +141,7 @@ typedef struct qse_fio_lck_t qse_fio_lck_t;
|
||||
|
||||
struct qse_fio_t
|
||||
{
|
||||
QSE_DEFINE_COMMON_FIELDS (fio)
|
||||
qse_mmgr_t* mmgr;
|
||||
qse_fio_errnum_t errnum;
|
||||
qse_fio_hnd_t handle;
|
||||
int status;
|
||||
@ -161,8 +161,6 @@ struct qse_fio_lck_t
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
QSE_DEFINE_COMMON_FUNCTIONS (fio)
|
||||
|
||||
/**
|
||||
* The qse_fio_open() function opens a file.
|
||||
* To open a file, you should set the flags with at least one of
|
||||
@ -178,7 +176,7 @@ QSE_DEFINE_COMMON_FUNCTIONS (fio)
|
||||
* returns. So, you must not pass a constant string to the @a path
|
||||
* parameter when #QSE_FIO_TEMPORARY is set.
|
||||
*/
|
||||
qse_fio_t* qse_fio_open (
|
||||
QSE_EXPORT qse_fio_t* qse_fio_open (
|
||||
qse_mmgr_t* mmgr,
|
||||
qse_size_t ext,
|
||||
const qse_char_t* path,
|
||||
@ -189,14 +187,14 @@ qse_fio_t* qse_fio_open (
|
||||
/**
|
||||
* The qse_fio_close() function closes a file.
|
||||
*/
|
||||
void qse_fio_close (
|
||||
QSE_EXPORT void qse_fio_close (
|
||||
qse_fio_t* fio
|
||||
);
|
||||
|
||||
/**
|
||||
* The qse_fio_close() function opens a file into @a fio.
|
||||
*/
|
||||
int qse_fio_init (
|
||||
QSE_EXPORT int qse_fio_init (
|
||||
qse_fio_t* fio,
|
||||
qse_mmgr_t* mmgr,
|
||||
const qse_char_t* path,
|
||||
@ -208,29 +206,37 @@ int qse_fio_init (
|
||||
* The qse_fio_close() function finalizes a file by closing the handle
|
||||
* stored in @a fio.
|
||||
*/
|
||||
void qse_fio_fini (
|
||||
QSE_EXPORT void qse_fio_fini (
|
||||
qse_fio_t* fio
|
||||
);
|
||||
|
||||
qse_fio_errnum_t qse_fio_geterrnum (
|
||||
QSE_EXPORT qse_mmgr_t* qse_fio_getmmgr (
|
||||
qse_fio_t* fio
|
||||
);
|
||||
|
||||
QSE_EXPORT void* qse_fio_getxtn (
|
||||
qse_fio_t* fio
|
||||
);
|
||||
|
||||
QSE_EXPORT qse_fio_errnum_t qse_fio_geterrnum (
|
||||
const qse_fio_t* fio
|
||||
);
|
||||
|
||||
/**
|
||||
* The qse_fio_gethandle() function returns the native file handle.
|
||||
*/
|
||||
qse_fio_hnd_t qse_fio_gethandle (
|
||||
QSE_EXPORT qse_fio_hnd_t qse_fio_gethandle (
|
||||
const qse_fio_t* fio
|
||||
);
|
||||
|
||||
qse_ubi_t qse_fio_gethandleasubi (
|
||||
QSE_EXPORT qse_ubi_t qse_fio_gethandleasubi (
|
||||
const qse_fio_t* fio
|
||||
);
|
||||
|
||||
/**
|
||||
* The qse_fio_seek() function changes the current file position.
|
||||
*/
|
||||
qse_fio_off_t qse_fio_seek (
|
||||
QSE_EXPORT qse_fio_off_t qse_fio_seek (
|
||||
qse_fio_t* fio,
|
||||
qse_fio_off_t offset,
|
||||
qse_fio_ori_t origin
|
||||
@ -239,7 +245,7 @@ qse_fio_off_t qse_fio_seek (
|
||||
/**
|
||||
* The qse_fio_truncate() function truncates a file to @a size.
|
||||
*/
|
||||
int qse_fio_truncate (
|
||||
QSE_EXPORT int qse_fio_truncate (
|
||||
qse_fio_t* fio,
|
||||
qse_fio_off_t size
|
||||
);
|
||||
@ -247,7 +253,7 @@ int qse_fio_truncate (
|
||||
/**
|
||||
* The qse_fio_read() function reads data.
|
||||
*/
|
||||
qse_ssize_t qse_fio_read (
|
||||
QSE_EXPORT qse_ssize_t qse_fio_read (
|
||||
qse_fio_t* fio,
|
||||
void* buf,
|
||||
qse_size_t size
|
||||
@ -256,7 +262,7 @@ qse_ssize_t qse_fio_read (
|
||||
/**
|
||||
* The qse_fio_write() function writes data.
|
||||
*/
|
||||
qse_ssize_t qse_fio_write (
|
||||
QSE_EXPORT qse_ssize_t qse_fio_write (
|
||||
qse_fio_t* fio,
|
||||
const void* data,
|
||||
qse_size_t size
|
||||
@ -271,7 +277,7 @@ qse_ssize_t qse_fio_write (
|
||||
* - The file size is 0.
|
||||
* - The file is opened without #QSE_FIO_READ.
|
||||
*/
|
||||
int qse_fio_chmod (
|
||||
QSE_EXPORT int qse_fio_chmod (
|
||||
qse_fio_t* fio,
|
||||
int mode
|
||||
);
|
||||
@ -281,26 +287,25 @@ int qse_fio_chmod (
|
||||
* It is useful in determining the media error, without which qse_fio_close()
|
||||
* may succeed despite such an error.
|
||||
*/
|
||||
int qse_fio_sync (
|
||||
QSE_EXPORT int qse_fio_sync (
|
||||
qse_fio_t* fio
|
||||
);
|
||||
|
||||
|
||||
/* TODO: qse_fio_lock, qse_fio_unlock */
|
||||
int qse_fio_lock (
|
||||
QSE_EXPORT int qse_fio_lock (
|
||||
qse_fio_t* fio,
|
||||
qse_fio_lck_t* lck,
|
||||
int flags
|
||||
);
|
||||
|
||||
int qse_fio_unlock (
|
||||
QSE_EXPORT int qse_fio_unlock (
|
||||
qse_fio_t* fio,
|
||||
qse_fio_lck_t* lck,
|
||||
int flags
|
||||
);
|
||||
|
||||
|
||||
int qse_getstdfiohandle (
|
||||
QSE_EXPORT int qse_getstdfiohandle (
|
||||
qse_fio_std_t std,
|
||||
qse_fio_hnd_t* hnd
|
||||
);
|
||||
|
@ -59,12 +59,6 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/**
|
||||
* The qse_mmgr global variable holds a pointer to the default memory
|
||||
* manager. Use QSE_MMGR_GETDFL() and QSE_MMGR_SETDFL() to manipulate it.
|
||||
*/
|
||||
extern qse_mmgr_t* qse_mmgr;
|
||||
|
||||
/**
|
||||
* The qse_memcpy() functions copies @a n bytes from the source memory block
|
||||
* @a src to the destinaion memory block @a dst. The memory blocks must not
|
||||
|
@ -81,7 +81,7 @@ typedef struct qse_xma_blk_t qse_xma_blk_t;
|
||||
|
||||
struct qse_xma_t
|
||||
{
|
||||
QSE_DEFINE_COMMON_FIELDS (xma)
|
||||
qse_mmgr_t* mmgr;
|
||||
|
||||
/** pointer to the first memory block */
|
||||
qse_xma_blk_t* head;
|
||||
@ -118,8 +118,6 @@ typedef int (*qse_xma_dumper_t) (
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
QSE_DEFINE_COMMON_FUNCTIONS (xma)
|
||||
|
||||
/**
|
||||
* The qse_xma_open() function creates a memory allocator. It obtains a memory
|
||||
* zone of the @a zonesize bytes with the memory manager @a mmgr. It also makes
|
||||
@ -128,7 +126,7 @@ QSE_DEFINE_COMMON_FUNCTIONS (xma)
|
||||
*
|
||||
* @return pointer to a memory allocator on success, #QSE_NULL on failure
|
||||
*/
|
||||
qse_xma_t* qse_xma_open (
|
||||
QSE_EXPORT qse_xma_t* qse_xma_open (
|
||||
qse_mmgr_t* mmgr, /**< memory manager */
|
||||
qse_size_t xtnsize, /**< extension size in bytes */
|
||||
qse_size_t zonesize /**< zone size in bytes */
|
||||
@ -140,10 +138,18 @@ qse_xma_t* qse_xma_open (
|
||||
* the zone. Call this function to destroy a memory allocator created with
|
||||
* qse_xma_open().
|
||||
*/
|
||||
void qse_xma_close (
|
||||
QSE_EXPORT void qse_xma_close (
|
||||
qse_xma_t* xma /**< memory allocator */
|
||||
);
|
||||
|
||||
QSE_EXPORT qse_mmgr_t* qse_xma_getmmgr (
|
||||
qse_xma_t* xma
|
||||
);
|
||||
|
||||
QSE_EXPORT void* qse_xma_getxtn (
|
||||
qse_xma_t* xma
|
||||
);
|
||||
|
||||
/**
|
||||
* The qse_xma_init() initializes a memory allocator. If you have the qse_xma_t
|
||||
* structure statically declared or already allocated, you may pass the pointer
|
||||
@ -152,7 +158,7 @@ void qse_xma_close (
|
||||
* it does not accept the extension size, thus not creating an extention area.
|
||||
* @return 0 on success, -1 on failure
|
||||
*/
|
||||
int qse_xma_init (
|
||||
QSE_EXPORT int qse_xma_init (
|
||||
qse_xma_t* xma, /**< memory allocator */
|
||||
qse_mmgr_t* mmgr, /**< memory manager */
|
||||
qse_size_t zonesize /**< zone size in bytes */
|
||||
@ -162,7 +168,7 @@ int qse_xma_init (
|
||||
* The qse_xma_fini() function finalizes a memory allocator. Call this
|
||||
* function to finalize a memory allocator initialized with qse_xma_init().
|
||||
*/
|
||||
void qse_xma_fini (
|
||||
QSE_EXPORT void qse_xma_fini (
|
||||
qse_xma_t* xma /**< memory allocator */
|
||||
);
|
||||
|
||||
@ -170,12 +176,12 @@ void qse_xma_fini (
|
||||
* The qse_xma_alloc() function allocates @a size bytes.
|
||||
* @return pointer to a memory block on success, #QSE_NULL on failure
|
||||
*/
|
||||
void* qse_xma_alloc (
|
||||
QSE_EXPORT void* qse_xma_alloc (
|
||||
qse_xma_t* xma, /**< memory allocator */
|
||||
qse_size_t size /**< size in bytes */
|
||||
);
|
||||
|
||||
void* qse_xma_calloc (
|
||||
QSE_EXPORT void* qse_xma_calloc (
|
||||
qse_xma_t* xma,
|
||||
qse_size_t size
|
||||
);
|
||||
@ -184,7 +190,7 @@ void* qse_xma_calloc (
|
||||
* The qse_xma_alloc() function resizes the memory block @a b to @a size bytes.
|
||||
* @return pointer to a resized memory block on success, #QSE_NULL on failure
|
||||
*/
|
||||
void* qse_xma_realloc (
|
||||
QSE_EXPORT void* qse_xma_realloc (
|
||||
qse_xma_t* xma, /**< memory allocator */
|
||||
void* b, /**< memory block */
|
||||
qse_size_t size /**< new size in bytes */
|
||||
@ -193,7 +199,7 @@ void* qse_xma_realloc (
|
||||
/**
|
||||
* The qse_xma_alloc() function frees the memory block @a b.
|
||||
*/
|
||||
void qse_xma_free (
|
||||
QSE_EXPORT void qse_xma_free (
|
||||
qse_xma_t* xma, /**< memory allocator */
|
||||
void* b /**< memory block */
|
||||
);
|
||||
@ -203,7 +209,7 @@ void qse_xma_free (
|
||||
* with the output function @a dumper provided. The debug build shows
|
||||
* more statistical counters.
|
||||
*/
|
||||
void qse_xma_dump (
|
||||
QSE_EXPORT void qse_xma_dump (
|
||||
qse_xma_t* xma, /**< memory allocator */
|
||||
qse_xma_dumper_t dumper, /**< output function */
|
||||
void* ctx /**< first parameter to output function */
|
||||
|
@ -69,6 +69,10 @@
|
||||
# define QSE_EXPORT __attribute__((visibility("default")))
|
||||
# define QSE_PRIVATE __attribute__((visibility("hidden")))
|
||||
/*# define QSE_PRIVATE __attribute__((visibility("internal")))*/
|
||||
#elif defined(__WATCOMC__)
|
||||
# define QSE_IMPORT __declspec(dllimport)
|
||||
# define QSE_EXPORT __declspec(dllexport)
|
||||
# define QSE_PRIVATE
|
||||
#else
|
||||
# define QSE_IMPORT
|
||||
# define QSE_EXPORT
|
||||
|
Reference in New Issue
Block a user