00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef PROBE_H
00023 #define PROBE_H
00024
00025 #include <sys/types.h>
00026 #include <unistd.h>
00027 #include <stdint.h>
00028 #include <stddef.h>
00029 #include <stdarg.h>
00030 #include <pthread.h>
00031 #include <seap.h>
00032 #include "ncache.h"
00033 #include "rcache.h"
00034 #include "probe-common.h"
00035
00040 struct id_desc_t {
00041 #ifndef HAVE_ATOMIC_FUNCTIONS
00042 pthread_mutex_t item_id_ctr_lock;
00043 #endif
00044 int item_id_ctr;
00045 };
00046
00047 typedef struct {
00048 int option;
00049 int (*handler)(int, va_list);
00050 } probe_option_t;
00051
00052 typedef struct {
00053 pthread_rwlock_t rwlock;
00054 uint32_t flags;
00055
00056 char *name;
00057 pid_t pid;
00058
00059 void *probe_arg;
00060 int probe_exitcode;
00061
00062 SEAP_CTX_t *SEAP_ctx;
00063 int sd;
00065 pthread_t th_input;
00066 pthread_t th_signal;
00067
00068 rbt_t *workers;
00069 uint32_t max_threads;
00070 uint32_t max_chdepth;
00071
00072 probe_rcache_t *rcache;
00073 probe_ncache_t *ncache;
00075 probe_option_t *option;
00076 size_t optcnt;
00077 } probe_t;
00078
00079 #endif