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

           Branch data     Line data    Source code
       1                 :            : #ifndef __CR_PROC_PARSE_H__
       2                 :            : #define __CR_PROC_PARSE_H__
       3                 :            : 
       4                 :            : #include <sys/types.h>
       5                 :            : #include "types.h"
       6                 :            : #include "image.h"
       7                 :            : #include "list.h"
       8                 :            : 
       9                 :            : #include "../protobuf/eventfd.pb-c.h"
      10                 :            : #include "../protobuf/eventpoll.pb-c.h"
      11                 :            : #include "../protobuf/signalfd.pb-c.h"
      12                 :            : #include "../protobuf/inotify.pb-c.h"
      13                 :            : 
      14                 :            : #define PROC_TASK_COMM_LEN      32
      15                 :            : #define PROC_TASK_COMM_LEN_FMT  "(%31s"
      16                 :            : 
      17                 :            : struct proc_pid_stat_small {
      18                 :            :         int                     pid;
      19                 :            :         char                    comm[PROC_TASK_COMM_LEN];
      20                 :            :         char                    state;
      21                 :            :         int                     ppid;
      22                 :            :         int                     pgid;
      23                 :            :         int                     sid;
      24                 :            : };
      25                 :            : 
      26                 :            : struct proc_pid_stat {
      27                 :            :         int                     pid;
      28                 :            :         char                    comm[PROC_TASK_COMM_LEN];
      29                 :            :         char                    state;
      30                 :            :         int                     ppid;
      31                 :            :         int                     pgid;
      32                 :            :         int                     sid;
      33                 :            :         int                     tty_nr;
      34                 :            :         int                     tty_pgrp;
      35                 :            :         unsigned int            flags;
      36                 :            :         unsigned long           min_flt;
      37                 :            :         unsigned long           cmin_flt;
      38                 :            :         unsigned long           maj_flt;
      39                 :            :         unsigned long           cmaj_flt;
      40                 :            :         unsigned long           utime;
      41                 :            :         unsigned long           stime;
      42                 :            :         long                    cutime;
      43                 :            :         long                    cstime;
      44                 :            :         long                    priority;
      45                 :            :         long                    nice;
      46                 :            :         int                     num_threads;
      47                 :            :         int                     zero0;
      48                 :            :         unsigned long long      start_time;
      49                 :            :         unsigned long           vsize;
      50                 :            :         long                    mm_rss;
      51                 :            :         unsigned long           rsslim;
      52                 :            :         unsigned long           start_code;
      53                 :            :         unsigned long           end_code;
      54                 :            :         unsigned long           start_stack;
      55                 :            :         unsigned long           esp;
      56                 :            :         unsigned long           eip;
      57                 :            :         unsigned long           sig_pending;
      58                 :            :         unsigned long           sig_blocked;
      59                 :            :         unsigned long           sig_ignored;
      60                 :            :         unsigned long           sig_handled;
      61                 :            :         unsigned long           wchan;
      62                 :            :         unsigned long           zero1;
      63                 :            :         unsigned long           zero2;
      64                 :            :         int                     exit_signal;
      65                 :            :         int                     task_cpu;
      66                 :            :         unsigned int            rt_priority;
      67                 :            :         unsigned int            policy;
      68                 :            :         unsigned long long      delayacct_blkio_ticks;
      69                 :            :         unsigned long           gtime;
      70                 :            :         long                    cgtime;
      71                 :            :         unsigned long           start_data;
      72                 :            :         unsigned long           end_data;
      73                 :            :         unsigned long           start_brk;
      74                 :            :         unsigned long           arg_start;
      75                 :            :         unsigned long           arg_end;
      76                 :            :         unsigned long           env_start;
      77                 :            :         unsigned long           env_end;
      78                 :            :         int                     exit_code;
      79                 :            : };
      80                 :            : 
      81                 :            : #define PROC_CAP_SIZE   2
      82                 :            : 
      83                 :            : struct proc_status_creds {
      84                 :            :         unsigned int uids[4];
      85                 :            :         unsigned int gids[4];
      86                 :            : 
      87                 :            :         uint32_t cap_inh[PROC_CAP_SIZE];
      88                 :            :         uint32_t cap_prm[PROC_CAP_SIZE];
      89                 :            :         uint32_t cap_eff[PROC_CAP_SIZE];
      90                 :            :         uint32_t cap_bnd[PROC_CAP_SIZE];
      91                 :            : };
      92                 :            : 
      93                 :            : struct mount_info;
      94                 :            : struct fstype {
      95                 :            :         char *name;
      96                 :            :         int (*dump)(struct mount_info *pm);
      97                 :            :         int (*restore)(struct mount_info *pm);
      98                 :            : };
      99                 :            : 
     100                 :            : struct mount_info {
     101                 :            :         int             mnt_id;
     102                 :            :         int             parent_mnt_id;
     103                 :            :         unsigned int    s_dev;
     104                 :            :         char            *root;
     105                 :            :         char            *mountpoint;
     106                 :            :         unsigned        flags;
     107                 :            :         int             master_id;
     108                 :            :         int             shared_id;
     109                 :            :         struct fstype   *fstype;
     110                 :            :         char            *source;
     111                 :            :         char            *options;
     112                 :            :         struct mount_info *next;
     113                 :            : 
     114                 :            :         /* tree linkage */
     115                 :            :         struct mount_info *parent;
     116                 :            :         struct list_head children;
     117                 :            :         struct list_head siblings;
     118                 :            : };
     119                 :            : 
     120                 :            : static inline void mnt_entry_init(struct mount_info *pm)
     121                 :            : {
     122                 :       6123 :         pm->parent = NULL;
     123                 :       6123 :         INIT_LIST_HEAD(&pm->children);
     124                 :            : }
     125                 :            : 
     126                 :            : extern struct mount_info *parse_mountinfo(pid_t pid);
     127                 :            : extern int parse_pid_stat(pid_t pid, struct proc_pid_stat *s);
     128                 :            : extern int parse_pid_stat_small(pid_t pid, struct proc_pid_stat_small *s);
     129                 :            : extern int parse_smaps(pid_t pid, struct list_head *vma_area_list, bool use_map_files);
     130                 :            : extern int parse_pid_status(pid_t pid, struct proc_status_creds *);
     131                 :            : 
     132                 :            : union fdinfo_entries {
     133                 :            :         EventfdFileEntry efd;
     134                 :            :         EventpollTfdEntry epl;
     135                 :            :         SignalfdEntry sfd;
     136                 :            :         InotifyWdEntry ify;
     137                 :            : };
     138                 :            : 
     139                 :            : extern int parse_fdinfo(int fd, int type,
     140                 :            :                 int (*cb)(union fdinfo_entries *e, void *arg), void *arg);
     141                 :            : extern int parse_cpuinfo_features(void);
     142                 :            : 
     143                 :            : #endif /* __CR_PROC_PARSE_H__ */

Generated by: LCOV version 1.9