/*-------------------------------------------------------------*/
/***************************************************************
* Functions herein permit to change global configuration of *
* netwib. *
***************************************************************/
/*-------------------------------------------------------------*/
/* See below for the meaning of those values */
typedef enum {
NETWIB_GLOBAL_CTLTYPE_ERR_PURGE = 1,
NETWIB_GLOBAL_CTLTYPE_CONF_UPDATE,
NETWIB_GLOBAL_CTLTYPE_DEBUG_CTRLC_PRESSED
} netwib_global_ctltype;
netwib_err netwib_global_ctl_set(netwib_global_ctltype type,
netwib_ptr p,
netwib_uint32 ui);
netwib_err netwib_global_ctl_get(netwib_global_ctltype type,
netwib_ptr p,
netwib_uint32 *pui);
/*-------------------------------------------------------------*/
/* purge last error */
/* netwib_err f(void); */
#define netwib_global_ctl_set_err_purge() netwib_global_ctl_set(NETWIB_GLOBAL_CTLTYPE_ERR_PURGE,NULL,0)
/*-------------------------------------------------------------*/
/* update configuration. Care must be taken to ensure nobody
is currently looping through current configuration
(lock/mutex). */
/* netwib_err f(void); */
#define netwib_global_ctl_set_conf_update() netwib_global_ctl_set(NETWIB_GLOBAL_CTLTYPE_CONF_UPDATE,NULL,0)
/*-------------------------------------------------------------*/
/* if Control-C was pressed (used only in Debug mode under Linux,
in order to detect memory leaks) */
/* netwib_err f(netwib_bool *pbool); */
#define netwib_global_ctl_get_debug_ctrlc_pressed(pbool) netwib_global_ctl_get(NETWIB_GLOBAL_CTLTYPE_DEBUG_CTRLC_PRESSED,NULL,(netwib_uint32 *)pbool)
#define netwib__debug_ctrlc_pressed_break() { netwib_err netwib__debug_ctrlc_pressed_break_ret; netwib_bool netwib__debug_ctrlc_pressed_break_pressed; netwib__debug_ctrlc_pressed_break_ret = netwib_global_ctl_get_debug_ctrlc_pressed(&netwib__debug_ctrlc_pressed_break_pressed); if (netwib__debug_ctrlc_pressed_break_ret == NETWIB_ERR_OK && netwib__debug_ctrlc_pressed_break_pressed) break; }