UbixOS V2 2.0

Data Structures | Macros | Typedefs | Enumerations | Functions
tcpip_priv.h File Reference
`#include "net/opt.h"`
`#include "net/tcpip.h"`
`#include "net/sys.h"`
`#include "net/timeouts.h"`
Include dependency graph for tcpip_priv.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

## Data Structures
struct | tcpip_api_call_data
struct | tcpip_msg

## Macros
#define | API_EXPR_DEREF(expr) (*(expr))
#define | API_EXPR_REF(expr) expr
#define | API_EXPR_REF_SEM(expr) API_EXPR_REF(expr)
#define | API_MSG_M_DEF(m) *m
#define | API_MSG_M_DEF_C(t, m) const t * m
#define | API_VAR_ALLOC(type, pool, name, errorval)
#define | API_VAR_ALLOC_POOL(type, pool, name, errorval)
#define | API_VAR_DECLARE(type, name) type name
#define | API_VAR_FREE(pool, name)
#define | API_VAR_FREE_POOL(pool, name)
#define | API_VAR_REF(name) name

## 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_api_call (tcpip_api_call_fn fn, struct tcpip_api_call_data *call)
err_t | tcpip_send_msg_wait_sem (tcpip_callback_fn fn, void *apimsg, sys_sem_t *sem)

## Detailed Description

TCPIP API internal implementations (do not use in application code)

Definition in file tcpip_priv.h.

## Macro Definition Documentation

## ◆ API_EXPR_DEREF

#define API_EXPR_DEREF | ( |  | expr | ) | (*(expr))

Definition at line 90 of file tcpip_priv.h.

## ◆ API_EXPR_REF

#define API_EXPR_REF | ( |  | expr | ) | expr

Definition at line 88 of file tcpip_priv.h.

## ◆ API_EXPR_REF_SEM

#define API_EXPR_REF_SEM | ( |  | expr | ) | API_EXPR_REF(expr)

Definition at line 89 of file tcpip_priv.h.

## ◆ API_MSG_M_DEF

#define API_MSG_M_DEF | ( |  | m | ) | *m

Definition at line 91 of file tcpip_priv.h.

## ◆ API_MSG_M_DEF_C

#define API_MSG_M_DEF_C | ( |  | t,
|  |  | m
| ) |  | const t * m

Definition at line 92 of file tcpip_priv.h.

## ◆ API_VAR_ALLOC

#define API_VAR_ALLOC | ( |  | type,
|  |  | pool,
|  |  | name,
|  |  | errorval
| ) |  |

Definition at line 84 of file tcpip_priv.h.

## ◆ API_VAR_ALLOC_POOL

#define API_VAR_ALLOC_POOL | ( |  | type,
|  |  | pool,
|  |  | name,
|  |  | errorval
| ) |  |

Definition at line 85 of file tcpip_priv.h.

## ◆ API_VAR_DECLARE

#define API_VAR_DECLARE | ( |  | type,
|  |  | name
| ) |  | type name

Definition at line 83 of file tcpip_priv.h.

## ◆ API_VAR_FREE

#define API_VAR_FREE | ( |  | pool,
|  |  | name
| ) |  |

Definition at line 86 of file tcpip_priv.h.

## ◆ API_VAR_FREE_POOL

#define API_VAR_FREE_POOL | ( |  | pool,
|  |  | name
| ) |  |

Definition at line 87 of file tcpip_priv.h.

## ◆ API_VAR_REF

#define API_VAR_REF | ( |  | name | ) | name

Definition at line 82 of file tcpip_priv.h.

## Typedef Documentation

## ◆ tcpip_api_call_fn

typedef err_t(* tcpip_api_call_fn) (struct tcpip_api_call_data *call)

Definition at line 108 of file tcpip_priv.h.

## Enumeration Type Documentation

## ◆ tcpip_msg_type

enum tcpip_msg_type

Enumerator
TCPIP_MSG_API |
TCPIP_MSG_API_CALL |
TCPIP_MSG_INPKT |
TCPIP_MSG_CALLBACK |
TCPIP_MSG_CALLBACK_STATIC |

Definition at line 111 of file tcpip_priv.h.

## Function Documentation

## ◆ tcpip_api_call()

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.

Parameters

  fn | Function to call
  call | Call parameters

Returns
  Return value from tcpip_api_call_fn

Definition at line 356 of file tcpip.c.

References ERR_OK, LOCK_TCPIP_CORE, LWIP_ASSERT, tcpip_msg::msg, tcpip_api_call_data::sem, sys_mbox_valid_val, sys_sem_new(), TCPIP_MSG_VAR_DECLARE, and UNLOCK_TCPIP_CORE.

Here is the call graph for this function:

## ◆ tcpip_send_msg_wait_sem()

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.

Parameters

  fn | function to be called from TCPIP thread
  apimsg | argument to API function
  sem | semaphore to wait on

Returns
  ERR_OK if the function was called, another err_t if not

Definition at line 322 of file tcpip.c.

References ERR_OK, LOCK_TCPIP_CORE, LWIP_ASSERT, LWIP_UNUSED_ARG, tcpip_msg::msg, tcpip_msg::sem, sys_mbox_valid_val, sys_sem_valid(), TCPIP_MSG_VAR_DECLARE, and UNLOCK_TCPIP_CORE.

Here is the call graph for this function: