FreeBSD kernel netgraph code
ng_async.c File Reference
#include <sys/param.h>
#include <sys/systm.h>
#include <sys/kernel.h>
#include <sys/mbuf.h>
#include <sys/malloc.h>
#include <sys/errno.h>
#include <netgraph/ng_message.h>
#include <netgraph/netgraph.h>
#include <netgraph/ng_async.h>
#include <netgraph/ng_parse.h>
#include <net/ppp_defs.h>
Include dependency graph for ng_async.c:

Go to the source code of this file.

Data Structures

struct  ng_async_private
 

Macros

#define M_NETGRAPH_ASYNC   M_NETGRAPH
 
#define MODE_HUNT   0
 
#define MODE_NORMAL   1
 
#define MODE_ESC   2
 
#define ASYNC_BUF_SIZE(smru)   (2 * (smru) + 10)
 
#define SYNC_BUF_SIZE(amru)   ((amru) + 10)
 
#define ERROUT(x)   do { error = (x); goto done; } while (0)
 
#define ADD_BYTE(x)   nga_async_add(sc, &fcs, accm, &alen, (x))
 

Typedefs

typedef struct ng_async_privatesc_p
 

Functions

static int nga_rcv_sync (const sc_p sc, item_p item)
 
static int nga_rcv_async (const sc_p sc, item_p item)
 
 NETGRAPH_INIT (async, &typestruct)
 
static int nga_constructor (node_p node)
 
static int nga_newhook (node_p node, hook_p hook, const char *name)
 
static int nga_rcvdata (hook_p hook, item_p item)
 
static int nga_rcvmsg (node_p node, item_p item, hook_p lasthook)
 
static int nga_shutdown (node_p node)
 
static int nga_disconnect (hook_p hook)
 
static __inline void nga_async_add (const sc_p sc, u_int16_t *fcs, u_int32_t accm, int *len, u_char x)
 

Variables

static ng_constructor_t nga_constructor
 
static ng_rcvdata_t nga_rcvdata
 
static ng_rcvmsg_t nga_rcvmsg
 
static ng_shutdown_t nga_shutdown
 
static ng_newhook_t nga_newhook
 
static ng_disconnect_t nga_disconnect
 
static const struct ng_parse_struct_field nga_config_type_fields [] = NG_ASYNC_CONFIG_TYPE_INFO
 
static const struct ng_parse_type nga_config_type
 
static const struct ng_parse_struct_field nga_stats_type_fields [] = NG_ASYNC_STATS_TYPE_INFO
 
static const struct ng_parse_type nga_stats_type
 
static const struct ng_cmdlist nga_cmdlist []
 
static struct ng_type typestruct
 
static const u_int16_t fcstab []
 

Macro Definition Documentation

◆ ADD_BYTE

#define ADD_BYTE (   x)    nga_async_add(sc, &fcs, accm, &alen, (x))

◆ ASYNC_BUF_SIZE

#define ASYNC_BUF_SIZE (   smru)    (2 * (smru) + 10)

Definition at line 91 of file ng_async.c.

◆ ERROUT

#define ERROUT (   x)    do { error = (x); goto done; } while (0)

Definition at line 93 of file ng_async.c.

◆ M_NETGRAPH_ASYNC

#define M_NETGRAPH_ASYNC   M_NETGRAPH

Definition at line 66 of file ng_async.c.

◆ MODE_ESC

#define MODE_ESC   2

Definition at line 72 of file ng_async.c.

◆ MODE_HUNT

#define MODE_HUNT   0

Definition at line 70 of file ng_async.c.

◆ MODE_NORMAL

#define MODE_NORMAL   1

Definition at line 71 of file ng_async.c.

◆ SYNC_BUF_SIZE

#define SYNC_BUF_SIZE (   amru)    ((amru) + 10)

Definition at line 92 of file ng_async.c.

Typedef Documentation

◆ sc_p

typedef struct ng_async_private* sc_p

Definition at line 88 of file ng_async.c.

Function Documentation

◆ NETGRAPH_INIT()

NETGRAPH_INIT ( async  ,
typestruct 
)

◆ nga_async_add()

