Prusa MINI Firmware overview
|
Go to the source code of this file.
Classes | |
struct | tcpip_api_call_data |
struct | tcpip_msg |
Macros | |
#define | API_VAR_REF(name) name |
#define | API_VAR_DECLARE(type, name) type name |
#define | API_VAR_ALLOC(type, pool, name, errorval) |
#define | API_VAR_ALLOC_POOL(type, pool, name, errorval) |
#define | API_VAR_FREE(pool, name) |
#define | API_VAR_FREE_POOL(pool, name) |
#define | API_EXPR_REF(expr) expr |
#define | API_EXPR_REF_SEM(expr) API_EXPR_REF(expr) |
#define | API_EXPR_DEREF(expr) (*(expr)) |
#define | API_MSG_M_DEF(m) *m |
#define | API_MSG_M_DEF_C(t, m) const t * m |
Typedefs | |
typedef err_t(* | tcpip_api_call_fn) (struct tcpip_api_call_data *call) |
Enumerations | |
enum | tcpip_msg_type { TCPIP_MSG_API, TCPIP_MSG_API_CALL, TCPIP_MSG_INPKT, TCPIP_MSG_CALLBACK, TCPIP_MSG_CALLBACK_STATIC } |
Functions | |
err_t | tcpip_send_msg_wait_sem (tcpip_callback_fn fn, void *apimsg, sys_sem_t *sem) |
err_t | tcpip_api_call (tcpip_api_call_fn fn, struct tcpip_api_call_data *call) |
TCPIP API internal implementations (do not use in application code)
#define API_VAR_REF | ( | name | ) | name |
#define API_VAR_ALLOC | ( | type, | |
pool, | |||
name, | |||
errorval | |||
) |
#define API_VAR_ALLOC_POOL | ( | type, | |
pool, | |||
name, | |||
errorval | |||
) |
#define API_VAR_FREE | ( | pool, | |
name | |||
) |
#define API_VAR_FREE_POOL | ( | pool, | |
name | |||
) |
#define API_EXPR_REF | ( | expr | ) | expr |
#define API_EXPR_REF_SEM | ( | expr | ) | API_EXPR_REF(expr) |
#define API_EXPR_DEREF | ( | expr | ) | (*(expr)) |
#define API_MSG_M_DEF | ( | m | ) | *m |
#define API_MSG_M_DEF_C | ( | t, | |
m | |||
) | const t * m |
typedef err_t(* tcpip_api_call_fn) (struct tcpip_api_call_data *call) |
enum tcpip_msg_type |
err_t tcpip_send_msg_wait_sem | ( | tcpip_callback_fn | fn, |
void * | apimsg, | ||
sys_sem_t * | sem | ||
) |
Sends a message to TCPIP thread to call a function. Caller thread blocks on on a provided semaphore, which ist NOT automatically signalled by TCPIP thread, this has to be done by the user. It is recommended to use LWIP_TCPIP_CORE_LOCKING since this is the way with least runtime overhead.
fn | function to be called from TCPIP thread |
apimsg | argument to API function |
sem | semaphore to wait on |
err_t tcpip_api_call | ( | tcpip_api_call_fn | fn, |
struct tcpip_api_call_data * | call | ||
) |
Synchronously calls function in TCPIP thread and waits for its completion. It is recommended to use LWIP_TCPIP_CORE_LOCKING (preferred) or LWIP_NETCONN_SEM_PER_THREAD. If not, a semaphore is created and destroyed on every call which is usually an expensive/slow operation.
fn | Function to call |
call | Call parameters |