version 1.38.10.8, 2013/12/06 01:03:03
|
version 1.40, 2014/02/08 22:06:16
|
Line 12 terms:
|
Line 12 terms:
|
All of the documentation and software included in the ELWIX and AITNET |
All of the documentation and software included in the ELWIX and AITNET |
Releases is copyrighted by ELWIX - Sofia/Bulgaria <info@elwix.org> |
Releases is copyrighted by ELWIX - Sofia/Bulgaria <info@elwix.org> |
|
|
Copyright 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 | Copyright 2004 - 2014 |
by Michael Pounov <misho@elwix.org>. All rights reserved. |
by Michael Pounov <misho@elwix.org>. All rights reserved. |
|
|
Redistribution and use in source and binary forms, with or without |
Redistribution and use in source and binary forms, with or without |
Line 78 SUCH DAMAGE.
|
Line 78 SUCH DAMAGE.
|
#define IO_ETHER_FILTER_WRITE 2 |
#define IO_ETHER_FILTER_WRITE 2 |
|
|
|
|
|
typedef struct { |
|
unsigned int prog_inin; /* init progs */ |
|
unsigned int prog_maxn; /* max progs */ |
|
unsigned int prog_cnum; /* current progs */ |
|
char prog_name[PATH_MAX]; |
|
|
|
pthread_mutex_t prog_mtx; |
|
array_t *prog_fds; |
|
unsigned int *prog_used; |
|
} prog_t; |
|
|
typedef struct tagCliSock sock_cli_t; |
typedef struct tagCliSock sock_cli_t; |
typedef void *(*sock_cb_t)(sock_cli_t*); |
typedef void *(*sock_cb_t)(sock_cli_t*); |
struct tagCliSock { |
struct tagCliSock { |
void *cli_parent; |
void *cli_parent; |
int cli_fd; |
int cli_fd; |
int cli_pty; | intptr_t cli_pty; |
sockaddr_t cli_addr; |
sockaddr_t cli_addr; |
char cli_name[64]; |
char cli_name[64]; |
char cli_cmdline[PATH_MAX]; |
char cli_cmdline[PATH_MAX]; |
Line 107 typedef struct {
|
Line 118 typedef struct {
|
sockaddr_t sock_peer; |
sockaddr_t sock_peer; |
|
|
ait_val_t sock_buf; |
ait_val_t sock_buf; |
|
prog_t *sock_prog; |
|
|
volatile intptr_t sock_kill; |
volatile intptr_t sock_kill; |
sched_root_task_t *sock_root; |
sched_root_task_t *sock_root; |
Line 115 typedef struct {
|
Line 127 typedef struct {
|
TAILQ_HEAD(, tagCliSock) sock_cli; |
TAILQ_HEAD(, tagCliSock) sock_cli; |
} sock_t; |
} sock_t; |
|
|
typedef struct { |
|
unsigned int prog_inin; /* init progs */ |
|
unsigned int prog_maxn; /* max progs */ |
|
unsigned int prog_cnum; /* current progs */ |
|
char prog_name[PATH_MAX]; |
|
|
|
pthread_mutex_t prog_mtx; |
|
array_t *prog_fds; |
|
unsigned int *prog_used; |
|
} prog_t; |
|
|
|
|
|
// io_GetErrno() Get error code of last operation |
// io_GetErrno() Get error code of last operation |
int io_GetErrno(); |
int io_GetErrno(); |
// io_GetError() Get error text of last operation |
// io_GetError() Get error text of last operation |
Line 148 prog_t *io_progInit(const char *progName,
|
Line 149 prog_t *io_progInit(const char *progName,
|
* |
* |
* @prg = program pool |
* @prg = program pool |
* @execNum = execute program(s) (0 max) |
* @execNum = execute program(s) (0 max) |
* return: 0 error, >0 executed programs and abs(<0) executed programs with logged error | * return: -1 error, >0 executed programs |
*/ |
*/ |
int io_progOpen(prog_t * __restrict prg, unsigned int execNum); |
int io_progOpen(prog_t * __restrict prg, unsigned int execNum); |
/* |
/* |
|
* io_progOpen2() - Start program from pool on first unused slot |
|
* |
|
* @prg = program pool |
|
* return: -1 error, >-1 reside at slot |
|
*/ |
|
int io_progOpen2(prog_t * __restrict prg); |
|
/* |
* io_progGrow() - Execute to number of programs in pool |
* io_progGrow() - Execute to number of programs in pool |
* |
* |
* @prg = program pool |
* @prg = program pool |
* @toNum = execute to number of programs (0 max) |
* @toNum = execute to number of programs (0 max) |
* return: 0 error, >0 executed programs and abs(<0) executed programs with logged error | * return: 0 error or nothing to do, |
| * >0 executed programs and abs(<0) executed programs with logged error |
*/ |
*/ |
int io_progGrow(prog_t * __restrict prg, unsigned int toNum); |
int io_progGrow(prog_t * __restrict prg, unsigned int toNum); |
/* |
/* |
Line 168 int io_progGrow(prog_t * __restrict prg, unsigned int
|
Line 177 int io_progGrow(prog_t * __restrict prg, unsigned int
|
*/ |
*/ |
int io_progVacuum(prog_t * __restrict prg, unsigned int toNum); |
int io_progVacuum(prog_t * __restrict prg, unsigned int toNum); |
/* |
/* |
|
* io_progCloseAt() - Close program at pool of certain position |
|
* |
|
* @prg = program pool |
|
* @idx = index at pool |
|
* return: 0 error or !=0 closed program |
|
*/ |
|
int io_progCloseAt(prog_t * __restrict prg, unsigned int idx); |
|
/* |
|
* io_progCloseOf() - Close program at pool with certain handle |
|
* |
|
* @prg = program pool |
|
* @h = handle of program |
|
* return: 0 error, >0 closed programs |
|
*/ |
|
#ifdef POPEN_STREAM |
|
int io_progCloseOf(prog_t * __restrict prg, FILE *h); |
|
#else |
|
int io_progCloseOf(prog_t * __restrict prg, int h); |
|
#endif |
|
/* |
* io_progClose() - Close all programs in pool |
* io_progClose() - Close all programs in pool |
* |
* |
* @prg = program pool |
* @prg = program pool |
Line 187 void io_progDestroy(prog_t ** __restrict pprg);
|
Line 216 void io_progDestroy(prog_t ** __restrict pprg);
|
* io_progCheck() - Check exit status of program pool |
* io_progCheck() - Check exit status of program pool |
* |
* |
* @prg = program pool |
* @prg = program pool |
|
* @re = resurrect program to init number |
* return: -1 error or >-1 exited programs |
* return: -1 error or >-1 exited programs |
*/ |
*/ |
int io_progCheck(prog_t * __restrict prg); | int io_progCheck(prog_t * __restrict prg, int re); |
|
|
/* |
/* |
* io_progAttach() - Attach to open program |
* io_progAttach() - Attach to open program |
* |
* |
* @prg = program pool |
* @prg = program pool |
|
* @newOne = Execute new one program after attach |
* return: NULL error or !=NULL attached program handle |
* return: NULL error or !=NULL attached program handle |
*/ |
*/ |
#ifdef POPEN_STREAM |
#ifdef POPEN_STREAM |
FILE *io_progAttach(prog_t * __restrict prg); | FILE *io_progAttach(prog_t * __restrict prg, int newOne); |
#else |
#else |
int io_progAttach(prog_t * __restrict prg); | int io_progAttach(prog_t * __restrict prg, int newOne); |
#endif |
#endif |
/* |
/* |
* io_progDetach() - Detch from open program |
* io_progDetach() - Detch from open program |
Line 245 void ioCloseSocket(sock_t ** __restrict s);
|
Line 276 void ioCloseSocket(sock_t ** __restrict s);
|
*/ |
*/ |
int ioCloseClient(sock_cli_t * __restrict c); |
int ioCloseClient(sock_cli_t * __restrict c); |
/* |
/* |
|
* ioSetupProg2Socket() - Setup program pool to socket server |
|
* |
|
* @s = Socket |
|
* @p = Program pool |
|
* return: -1 error or 0 ok |
|
*/ |
|
int ioSetupProg2Socket(sock_t * __restrict s, prog_t * __restrict p); |
|
/* |
* ioUpSocket() - Setup socket for use |
* ioUpSocket() - Setup socket for use |
* |
* |
* @s = Socket |
* @s = Socket |
Line 621 int io_getmaciface(const char *csIface, ether_addr_t *
|
Line 660 int io_getmaciface(const char *csIface, ether_addr_t *
|
* @zcbuf = zero copy buffer, if BPF supports it and isn't NULL |
* @zcbuf = zero copy buffer, if BPF supports it and isn't NULL |
* return: -1 error or >-1 bpf handle |
* return: -1 error or >-1 bpf handle |
*/ |
*/ |
int io_etherOpen(const char *csIface, int flags, int whdr, int wdlt, | int io_etherOpen(const char *csIface, int flags, unsigned int whdr, |
unsigned int *buflen, void **zcbuf); | unsigned int wdlt, unsigned int *buflen, void **zcbuf); |
/* |
/* |
* io_etherClose() - Close BPF interface |
* io_etherClose() - Close BPF interface |
* |
* |