/* IBM_PROLOG_BEGIN_TAG */ /* This is an automatically generated prolog. */ /* */ /* bos72Q src/bos/usr/include/trace.h 1.1.1.1 */ /* */ /* Licensed Materials - Property of IBM */ /* */ /* Restricted Materials of IBM */ /* */ /* COPYRIGHT International Business Machines Corp. 2006,2019 */ /* All Rights Reserved */ /* */ /* US Government Users Restricted Rights - Use, duplication or */ /* disclosure restricted by GSA ADP Schedule Contract with IBM Corp. */ /* */ /* IBM_PROLOG_END_TAG */ /* @(#)02 1.1.1.1 src/bos/usr/include/trace.h, posixtrace, bos72Q, q2019_13A4 2/5/19 03:07:14 */ #ifndef _H_TRACE #define _H_TRACE #include #include #include #ifdef __cplusplus extern "C" { #endif /* * overflow policy */ #define POSIX_TRACE_LOOP 0 #define POSIX_TRACE_UNTIL_FULL 1 #define POSIX_TRACE_FLUSH 2 #define POSIX_TRACE_APPEND 3 /* * inheritance */ #define POSIX_TRACE_CLOSE_FOR_CHILD 0 #define POSIX_TRACE_INHERITED 1 /* * reserved event IDs */ #define POSIX_TRACE_OVERFLOW 0 #define POSIX_TRACE_RESUME 1 #define POSIX_TRACE_START 2 #define POSIX_TRACE_STOP 3 #define POSIX_TRACE_FLUSH_START 4 #define POSIX_TRACE_FLUSH_STOP 5 #define POSIX_TRACE_FILTER 6 #define POSIX_TRACE_ERROR 7 #define POSIX_TRACE_UNNAMED_USEREVENT 8 /* event set ops */ #define POSIX_TRACE_SET_EVENTSET 0 #define POSIX_TRACE_ADD_EVENTSET 1 #define POSIX_TRACE_SUB_EVENTSET 2 /* event sets */ #define POSIX_TRACE_SYSTEM_EVENTS 0 #define POSIX_TRACE_WOPID_EVENTS 1 #define POSIX_TRACE_ALL_EVENTS 2 struct posix_trace_event_info { trace_event_id_t posix_event_id; /* event ID */ pid_t posix_pid; /* pid that generated the evt */ void *posix_prog_address; #define POSIX_TRACE_NOT_TRUNCATED 0 #define POSIX_TRACE_TRUNCATED_RECORD 1 #define POSIX_TRACE_TRUNCATED_READ 2 int posix_truncation_status; struct timespec posix_timestamp; pthread_t posix_thread_id; }; struct posix_trace_status_info { #define POSIX_TRACE_RUNNING 1 #define POSIX_TRACE_SUSPENDED 0 int posix_stream_status; #define POSIX_TRACE_FULL 1 #define POSIX_TRACE_NOT_FULL 0 int posix_stream_full_status; #define POSIX_TRACE_OVERRUN 1 #define POSIX_TRACE_NO_OVERRUN 0 int posix_stream_overrun_status; /* Trace Log option */ #define POSIX_TRACE_FLUSHING 1 #define POSIX_TRACE_NOT_FLUSHING 0 int posix_stream_flush_status; /* POSIX_TRACE_FLUSHING or POSIX_TRACE_NOT_FLUSHING */ int posix_stream_flush_error; /* 0 or value of the first error that occurred */ int posix_log_overrun_status; /* POSIX_TRACE_OVERRUN or POSIX_TRACE_NO_OVERRUN */ int posix_log_full_status; /* POSIX_TRACE_FULL or POSIX_TRACE_NOT_FULL */ }; extern int posix_trace_attr_init(trace_attr_t *); extern int posix_trace_attr_destroy(trace_attr_t *); extern int posix_trace_attr_setinherited(trace_attr_t *, int); extern int posix_trace_attr_getinherited(const trace_attr_t *__restrict__, int *); extern int posix_trace_attr_setstreamsize(trace_attr_t *, size_t); extern int posix_trace_attr_getstreamsize(const trace_attr_t *__restrict__, size_t *__restrict__); extern int posix_trace_attr_setlogsize(trace_attr_t *, size_t); extern int posix_trace_attr_getlogsize(const trace_attr_t *__restrict__, size_t *__restrict__); extern int posix_trace_attr_setmaxdatasize(trace_attr_t *, size_t); extern int posix_trace_attr_getmaxdatasize(const trace_attr_t *__restrict__, size_t *__restrict__); extern int posix_trace_attr_setstreamfullpolicy(trace_attr_t *, int); extern int posix_trace_attr_getstreamfullpolicy( const trace_attr_t *__restrict__, int *); extern int posix_trace_attr_setlogfullpolicy(trace_attr_t *, int); extern int posix_trace_attr_getlogfullpolicy( const trace_attr_t *__restrict__, int *__restrict__); extern int posix_trace_create(pid_t pid, const trace_attr_t *__restrict__, trace_id_t *__restrict__); extern int posix_trace_create_withlog(pid_t pid, const trace_attr_t *__restrict__,int, trace_id_t *__restrict__); extern int posix_trace_shutdown(trace_id_t); extern int posix_trace_flush(trace_id_t); extern int posix_trace_eventid_open(const char *, trace_event_id_t *__restrict__); extern int posix_trace_start(trace_id_t); extern int posix_trace_stop(trace_id_t); extern void posix_trace_event(trace_event_id_t, const void *__restrict__, size_t); extern int posix_trace_getnext_event(trace_id_t, struct posix_trace_event_info *__restrict__, void *__restrict__, size_t, size_t *__restrict__, int *__restrict__); extern int posix_trace_trygetnext_event(trace_id_t, struct posix_trace_event_info *__restrict__, void *__restrict__, size_t, size_t *__restrict__, int *__restrict__); extern int posix_trace_timedgetnext_event(trace_id_t, struct posix_trace_event_info *__restrict__, void *__restrict__, size_t, size_t *__restrict__, int *__restrict__, const struct timespec *__restrict__); extern int posix_trace_attr_getname(const trace_attr_t *, char *); extern int posix_trace_attr_setname(trace_attr_t *, const char *); extern int posix_trace_attr_getclockres(const trace_attr_t *, struct timespec *); extern int posix_trace_attr_getcreatetime(const trace_attr_t *, struct timespec *); extern int posix_trace_attr_getgenversion(const trace_attr_t *, char *); extern int posix_trace_attr_getmaxsystemeventsize( const trace_attr_t *__restrict__, size_t *__restrict__); extern int posix_trace_attr_getmaxusereventsize( const trace_attr_t *__restrict__, size_t, size_t *__restrict__); extern int posix_trace_get_attr(trace_id_t strid, trace_attr_t *addr); extern int posix_trace_get_status(trace_id_t, struct posix_trace_status_info *); extern int posix_trace_get_filter(trace_id_t, trace_event_set_t *); extern int posix_trace_set_filter(trace_id_t, const trace_event_set_t *, int); extern int posix_trace_eventset_add(trace_event_id_t, trace_event_set_t *); extern int posix_trace_eventset_del(trace_event_id_t, trace_event_set_t *); extern int posix_trace_eventset_empty(trace_event_set_t *); extern int posix_trace_eventset_fill(trace_event_set_t *, int); extern int posix_trace_eventset_ismember(trace_event_id_t, const trace_event_set_t *__restrict__, int *__restrict__); extern int posix_trace_eventid_get_name(trace_id_t, trace_event_id_t, char *); extern int posix_trace_eventid_equal(trace_id_t, trace_event_id_t, trace_event_id_t); extern int posix_trace_eventtypelist_getnext_id(trace_id_t, trace_event_id_t *__restrict__, int *__restrict__); extern int posix_trace_eventtypelist_rewind(trace_id_t); extern int posix_trace_trid_eventid_open(trace_id_t, const char *__restrict__, trace_event_id_t *__restrict__); extern int posix_trace_clear(trace_id_t); extern int posix_trace_close(trace_id_t); extern int posix_trace_open(int, trace_id_t *); extern int posix_trace_rewind(trace_id_t); #ifdef __cplusplus } #endif #endif /* _H_TRACE */