X-Git-Url: http://git.liburcu.org/?a=blobdiff_plain;f=include%2Fust-comm.h;h=0034f2aa864cc9d1a5fbdd5ec537e4d0dc497eec;hb=refs%2Fheads%2Fstable-2.1;hp=4c360dcc81316d10df40dc5eb8c5e6993344f7f6;hpb=cbef69018acdeb52d27529e80126b43f3733e233;p=lttng-ust.git diff --git a/include/ust-comm.h b/include/ust-comm.h index 4c360dcc..0034f2aa 100644 --- a/include/ust-comm.h +++ b/include/ust-comm.h @@ -29,6 +29,8 @@ #include #include #include +#include +#include /* * Default timeout the application waits for the sessiond to send its @@ -39,12 +41,13 @@ #define LTTNG_UST_DEFAULT_CONSTRUCTOR_TIMEOUT_MS 3000 #define LTTNG_RUNDIR "/var/run/lttng" +#define LTTNG_HOME_RUNDIR "%s/.lttng" /* Default unix socket path */ #define DEFAULT_GLOBAL_CLIENT_UNIX_SOCK LTTNG_RUNDIR "/client-lttng-sessiond" #define DEFAULT_GLOBAL_APPS_UNIX_SOCK LTTNG_RUNDIR "/apps-lttng-sessiond" -#define DEFAULT_HOME_APPS_UNIX_SOCK "%s/.apps-lttng-sessiond" -#define DEFAULT_HOME_CLIENT_UNIX_SOCK "%s/.client-lttng-sessiond" +#define DEFAULT_HOME_APPS_UNIX_SOCK LTTNG_HOME_RUNDIR "/apps-lttng-sessiond" +#define DEFAULT_HOME_CLIENT_UNIX_SOCK LTTNG_HOME_RUNDIR "/client-lttng-sessiond" #define DEFAULT_GLOBAL_APPS_WAIT_SHM_PATH "/lttng-ust-apps-wait" #define DEFAULT_HOME_APPS_WAIT_SHM_PATH "/lttng-ust-apps-wait-%u" @@ -52,71 +55,6 @@ /* Queue size of listen(2) */ #define LTTNG_UST_COMM_MAX_LISTEN 10 -/* Get the error code index from 0. USTCOMM_ERR starts at 1000. - */ -#define USTCOMM_ERR_INDEX(code) (code - USTCOMM_ERR) - -/* - * ustcomm error code. - */ -enum ustcomm_return_code { - USTCOMM_OK = 0, /* Ok */ - /* Range 1 to 999 used for standard error numbers (errno.h) */ - USTCOMM_ERR = 1000, /* Unknown Error */ - USTCOMM_UND, /* Undefine command */ - USTCOMM_NOT_IMPLEMENTED, /* Command not implemented */ - USTCOMM_UNKNOWN_DOMAIN, /* Tracing domain not known */ - USTCOMM_ALLOC_FAIL, /* Trace allocation fail */ - USTCOMM_NO_SESSION, /* No session found */ - USTCOMM_CREATE_FAIL, /* Create trace fail */ - USTCOMM_SESSION_FAIL, /* Create session fail */ - USTCOMM_START_FAIL, /* Start tracing fail */ - USTCOMM_STOP_FAIL, /* Stop tracing fail */ - USTCOMM_LIST_FAIL, /* Listing apps fail */ - USTCOMM_NO_APPS, /* No traceable application */ - USTCOMM_SESS_NOT_FOUND, /* Session name not found */ - USTCOMM_NO_TRACE, /* No trace exist */ - USTCOMM_FATAL, /* Session daemon had a fatal error */ - USTCOMM_NO_TRACEABLE, /* Error for non traceable app */ - USTCOMM_SELECT_SESS, /* Must select a session */ - USTCOMM_EXIST_SESS, /* Session name already exist */ - USTCOMM_NO_EVENT, /* No event found */ - USTCOMM_KERN_NA, /* Kernel tracer unavalable */ - USTCOMM_KERN_EVENT_EXIST, /* Kernel event already exists */ - USTCOMM_KERN_SESS_FAIL, /* Kernel create session failed */ - USTCOMM_KERN_CHAN_FAIL, /* Kernel create channel failed */ - USTCOMM_KERN_CHAN_NOT_FOUND, /* Kernel channel not found */ - USTCOMM_KERN_CHAN_DISABLE_FAIL, /* Kernel disable channel failed */ - USTCOMM_KERN_CHAN_ENABLE_FAIL, /* Kernel enable channel failed */ - USTCOMM_KERN_CONTEXT_FAIL, /* Kernel add context failed */ - USTCOMM_KERN_ENABLE_FAIL, /* Kernel enable event failed */ - USTCOMM_KERN_DISABLE_FAIL, /* Kernel disable event failed */ - USTCOMM_KERN_META_FAIL, /* Kernel open metadata failed */ - USTCOMM_KERN_START_FAIL, /* Kernel start trace failed */ - USTCOMM_KERN_STOP_FAIL, /* Kernel stop trace failed */ - USTCOMM_KERN_CONSUMER_FAIL, /* Kernel consumer start failed */ - USTCOMM_KERN_STREAM_FAIL, /* Kernel create stream failed */ - USTCOMM_KERN_DIR_FAIL, /* Kernel trace directory creation failed */ - USTCOMM_KERN_DIR_EXIST, /* Kernel trace directory exist */ - USTCOMM_KERN_NO_SESSION, /* No kernel session found */ - USTCOMM_KERN_LIST_FAIL, /* Kernel listing events failed */ - USTCONSUMER_COMMAND_SOCK_READY, /* when kconsumerd command socket ready */ - USTCONSUMER_SUCCESS_RECV_FD, /* success on receiving fds */ - USTCONSUMER_ERROR_RECV_FD, /* error on receiving fds */ - USTCONSUMER_POLL_ERROR, /* Error in polling thread in kconsumerd */ - USTCONSUMER_POLL_NVAL, /* Poll on closed fd */ - USTCONSUMER_POLL_HUP, /* All fds have hungup */ - USTCONSUMER_EXIT_SUCCESS, /* kconsumerd exiting normally */ - USTCONSUMER_EXIT_FAILURE, /* kconsumerd exiting on error */ - USTCONSUMER_OUTFD_ERROR, /* error opening the tracefile */ - USTCONSUMER_SPLICE_EBADF, /* EBADF from splice(2) */ - USTCONSUMER_SPLICE_EINVAL, /* EINVAL from splice(2) */ - USTCONSUMER_SPLICE_ENOMEM, /* ENOMEM from splice(2) */ - USTCONSUMER_SPLICE_ESPIPE, /* ESPIPE from splice(2) */ - /* MUST be last element */ - USTCOMM_NR, /* Last element */ -}; - /* * Data structure for the commands sent from sessiond to UST. */ @@ -130,8 +68,13 @@ struct ustcomm_ust_msg { struct lttng_ust_context context; struct lttng_ust_tracer_version version; struct lttng_ust_tracepoint_iter tracepoint; + struct { + uint32_t data_size; /* following filter data */ + uint32_t reloc_offset; + uint64_t seqnum; + } LTTNG_PACKED filter; } u; -}; +} LTTNG_PACKED; /* * Data structure for the response from UST to the session daemon. @@ -145,14 +88,19 @@ struct ustcomm_ust_reply { union { struct { uint64_t memory_map_size; - } channel; + } LTTNG_PACKED channel; struct { uint64_t memory_map_size; - } stream; + } LTTNG_PACKED stream; struct lttng_ust_tracer_version version; struct lttng_ust_tracepoint_iter tracepoint; } u; -}; +} LTTNG_PACKED; + +/* + * LTTNG_UST_TRACEPOINT_FIELD_LIST reply is followed by a + * struct lttng_ust_field_iter field. + */ extern int ustcomm_create_unix_sock(const char *pathname); extern int ustcomm_connect_unix_sock(const char *pathname);