static __inline void nga_async_add ( const sc_p  sc,
u_int16_t *  fcs,
u_int32_t  accm,
int *  len,
u_char  x 
)
static

Definition at line 384 of file ng_async.c.

References ng_async_private::abuf, ng_async_cfg::accm, and fcs.

◆ nga_constructor()

◆ nga_disconnect()

static int nga_disconnect ( hook_p  hook)
static

◆ nga_newhook()

static int nga_newhook ( node_p  node,
hook_p  hook,
const char *  name 
)
static

◆ nga_rcv_async()

◆ nga_rcv_sync()

◆ nga_rcvdata()

static int nga_rcvdata ( hook_p  hook,
item_p  item 
)
static

Definition at line 240 of file ng_async.c.

References ng_async_private::async, NG_HOOK_NODE, NG_NODE_PRIVATE, nga_rcv_async(), nga_rcv_sync(), and ng_async_private::sync.

Here is the call graph for this function:

◆ nga_rcvmsg()

◆ nga_shutdown()

static int nga_shutdown ( node_p  node)
static

Variable Documentation

◆ fcstab

static const u_int16_t fcstab
static

Definition at line 171 of file ng_async.c.

◆ nga_cmdlist

const struct ng_cmdlist nga_cmdlist[]
static

Definition at line 124 of file ng_async.c.

◆ nga_config_type

const struct ng_parse_type nga_config_type
static
Initial value:
= {
}
static const struct ng_parse_struct_field nga_config_type_fields[]
Definition: ng_async.c:109
const struct ng_parse_type ng_parse_struct_type
Definition: ng_parse.c:222

Definition at line 110 of file ng_async.c.

◆ nga_config_type_fields

const struct ng_parse_struct_field nga_config_type_fields[] = NG_ASYNC_CONFIG_TYPE_INFO
static

Definition at line 108 of file ng_async.c.

◆ nga_constructor

ng_constructor_t nga_constructor
static

Definition at line 96 of file ng_async.c.

◆ nga_disconnect

ng_disconnect_t nga_disconnect
static

Definition at line 101 of file ng_async.c.

◆ nga_newhook

ng_newhook_t nga_newhook
static

Definition at line 100 of file ng_async.c.

◆ nga_rcvdata

ng_rcvdata_t nga_rcvdata
static

Definition at line 97 of file ng_async.c.

◆ nga_rcvmsg

ng_rcvmsg_t nga_rcvmsg
static

Definition at line 98 of file ng_async.c.

◆ nga_shutdown

ng_shutdown_t nga_shutdown
static

Definition at line 99 of file ng_async.c.

◆ nga_stats_type

const struct ng_parse_type nga_stats_type
static
Initial value:
= {
}
static const struct ng_parse_struct_field nga_stats_type_fields[]
Definition: ng_async.c:117

Definition at line 118 of file ng_async.c.

◆ nga_stats_type_fields

const struct ng_parse_struct_field nga_stats_type_fields[] = NG_ASYNC_STATS_TYPE_INFO
static

Definition at line 116 of file ng_async.c.

◆ typestruct

struct ng_type typestruct
static
Initial value:
= {
.version = NG_ABI_VERSION,
.constructor = nga_constructor,
.rcvmsg = nga_rcvmsg,
.shutdown = nga_shutdown,
.newhook = nga_newhook,
.rcvdata = nga_rcvdata,
.disconnect = nga_disconnect,
.cmdlist = nga_cmdlist
}
#define NG_ABI_VERSION
Definition: netgraph.h:77
static ng_rcvdata_t nga_rcvdata
Definition: ng_async.c:97
static ng_rcvmsg_t nga_rcvmsg
Definition: ng_async.c:98
static const struct ng_cmdlist nga_cmdlist[]
Definition: ng_async.c:124
static ng_shutdown_t nga_shutdown
Definition: ng_async.c:99
static ng_disconnect_t nga_disconnect
Definition: ng_async.c:101
static ng_newhook_t nga_newhook
Definition: ng_async.c:100
static ng_constructor_t nga_constructor
Definition: ng_async.c:96
#define NG_ASYNC_NODE_TYPE
Definition: ng_async.h:48

Definition at line 157 of file ng_async.c.