Diff for /libaitio/inc/aitio.h between versions 1.38.10.9 and 1.40.6.2

version 1.38.10.9, 2013/12/08 20:43:22 version 1.40.6.2, 2014/11/17 22:33:14
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, 2013Copyright 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 176  int io_progVacuum(prog_t * __restrict prg, unsigned in Line 185  int io_progVacuum(prog_t * __restrict prg, unsigned in
  */   */
 int io_progCloseAt(prog_t * __restrict prg, unsigned int idx);  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 195  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 253  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 603  int io_dumbFile(const char *csFile, int mode, off_t si Line 634  int io_dumbFile(const char *csFile, int mode, off_t si
   
   
 /*  /*
  * io_get1stiface() - Get first interface of host  
  *  
  * @szIface = interface string buffer  
  * @iflen = size of interface buffer  
  * return: -1 error or 0 ok  
  */  
 int io_get1stiface(char *szIface, int iflen);  
 /*  
  * io_getmaciface() - Get MAC address from interface name  
  *  
  * @csIface = interface name  
  * @ea = ethernet address  
  * return: -1 error, 0 ok or 1 not found  
  */  
 int io_getmaciface(const char *csIface, ether_addr_t * __restrict ea);  
 /*  
  * io_etherOpen() - Open BPF interface to device   * io_etherOpen() - Open BPF interface to device
  *   *
  * @csIface = interface name   * @csIface = interface name
Line 629  int io_getmaciface(const char *csIface, ether_addr_t * Line 644  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
  *   *

Removed from v.1.38.10.9  
changed lines
  Added in v.1.40.6.2


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>