touched up qse_task_t

This commit is contained in:
2012-10-15 09:36:39 +00:00
parent 55ee23a255
commit b907296f4a
48 changed files with 1054 additions and 663 deletions

View File

@ -24,28 +24,55 @@
#include <qse/types.h>
#include <qse/macros.h>
typedef void (*qse_task_fnc_t) (void* ctx);
typedef struct qse_task_t qse_task_t;
typedef struct qse_task_slice_t qse_task_slice_t;
typedef qse_task_slice_t* (*qse_task_fnc_t) (
qse_task_t* task,
qse_task_slice_t* slice,
void* ctx
);
#ifdef __cplusplus
extern "C" {
#endif
int qse_gettaskid (
qse_task_t* qse_task_open (
qse_mmgr_t* mmgr,
qse_size_t xtnsize
);
void qse_task_close (
qse_task_t* task
);
qse_task_t* qse_maketask (
qse_mmgr_t* qse_task_getmmgr (
qse_task_t* task
);
void* qse_task_getxtn (
qse_task_t* task
);
qse_task_slice_t* qse_task_create (
qse_task_t* task,
qse_task_fnc_t fnc,
void* ctx,
qse_size_t stsize
qse_size_t stksize
);
int qse_task_boot (
void
qse_task_t* task,
qse_task_slice_t* to
);
void qse_task_schedule (
qse_task_t* task,
qse_task_slice_t* from,
qse_task_slice_t* to
);
#ifdef __cplusplus
}
#endif

View File

@ -105,15 +105,14 @@
* The QSE_OFFSETOF() macro returns the offset of a field from the beginning
* of a structure.
*/
#define QSE_OFFSETOF(type,member) \
((qse_size_t)&((type*)0)->member)
#define QSE_OFFSETOF(type,member) ((qse_size_t)&((type*)0)->member)
/**
* The QSE_ALIGNOF() macro returns the alignment size of a structure.
* Note that this macro may not work reliably depending on the type given.
*/
#define QSE_ALIGNOF(type) QSE_OFFSETOF(struct { qse_uint8_t d1; type d2 }, d2)
/*(sizeof(struct { qse_uint8_t d1; type d2 }) - sizeof(type))*/
#define QSE_ALIGNOF(type) QSE_OFFSETOF(struct { qse_uint8_t d1; type d2; }, d2)
/*(sizeof(struct { qse_uint8_t d1; type d2; }) - sizeof(type))*/
/**
* The QSE_TYPE_IS_SIGNED() macro determines if a type is signed.