The FreeRADIUS server  $Id: 15bac2a4c627c01d1aa2047687b3418955ac7f00 $
Data Structures | Macros | Typedefs
xlat_ctx.h File Reference

xlat ephemeral argument passing structures More...

#include <freeradius-devel/server/module_ctx.h>
+ Include dependency graph for xlat_ctx.h:

Go to the source code of this file.

Data Structures

struct  xlat_ctx_t
 An xlat calling ctx. More...
 
struct  xlat_inst_ctx_t
 An xlat instantiation ctx. More...
 
struct  xlat_thread_inst_ctx_t
 An xlat thread instantiation ctx. More...
 

Macros

#define XLAT_CTX(_inst, _thread, _mctx, _env_data, _rctx)
 Wrapper to create a xlat_ctx_t as a compound literal. More...
 
#define XLAT_INST_CTX(_inst, _ex, _mctx, _uctx)   &(xlat_inst_ctx_t){ .inst = _inst, .ex = _ex, .mctx = _mctx, .uctx = _uctx }
 Wrapper to create a xlat_inst_ctx_t as a compound literal. More...
 
#define XLAT_THREAD_INST_CTX(_inst, _thread, _ex, _mctx, _el, _uctx)   &(xlat_thread_inst_ctx_t){ .inst = _inst, .ex = _ex, .mctx = _mctx, .el = _el, .uctx = _uctx }
 Wrapper to create a xlat_thread_inst_ctx_t as a compound literal. More...
 

Typedefs

typedef struct xlat_exp_head_s xlat_exp_head_t
 
typedef struct xlat_exp_s xlat_exp_t
 

Detailed Description

xlat ephemeral argument passing structures

Id
abcd2266c4669fb3e24f544e29406e3eb6455616

Definition in file xlat_ctx.h.


Data Structure Documentation

◆ xlat_ctx_t

struct xlat_ctx_t

An xlat calling ctx.

This provides optional arguments to xlat functions.

Definition at line 42 of file xlat_ctx.h.

+ Collaboration diagram for xlat_ctx_t:
Data Fields
void * env_data Expanded call env data.
void const * inst xlat instance data.
module_ctx_t const * mctx Synthesised module calling ctx.
void * rctx Resume context.
void * thread xlat threadinstance data.

◆ xlat_inst_ctx_t

struct xlat_inst_ctx_t

An xlat instantiation ctx.

This provides optional arguments to xlat functions.

Definition at line 54 of file xlat_ctx.h.

+ Collaboration diagram for xlat_inst_ctx_t:
Data Fields
xlat_exp_t * ex Tokenized expression to use in expansion.
void * inst xlat instance data to populate.
module_inst_ctx_t const * mctx Synthesised module calling ctx.
void * uctx Passed to the registration function.

◆ xlat_thread_inst_ctx_t

struct xlat_thread_inst_ctx_t

An xlat thread instantiation ctx.

This provides optional arguments to xlat functions.

Definition at line 65 of file xlat_ctx.h.

+ Collaboration diagram for xlat_thread_inst_ctx_t:
Data Fields
fr_event_list_t * el To register any I/O handlers or timers against.
xlat_exp_t const * ex Tokenized expression to use in expansion.
void const * inst xlat instance data.
module_ctx_t const * mctx Synthesised module calling ctx.
void * thread xlat thread instance data to populate.
void * uctx Passed to the registration function.

Macro Definition Documentation

◆ XLAT_CTX

#define XLAT_CTX (   _inst,
  _thread,
  _mctx,
  _env_data,
  _rctx 
)
Value:
&(xlat_ctx_t){ .inst = _inst, .thread = _thread, \
.mctx = _mctx, .env_data = _env_data, .rctx = _rctx }
An xlat calling ctx.
Definition: xlat_ctx.h:42

Wrapper to create a xlat_ctx_t as a compound literal.

This is used so that the compiler will flag any uses of (xlat_ctx_t) which don't set the required fields. Additional arguments should be added to this macro whenever the xlat_ctx_t fields are altered.

Parameters
[in]_instInstance data of the module being called.
[in]_threadInstance data of the thread being called.
[in]_mctxModule ctx.
[in]_env_dataExpanded call env.
[in]_rctxresume ctx data.

Definition at line 86 of file xlat_ctx.h.

◆ XLAT_INST_CTX

#define XLAT_INST_CTX (   _inst,
  _ex,
  _mctx,
  _uctx 
)    &(xlat_inst_ctx_t){ .inst = _inst, .ex = _ex, .mctx = _mctx, .uctx = _uctx }

Wrapper to create a xlat_inst_ctx_t as a compound literal.

This is used so that the compiler will flag any uses of (xlat_inst_ctx_t) which don't set the required fields. Additional arguments should be added to this macro whenever the xlat_inst_ctx_t fields are altered.

Parameters
[in]_instInstance data of the module being called.
[in]_exxlat expression to be evaluated by the instantiation function.
[in]_mctxThe module_inst_ctx_t from the parent module (if any).
[in]_uctxpassed when the instantiation function was registered.

Definition at line 100 of file xlat_ctx.h.

◆ XLAT_THREAD_INST_CTX

#define XLAT_THREAD_INST_CTX (   _inst,
  _thread,
  _ex,
  _mctx,
  _el,
  _uctx 
)    &(xlat_thread_inst_ctx_t){ .inst = _inst, .ex = _ex, .mctx = _mctx, .el = _el, .uctx = _uctx }

Wrapper to create a xlat_thread_inst_ctx_t as a compound literal.

This is used so that the compiler will flag any uses of (xlat_thread_inst_ctx_t) which don't set the required fields. Additional arguments should be added to this macro whenever the xlat_thread_inst_ctx_t fields are altered.

Parameters
[in]_instInstance data of the module being called.
[in]_threadInstance data of the thread being called.
[in]_exxlat expression to be evaluated by the instantiation function.
[in]_mctxThe module_inst_ctx_t from the parent module (if any).
[in]_elTo register any I/O handlers or timers against.
[in]_uctxpassed when the instantiation function was registered.

Definition at line 115 of file xlat_ctx.h.

Typedef Documentation

◆ xlat_exp_head_t

Definition at line 1 of file xlat_ctx.h.

◆ xlat_exp_t

typedef struct xlat_exp_s xlat_exp_t

Definition at line 1 of file xlat_ctx.h.