rmonitor_types.h

00001 #if defined(CCTOOLS_OPSYS_DARWIN) || defined(CCTOOLS_OPSYS_FREEBSD)
00002   #include <sys/param.h>
00003   #include <sys/mount.h>
00004   #include <sys/resource.h>
00005 #else
00006   #include  <sys/vfs.h>
00007 #endif
00008 
00009 #include <sys/types.h>
00010 #include <sys/stat.h>
00011 
00012 #ifdef HAS_SYS_STATFS_H
00013 #include <sys/statfs.h>
00014 #endif
00015 
00016 #ifdef HAS_SYS_STATVFS_H
00017 #include <sys/statvfs.h>
00018 #endif
00019 
00020 #include "path_disk_size_info.h"
00021 
00022 #include "int_sizes.h"
00023 
00024 #ifndef RMONITOR_TYPES_H
00025 #define RMONITOR_TYPES_H
00026 
00027 #define ONE_MEGABYTE 1048576  /* this many bytes */
00028 #define ONE_SECOND   1000000  /* this many usecs */
00029 
00030 #define MAX_FILE_DESCRIPTOR_COUNT 500 /* maximum depth of file tree walking */
00031 
00032 //time in usecs, no seconds:
00033 struct rmonitor_cpu_time_info
00034 {
00035         uint64_t accumulated;
00036         uint64_t delta;
00037 };
00038 
00039 struct rmonitor_mem_info
00040 {
00041         uint64_t virtual;
00042         uint64_t referenced;
00043         uint64_t resident;
00044         uint64_t swap;
00045 
00046         /* resident values, itemized. */
00047         uint64_t private;
00048         uint64_t shared;
00049 
00050         char    *map_name;
00051         uint64_t map_start;
00052         uint64_t map_end;
00053 
00054         uint64_t text;
00055         uint64_t data;
00056 };
00057 
00058 struct rmonitor_io_info
00059 {
00060         uint64_t chars_read;
00061         uint64_t chars_written;
00062 
00063         uint64_t bytes_faulted;
00064 
00065         uint64_t delta_chars_read;
00066         uint64_t delta_chars_written;
00067 
00068         uint64_t delta_bytes_faulted;
00069 };
00070 
00071 struct rmonitor_file_info
00072 {
00073         uint64_t n_references;
00074         uint64_t n_opens;
00075         uint64_t n_closes;
00076         uint64_t n_reads;
00077         uint64_t n_writes;
00078         int      is_output;
00079         off_t size_on_open;            /* in bytes */
00080         off_t size_on_close;           /* in bytes */
00081         dev_t device;
00082 };
00083 
00084 
00085 struct rmonitor_wdir_info
00086 {
00087         char     *path;
00088         int      files;
00089         off_t    byte_count;
00090 
00091         struct path_disk_size_info *state;
00092         struct rmonitor_filesys_info *fs;
00093 };
00094 
00095 struct rmonitor_filesys_info
00096 {
00097         int             id;
00098         char           *path;            // Sample path on the filesystem.
00099         struct statfs   disk;            // Current result of statfs call minus disk_initial.
00100         struct statfs   disk_initial;    // Result of the first time we call statfs.
00101 
00102         int initial_loaded_flag;         // Flag to indicate whether statfs has been called
00103                                                                          // already on this fs (that is, whether disk_initial
00104                                                                          // has a valid value).
00105 };
00106 
00107 struct rmonitor_process_info
00108 {
00109         pid_t       pid;
00110         const char *cmd;
00111         int         running;
00112         int         waiting;
00113 
00114         struct rmonitor_mem_info      mem;
00115         struct rmonitor_cpu_time_info cpu;
00116         struct rmonitor_io_info       io;
00117         struct rmonitor_wdir_info    *wd;
00118 };
00119 
00120 #endif

Generated on 17 Dec 2015 for cctools by  doxygen 1.6.1