LCOV - code coverage report
Current view: top level - crtools/include - sockets.h (source / functions) Hit Total Coverage
Test: crtools.info Lines: 1 1 100.0 %
Date: 2012-12-28 Functions: 0 0 -
Branches: 0 0 -

           Branch data     Line data    Source code
       1                 :            : #ifndef __CR_SOCKETS_H__
       2                 :            : #define __CR_SOCKETS_H__
       3                 :            : 
       4                 :            : #include <sys/types.h>
       5                 :            : #include <sys/socket.h>
       6                 :            : #include <unistd.h>
       7                 :            : #include <stdbool.h>
       8                 :            : 
       9                 :            : #include "types.h"
      10                 :            : 
      11                 :            : #include "protobuf.h"
      12                 :            : #include "../protobuf/sk-opts.pb-c.h"
      13                 :            : 
      14                 :            : struct fdinfo_list_entry;
      15                 :            : struct sk_opts_entry;
      16                 :            : struct cr_options;
      17                 :            : struct file_desc;
      18                 :            : struct fd_parms;
      19                 :            : struct cr_fdset;
      20                 :            : struct nlmsghdr;
      21                 :            : 
      22                 :            : struct socket_desc {
      23                 :            :         unsigned int            family;
      24                 :            :         unsigned int            ino;
      25                 :            :         struct socket_desc      *next;
      26                 :            :         int                     already_dumped;
      27                 :            : };
      28                 :            : 
      29                 :            : extern int dump_socket(struct fd_parms *p, int lfd, const struct cr_fdset *cr_fdset);
      30                 :            : extern int dump_socket_opts(int sk, SkOptsEntry *soe);
      31                 :            : extern int restore_socket_opts(int sk, SkOptsEntry *soe);
      32                 :            : extern void release_skopts(SkOptsEntry *);
      33                 :            : extern int restore_prepare_socket(int sk);
      34                 :            : 
      35                 :            : extern int sk_collect_one(int ino, int family, struct socket_desc *d);
      36                 :            : extern int collect_sockets(int pid);
      37                 :            : extern int collect_inet_sockets(void);
      38                 :            : extern int collect_unix_sockets(void);
      39                 :            : extern int fix_external_unix_sockets(void);
      40                 :            : extern int resolve_unix_peers(void);
      41                 :            : 
      42                 :            : extern void show_unixsk(int fd, struct cr_options *o);
      43                 :            : extern void show_inetsk(int fd, struct cr_options *o);
      44                 :            : extern void show_sk_queues(int fd, struct cr_options *o);
      45                 :            : 
      46                 :            : extern char *skfamily2s(u32 f);
      47                 :            : extern char *sktype2s(u32 t);
      48                 :            : extern char *skproto2s(u32 p);
      49                 :            : extern char *skstate2s(u32 state);
      50                 :            : 
      51                 :            : extern struct socket_desc *lookup_socket(int ino, int family);
      52                 :            : 
      53                 :            : extern int dump_one_inet(struct fd_parms *p, int lfd, const struct cr_fdset *set);
      54                 :            : extern int dump_one_inet6(struct fd_parms *p, int lfd, const struct cr_fdset *set);
      55                 :            : extern int dump_one_unix(struct fd_parms *p, int lfd, const struct cr_fdset *set);
      56                 :            : 
      57                 :            : extern int inet_collect_one(struct nlmsghdr *h, int family, int type, int proto);
      58                 :            : extern int unix_receive_one(struct nlmsghdr *h, void *);
      59                 :            : 
      60                 :            : extern int do_dump_opt(int sk, int level, int name, void *val, int len);
      61                 :            : #define dump_opt(s, l, n, f)    do_dump_opt(s, l, n, f, sizeof(*f))
      62                 :            : extern int do_restore_opt(int sk, int level, int name, void *val, int len);
      63                 :            : #define restore_opt(s, l, n, f) do_restore_opt(s, l, n, f, sizeof(*f))
      64                 :            : 
      65                 :            : #define sk_encode_shutdown(img, mask) do {                      \
      66                 :            :                 /*                                              \
      67                 :            :                  * protobuf SK_SHUTDOWN__ bits match those      \
      68                 :            :                  * reported by kernel                           \
      69                 :            :                  */                                             \
      70                 :            :                 (img)->shutdown = mask;                              \
      71                 :            :                 if ((img)->shutdown != SK_SHUTDOWN__NONE)    \
      72                 :            :                         (img)->has_shutdown = true;          \
      73                 :            :         } while (0)
      74                 :            : 
      75                 :            : static inline int sk_decode_shutdown(int val)
      76                 :            : {
      77                 :            :         static const int hows[] = {-1, SHUT_RD, SHUT_WR, SHUT_RDWR};
      78                 :         10 :         return hows[val];
      79                 :            : }
      80                 :            : 
      81                 :            : #endif /* __CR_SOCKETS_H__ */

Generated by: LCOV version 1.9