X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=blobdiff_plain;f=include%2Flttng%2Flttng-error.h;h=790a78a0b60e88188486fc230b84c01ba031f347;hp=4e98f43bea86eca94969a4b1de859ebf01a12f00;hb=HEAD;hpb=5c786dedd0156b93984f89ba47ec841277ed7dae diff --git a/include/lttng/lttng-error.h b/include/lttng/lttng-error.h index 4e98f43be..fa05af777 100644 --- a/include/lttng/lttng-error.h +++ b/include/lttng/lttng-error.h @@ -6,20 +6,10 @@ * The following values are all the possible errors the lttng command line * client can quit with. * - * Copyright (C) 2012 - David Goulet + * Copyright (C) 2012 David Goulet * - * This library is free software; you can redistribute it and/or modify it - * under the terms of the GNU Lesser General Public License, version 2.1 only, - * as published by the Free Software Foundation. + * SPDX-License-Identifier: LGPL-2.1-only * - * This library is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License - * for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this library; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef LTTNG_ERROR_H @@ -29,122 +19,714 @@ extern "C" { #endif -#ifndef LTTNG_DEPRECATED -#if defined (__GNUC__) \ - && ((__GNUC_MAJOR__ == 4) && (__GNUC_MINOR__ >= 5) \ - || __GNUC_MAJOR__ >= 5) -#define LTTNG_DEPRECATED(msg) __attribute__((deprecated(msg))) -#else -#define LTTNG_DEPRECATED(msg) __attribute__((deprecated)) -#endif /* defined __GNUC__ */ -#endif /* LTTNG_DEPRECATED */ +#include + +/*! +@addtogroup api_gen +@{ +*/ + +/*! +@brief + General error codes. + +Many functions, most of them dating from older liblttng-ctl versions, +return this type (or an \c int value which is equal to the negation of +one of those enumerators). + +Not all error codes are relevant to a given function: this API +documentation makes an effort to document the most relevant status codes +for each function. This is not always possible, however, as LTTng is +made of multiple interacting components (tracers, consumer daemons, +session daemons, and the rest); those error codes can move from one to +another and the possible error codes of a given liblttng-ctl function +can change from version to version. +@sa lttng_strerror() -- + Returns a human-readable message for a general error code, positive + or negative. +*/ enum lttng_error_code { - LTTNG_OK = 10, /* Ok */ - LTTNG_ERR_UNK = 11, /* Unknown Error */ - LTTNG_ERR_UND = 12, /* Undefine command */ - LTTNG_ERR_SESSION_STARTED = 13, /* Session is running */ - LTTNG_ERR_UNKNOWN_DOMAIN = 14, /* Tracing domain not known */ - LTTNG_ERR_NOT_SUPPORTED = 15, /* Operation not supported */ - LTTNG_ERR_NO_SESSION = 16, /* No session found */ - LTTNG_ERR_CREATE_DIR_FAIL = 17, /* Create directory fail */ - LTTNG_ERR_SESSION_FAIL = 18, /* Create session fail */ - LTTNG_ERR_NO_SESSIOND = 19, /* No session daemon available */ - LTTNG_ERR_SET_URL = 20, /* Error setting URL */ - LTTNG_ERR_URL_EXIST = 21, /* URL already exists. */ - LTTNG_ERR_BUFFER_NOT_SUPPORTED = 22, /* Buffer type not supported. */ - LTTNG_ERR_SESS_NOT_FOUND = 23, /* Session by name not found */ - LTTNG_ERR_BUFFER_TYPE_MISMATCH = 24, /* Buffer type mismatched. */ - LTTNG_ERR_FATAL = 25, /* Fatal error */ - LTTNG_ERR_NOMEM = 26, /* Not enough memory. */ - LTTNG_ERR_SELECT_SESS = 27, /* Must select a session */ - LTTNG_ERR_EXIST_SESS = 28, /* Session name already exist */ - LTTNG_ERR_NO_EVENT = 29, /* No event found */ - LTTNG_ERR_CONNECT_FAIL = 30, /* Unable to connect to unix socket */ - LTTNG_ERR_SNAPSHOT_OUTPUT_EXIST = 31, /* Snapshot output already exists */ - LTTNG_ERR_EPERM = 32, /* Permission denied */ - LTTNG_ERR_KERN_NA = 33, /* Kernel tracer unavalable */ - LTTNG_ERR_KERN_VERSION = 34, /* Kernel tracer not compatible */ - LTTNG_ERR_KERN_EVENT_EXIST = 35, /* Kernel event already exists */ - LTTNG_ERR_KERN_SESS_FAIL = 36, /* Kernel create session failed */ - LTTNG_ERR_KERN_CHAN_EXIST = 37, /* Kernel channel already exists */ - LTTNG_ERR_KERN_CHAN_FAIL = 38, /* Kernel create channel failed */ - LTTNG_ERR_KERN_CHAN_NOT_FOUND = 39, /* Kernel channel not found */ - LTTNG_ERR_KERN_CHAN_DISABLE_FAIL = 40, /* Kernel disable channel failed */ - LTTNG_ERR_KERN_CHAN_ENABLE_FAIL = 41, /* Kernel enable channel failed */ - LTTNG_ERR_KERN_CONTEXT_FAIL = 42, /* Kernel add context failed */ - LTTNG_ERR_KERN_ENABLE_FAIL = 43, /* Kernel enable event failed */ - LTTNG_ERR_KERN_DISABLE_FAIL = 44, /* Kernel disable event failed */ - LTTNG_ERR_KERN_META_FAIL = 45, /* Kernel open metadata failed */ - LTTNG_ERR_KERN_START_FAIL = 46, /* Kernel start trace failed */ - LTTNG_ERR_KERN_STOP_FAIL = 47, /* Kernel stop trace failed */ - LTTNG_ERR_KERN_CONSUMER_FAIL = 48, /* Kernel consumer start failed */ - LTTNG_ERR_KERN_STREAM_FAIL = 49, /* Kernel create stream failed */ - LTTNG_ERR_START_SESSION_ONCE = 50, /* Session needs to be started once. */ - LTTNG_ERR_SNAPSHOT_FAIL = 51, /* Snapshot record failed. */ - /* 52 */ - LTTNG_ERR_KERN_LIST_FAIL = 53, /* Kernel listing events failed */ - LTTNG_ERR_UST_CALIBRATE_FAIL = 54, /* UST calibration failed */ - LTTNG_ERR_UST_EVENT_ENABLED = 55, /* UST event already enabled. */ - LTTNG_ERR_UST_SESS_FAIL = 56, /* UST create session failed */ - LTTNG_ERR_UST_CHAN_EXIST = 57, /* UST channel already exist */ - LTTNG_ERR_UST_CHAN_FAIL = 58, /* UST create channel failed */ - LTTNG_ERR_UST_CHAN_NOT_FOUND = 59, /* UST channel not found */ - LTTNG_ERR_UST_CHAN_DISABLE_FAIL = 60, /* UST disable channel failed */ - LTTNG_ERR_UST_CHAN_ENABLE_FAIL = 61, /* UST enable channel failed */ - /* 62 */ - LTTNG_ERR_UST_ENABLE_FAIL = 63, /* UST enable event failed */ - LTTNG_ERR_UST_DISABLE_FAIL = 64, /* UST disable event failed */ - LTTNG_ERR_UST_META_FAIL = 65, /* UST open metadata failed */ - LTTNG_ERR_UST_START_FAIL = 66, /* UST start trace failed */ - LTTNG_ERR_UST_STOP_FAIL = 67, /* UST stop trace failed */ - LTTNG_ERR_UST_CONSUMER64_FAIL = 68, /* 64-bit UST consumer start failed */ - LTTNG_ERR_UST_CONSUMER32_FAIL = 69, /* 32-bit UST consumer start failed */ - LTTNG_ERR_UST_STREAM_FAIL = 70, /* UST create stream failed */ - /* 71 */ - /* 72 */ - /* 73 */ - LTTNG_ERR_UST_LIST_FAIL = 74, /* UST listing events failed */ - LTTNG_ERR_UST_EVENT_EXIST = 75, /* UST event exist */ - LTTNG_ERR_UST_EVENT_NOT_FOUND = 76, /* UST event not found */ - LTTNG_ERR_UST_CONTEXT_EXIST = 77, /* UST context exist */ - LTTNG_ERR_UST_CONTEXT_INVAL = 78, /* UST context invalid */ - LTTNG_ERR_NEED_ROOT_SESSIOND = 79, /* root sessiond is needed */ - LTTNG_ERR_TRACE_ALREADY_STARTED = 80, /* Tracing already started */ - LTTNG_ERR_TRACE_ALREADY_STOPPED = 81, /* Tracing already stopped */ - LTTNG_ERR_KERN_EVENT_ENOSYS = 82, /* Kernel event type not supported */ - /* 83 */ - /* 84 */ - /* 85 */ - /* 86 */ - /* 87 */ - /* 88 */ - /* 89 */ - /* 90 */ - /* 91 */ - /* 92 */ - /* 93 */ + /* Internal codes */ + /// @cond INTERNAL_ERR_CODES + LTTNG_ERR_SELECT_SESS = 27, /* Must select a session */ + LTTNG_ERR_NO_STREAM = 52, /* Index without stream on relay. */ + LTTNG_ERR_UST_CALIBRATE_FAIL = 54, /* UST calibration failed */ + LTTNG_ERR_UST_CHAN_ENABLE_FAIL = 61, /* UST enable channel failed */ + LTTNG_ERR_CHAN_EXIST = 62, /* Channel already exists. */ + LTTNG_ERR_UST_META_FAIL = 65, /* UST open metadata failed */ + LTTNG_ERR_UST_STREAM_FAIL = 70, /* UST create stream failed */ + LTTNG_ERR_SNAPSHOT_NODATA = 71, /* No data in snapshot. */ + LTTNG_ERR_MI_OUTPUT_TYPE = 91, /* Invalid MI output format */ + LTTNG_ERR_MI_IO_FAIL = 92, /* IO error while writing machine interface output */ + LTTNG_ERR_MI_NOT_IMPLEMENTED = 93, /* Mi feature not implemented */ + LTTNG_ERR_EVENT_EXIST_LOGLEVEL = 100, /* Event enabled with different loglevel */ + LTTNG_ERR_FILTER_EXIST = 108, /* Filter already exist */ + LTTNG_ERR_COMMAND_CANCELLED = 128, /* Command cancelled. */ + LTTNG_ERR_ROTATE_RENAME_FAIL_CONSUMER = 142, /* Rotation rename failure on consumer */ + LTTNG_ERR_ROTATION_PENDING_LOCAL_FAIL_CONSUMER = 143, /* Rotation pending check (local) + failure on consumer */ + LTTNG_ERR_ROTATION_PENDING_RELAY_FAIL_CONSUMER = 144, /* Rotation pending check (relay) + failure on consumer */ + LTTNG_ERR_MKDIR_FAIL_CONSUMER = 145, /* mkdir failure on consumer */ + LTTNG_ERR_TRACE_CHUNK_EXISTS_FAIL_CONSUMER = 151, /* failed to query consumer for trace + chunk existence */ + /// @endcond + + /// Success. + LTTNG_OK = 10, + + /// Unknown error. + LTTNG_ERR_UNK = 11, + + /// Undefined command. + LTTNG_ERR_UND = 12, + + /*! + \lt_obj_c_session already + \link lttng_session::enabled started\endlink (active). + */ + LTTNG_ERR_SESSION_STARTED = 13, + + /// Unknown \lt_obj_domain. + LTTNG_ERR_UNKNOWN_DOMAIN = 14, + + /// Unsupported operation. + LTTNG_ERR_NOT_SUPPORTED = 15, + + /// No \lt_obj_session found. + LTTNG_ERR_NO_SESSION = 16, + + /// Failed to create a directory. + LTTNG_ERR_CREATE_DIR_FAIL = 17, + + /// Failed to create a \lt_obj_session. + LTTNG_ERR_SESSION_FAIL = 18, + + /*! + No available + \ref api-gen-sessiond-conn "session daemon to connect to". + */ + LTTNG_ERR_NO_SESSIOND = 19, + + /// Failed to set an URL. + LTTNG_ERR_SET_URL = 20, + + /// URL already exists. + LTTNG_ERR_URL_EXIST = 21, + + /// Unsupported \ref api-channel-buf-scheme "buffering scheme". + LTTNG_ERR_BUFFER_NOT_SUPPORTED = 22, + + /// Nonexistent \lt_obj_session name. + LTTNG_ERR_SESS_NOT_FOUND = 23, + + /*! + A \lt_obj_channel within the given \lt_obj_domain already exists + and is configured with another + \ref api-channel-buf-scheme "buffering scheme". + */ + LTTNG_ERR_BUFFER_TYPE_MISMATCH = 24, + + /// Fatal error. + LTTNG_ERR_FATAL = 25, + + /// Failed to allocate memory. + LTTNG_ERR_NOMEM = 26, + + /// \lt_obj_c_session name already exists. + LTTNG_ERR_EXIST_SESS = 28, + + /// \lt_obj_c_rer not found. + LTTNG_ERR_NO_EVENT = 29, + + /// Failed to connect to Unix socket. + LTTNG_ERR_CONNECT_FAIL = 30, + + /// \ref api_session_snapshot "Snapshot" output already exists. + LTTNG_ERR_SNAPSHOT_OUTPUT_EXIST = 31, + + /// Permission denied. + LTTNG_ERR_EPERM = 32, + + /// Linux kernel tracer isn't available. + LTTNG_ERR_KERN_NA = 33, + + /// Incompatible Linux kernel tracer. + LTTNG_ERR_KERN_VERSION = 34, + + /// Linux kernel \lt_obj_rer already exists. + LTTNG_ERR_KERN_EVENT_EXIST = 35, + + /// Linux kernel tracer: failed to create a \lt_obj_session. + LTTNG_ERR_KERN_SESS_FAIL = 36, + + /// Linux kernel \lt_obj_channel already exists. + LTTNG_ERR_KERN_CHAN_EXIST = 37, + + /// Failed to create a Linux kernel \lt_obj_channel. + LTTNG_ERR_KERN_CHAN_FAIL = 38, + + /// Linux kernel \lt_obj_channel not found. + LTTNG_ERR_KERN_CHAN_NOT_FOUND = 39, + + /// Failed to disable a Linux kernel \lt_obj_channel. + LTTNG_ERR_KERN_CHAN_DISABLE_FAIL = 40, + + /// Failed to create/enable a Linux kernel \lt_obj_channel. + LTTNG_ERR_KERN_CHAN_ENABLE_FAIL = 41, + + /*! + Failed to add a context field to be recorded to the event + records of a Linux kernel \lt_obj_channel. + */ + LTTNG_ERR_KERN_CONTEXT_FAIL = 42, + + /// Failed to create/enable a Linux kernel \lt_obj_rer. + LTTNG_ERR_KERN_ENABLE_FAIL = 43, + + /// Failed to disable a Linux kernel \lt_obj_rer. + LTTNG_ERR_KERN_DISABLE_FAIL = 44, + + /// Failed to open a Linux kernel trace metadata stream. + LTTNG_ERR_KERN_META_FAIL = 45, + + /*! + Linux kernel tracer: failed to + \link lttng_start_tracing() start tracing\endlink. + */ + LTTNG_ERR_KERN_START_FAIL = 46, + + /*! + Linux kernel tracer: failed to + \link lttng_stop_tracing stop tracing\endlink. + */ + LTTNG_ERR_KERN_STOP_FAIL = 47, + + /// Failed to start a Linux kernel consumer daemon. + LTTNG_ERR_KERN_CONSUMER_FAIL = 48, + + /// Failed to create a Linux kernel trace data stream. + LTTNG_ERR_KERN_STREAM_FAIL = 49, + + /*! + The \lt_obj_session never became + \link lttng_session::enabled active\endlink. + */ + LTTNG_ERR_START_SESSION_ONCE = 50, + + /*! + Failed to take a recording session + \ref api_session_snapshot "snapshot". + */ + LTTNG_ERR_SNAPSHOT_FAIL = 51, + + /// Failed to list Linux kernel \lt_obj_rers. + LTTNG_ERR_KERN_LIST_FAIL = 53, + + /// User space \lt_obj_rer already enabled. + LTTNG_ERR_UST_EVENT_ENABLED = 55, + + /*! + User space tracer: failed to + \link lttng_create_session_ext() create\endlink a + \lt_obj_session. + */ + LTTNG_ERR_UST_SESS_FAIL = 56, + + /// User space \lt_obj_channel already exists. + LTTNG_ERR_UST_CHAN_EXIST = 57, + + /*! + Failed to + \link lttng_enable_channel() create\endlink a user space + \lt_obj_channel. + */ + LTTNG_ERR_UST_CHAN_FAIL = 58, + + /// User space \lt_obj_channel not found. + LTTNG_ERR_UST_CHAN_NOT_FOUND = 59, + + /*! + Failed to \link lttng_disable_channel() disable\endlink + a user space \lt_obj_channel. + */ + LTTNG_ERR_UST_CHAN_DISABLE_FAIL = 60, + + /// Failed to create/enable a user space \lt_obj_rer. + LTTNG_ERR_UST_ENABLE_FAIL = 63, + + /// Failed to disable a user space \lt_obj_rer. + LTTNG_ERR_UST_DISABLE_FAIL = 64, + + /*! + User space tracer: failed to + \link lttng_start_tracing() start tracing\endlink. + */ + LTTNG_ERR_UST_START_FAIL = 66, + + /*! + User space tracer: failed to + \link lttng_stop_tracing() stop tracing\endlink. + */ + LTTNG_ERR_UST_STOP_FAIL = 67, + + /// Failed to start a 64-bit user space consumer daemon. + LTTNG_ERR_UST_CONSUMER64_FAIL = 68, + + /// Failed to start a 32-bit user space consumer daemon. + LTTNG_ERR_UST_CONSUMER32_FAIL = 69, + + /// \lt_obj_c_session has no \lt_obj_channels. + LTTNG_ERR_NO_CHANNEL = 72, + + /// \lt_obj_c_session name contains an invalid character. + LTTNG_ERR_SESSION_INVALID_CHAR = 73, + + /// Failed to list user space \lt_obj_rers. + LTTNG_ERR_UST_LIST_FAIL = 74, + + /// User space \lt_obj_rer already exists. + LTTNG_ERR_UST_EVENT_EXIST = 75, + + /// User space \lt_obj_rer not found. + LTTNG_ERR_UST_EVENT_NOT_FOUND = 76, + + /*! + \link lttng_add_context() Context field\endlink to be recorded + to the event records of a user space + \lt_obj_channel already exists. + */ + LTTNG_ERR_UST_CONTEXT_EXIST = 77, + + /*! + Invalid/unknown + \link #lttng_event_context_type context field type\endlink. + */ + LTTNG_ERR_UST_CONTEXT_INVAL = 78, + + /*! + A root session daemon is required, but isn't available. + + See \ref api-gen-sessiond-conn "Session daemon connection". + */ + LTTNG_ERR_NEED_ROOT_SESSIOND = 79, + + /*! + \lt_obj_c_session is already + \link lttng_session::enabled active\endlink (started). + */ + LTTNG_ERR_TRACE_ALREADY_STARTED = 80, + + /*! + \lt_obj_c_session is already + \link lttng_session::enabled inactive\endlink (stopped). + */ + LTTNG_ERR_TRACE_ALREADY_STOPPED = 81, + + /// Linux kernel instrumentation point type not supported. + LTTNG_ERR_KERN_EVENT_ENOSYS = 82, + + /*! + A \lt_obj_channel name is required because + a non-default channel exists within the selected + \lt_obj_session and \lt_obj_domain. + */ + LTTNG_ERR_NEED_CHANNEL_NAME = 83, + + /*! + \lt_obj_c_channel name is required because a + non-default channel exists within the \lt_obj_session. + */ + LTTNG_ERR_NO_UST = 84, + + /*! + \ref api_session_save_load "Recording session configuration file" + already exists. + */ + LTTNG_ERR_SAVE_FILE_EXIST = 85, + + /*! + I/O error while writing a + \ref api_session_save_load "recording session configuration file". + */ + LTTNG_ERR_SAVE_IO_FAIL = 86, + + /*! + Invalid + \ref api_session_save_load "recording session configuration file". + */ + LTTNG_ERR_LOAD_INVALID_CONFIG = 87, + + /*! + I/O error while reading a + \ref api_session_save_load "recording session configuration file". + */ + LTTNG_ERR_LOAD_IO_FAIL = 88, + + /*! + \ref api_session_save_load "Recording session configuration file" + not found. + */ + LTTNG_ERR_LOAD_SESSION_NOENT = 89, + + /*! + Maximum total size of all the + \ref api_session_snapshot "snapshot" trace files is invalid. + */ + LTTNG_ERR_MAX_SIZE_INVALID = 90, + /* 94 */ /* 95 */ /* 96 */ - LTTNG_ERR_INVALID = 97, /* Invalid parameter */ - LTTNG_ERR_NO_USTCONSUMERD = 98, /* No UST consumer detected */ - LTTNG_ERR_NO_KERNCONSUMERD = 99, /* No Kernel consumer detected */ - LTTNG_ERR_EVENT_EXIST_LOGLEVEL = 100, /* Event enabled with different loglevel */ - LTTNG_ERR_URL_DATA_MISS = 101, /* Missing network data URL */ - LTTNG_ERR_URL_CTRL_MISS = 102, /* Missing network control URL */ - LTTNG_ERR_ENABLE_CONSUMER_FAIL = 103, /* Enabling consumer failed */ - LTTNG_ERR_RELAYD_CONNECT_FAIL = 104, /* lttng-relayd create session failed */ - LTTNG_ERR_RELAYD_VERSION_FAIL = 105, /* lttng-relayd not compatible */ - LTTNG_ERR_FILTER_INVAL = 106, /* Invalid filter bytecode */ - LTTNG_ERR_FILTER_NOMEM = 107, /* Lack of memory for filter bytecode */ - LTTNG_ERR_FILTER_EXIST = 108, /* Filter already exist */ - LTTNG_ERR_NO_CONSUMER = 109, /* No consumer exist for the session */ - - /* MUST be last element */ - LTTNG_ERR_NR, /* Last element */ + + /// Invalid parameter (unsatisfied precondition). + LTTNG_ERR_INVALID = 97, + + /// No user space consumer daemon available. + LTTNG_ERR_NO_USTCONSUMERD = 98, + + /// No Linux kernel consumer daemon available. + LTTNG_ERR_NO_KERNCONSUMERD = 99, + + /// Missing network data \ref api-session-url "URL". + LTTNG_ERR_URL_DATA_MISS = 101, + + /// Missing network control \ref api-session-url "URL". + LTTNG_ERR_URL_CTRL_MISS = 102, + + /// Failed to communicate with a consumer daemon. + LTTNG_ERR_ENABLE_CONSUMER_FAIL = 103, + + /*! + Failed to connect to or communicate with a relay daemon + (see \lt_man{lttng-relayd,8}). + */ + LTTNG_ERR_RELAYD_CONNECT_FAIL = 104, + + /// Incompatible relay daemon (see \lt_man{lttng-relayd,8}) version. + LTTNG_ERR_RELAYD_VERSION_FAIL = 105, + + /*! + Invalid \link lttng_enable_event_with_filter() context and event + payload filter expression\endlink. + */ + LTTNG_ERR_FILTER_INVAL = 106, + + /*! + Failed to allocate memory for a context and event payload filter + object. + */ + LTTNG_ERR_FILTER_NOMEM = 107, + + /// No available consumer daemon. + LTTNG_ERR_NO_CONSUMER = 109, + + /*! + Invalid event name + \link lttng_enable_event_with_exclusions() exclusion\endlink + data. + */ + LTTNG_ERR_EXCLUSION_INVAL = 110, + + /// Failed to allocate memory for an event name exclusion object. + LTTNG_ERR_EXCLUSION_NOMEM = 111, + + /// Invalid event name condition part of a \lt_obj_rer. + LTTNG_ERR_INVALID_EVENT_NAME = 112, + + /// Invalid \lt_obj_channel name. + LTTNG_ERR_INVALID_CHANNEL_NAME = 113, + + /*! + Process attribute is already part of an + \ref api_pais "inclusion set". + */ + LTTNG_ERR_PROCESS_ATTR_EXISTS = 114, + + /*! + Process attribute isn't part of an + \ref api_pais "inclusion set". + */ + LTTNG_ERR_PROCESS_ATTR_MISSING = 115, + + /// Invalid \lt_obj_domain for \lt_obj_channel. + LTTNG_ERR_INVALID_CHANNEL_DOMAIN = 116, + + /// Overflow. + LTTNG_ERR_OVERFLOW = 117, + + /*! + \lt_obj_c_session isn't + \link lttng_session::enabled active\endlink (started). + */ + LTTNG_ERR_SESSION_NOT_STARTED = 118, + + /*! + Unsupported LTTng \ref api-session-live-mode "live" recording + session mode. + */ + LTTNG_ERR_LIVE_SESSION = 119, + + /*! + Unsupported + \ref api-channel-per-proc-buf "per-process buffering scheme". + */ + LTTNG_ERR_PER_PID_SESSION = 120, + + /*! + \link #lttng_event_context_type Context field type\endlink + isn't available on the current Linux kernel. + */ + LTTNG_ERR_KERN_CONTEXT_UNAVAILABLE = 121, + + /*! + Failed to \link lttng_regenerate_statedump() regenerate the + LTTng state dump event records\endlink. + */ + LTTNG_ERR_REGEN_STATEDUMP_FAIL = 122, + + /*! + Failed to allocate memory to \link lttng_regenerate_statedump() + regenerate the LTTng state dump event records\endlink. + */ + LTTNG_ERR_REGEN_STATEDUMP_NOMEM = 123, + + /*! + \lt_obj_c_session isn't in + \ref api-session-snapshot-mode "snapshot mode". + */ + LTTNG_ERR_NOT_SNAPSHOT_SESSION = 124, + + /// Invalid \lt_obj_trigger. + LTTNG_ERR_INVALID_TRIGGER = 125, + + /// \lt_obj_c_trigger already exists (registered). + LTTNG_ERR_TRIGGER_EXISTS = 126, + + /// \lt_obj_c_trigger not found. + LTTNG_ERR_TRIGGER_NOT_FOUND = 127, + + /*! + \ref api_session_rotation "Recording session rotation" operation + already in progress. + */ + LTTNG_ERR_ROTATION_PENDING = 129, + + /*! + \ref api_session_rotation "Recording session rotation" feature + isn't available for the \ref api-session-modes "mode" of the + given recording session. + */ + LTTNG_ERR_ROTATION_NOT_AVAILABLE = 130, + + /*! + \ref api_session_rotation "Recording session rotation" schedule + already set. + */ + LTTNG_ERR_ROTATION_SCHEDULE_SET = 131, + + /*! + \ref api_session_rotation "Recording session rotation" schedule + isn't set. + */ + LTTNG_ERR_ROTATION_SCHEDULE_NOT_SET = 132, + + /*! + LTTng already + \ref api_session_rotation "archived the current trace chunk" of + the recording session since it became + \link lttng_session::enabled inactive\endlink (stopped). + */ + LTTNG_ERR_ROTATION_MULTIPLE_AFTER_STOP = 133, + + /*! + Linux kernel tracer: unavailable + \ref api_session_rotation "recording session rotation" feature. + */ + LTTNG_ERR_ROTATION_WRONG_VERSION = 134, + + /// \lt_obj_c_session has no configured output. + LTTNG_ERR_NO_SESSION_OUTPUT = 135, + + /*! + Relay daemon: unavailable + \ref api_session_rotation "recording session rotation" feature. + */ + LTTNG_ERR_ROTATION_NOT_AVAILABLE_RELAY = 136, + + /// Unavailable logging instrumentation point feature. + LTTNG_ERR_AGENT_TRACING_DISABLED = 137, + + /// Invalid user space probe location. + LTTNG_ERR_PROBE_LOCATION_INVAL = 138, + + /// Failed to parse ELF file. + LTTNG_ERR_ELF_PARSING = 139, + + /*! + SystemTap User-level Statically Defined Tracing (USDT) probe + guarded by a semaphore. + */ + LTTNG_ERR_SDT_PROBE_SEMAPHORE = 140, + + /*! + Consumer daemon failed to perform a + \ref api_session_rotation "recording session rotation" + operation. + */ + LTTNG_ERR_ROTATION_FAIL_CONSUMER = 141, + + /// \lt_obj_c_channel not found. + LTTNG_ERR_CHAN_NOT_FOUND = 146, + + /*! + Cannot take a + \ref api_session_snapshot "snapshot" with the current + recording session configuration. + */ + LTTNG_ERR_SNAPSHOT_UNSUPPORTED = 147, + + /// Nonexistent \lt_obj_session. + LTTNG_ERR_SESSION_NOT_EXIST = 148, + + /*! + Consumer daemon failed to create a + \ref api_session_rotation "trace chunk archive". + */ + LTTNG_ERR_CREATE_TRACE_CHUNK_FAIL_CONSUMER = 149, + + /*! + Consumer daemon failed to close a + \ref api_session_rotation "trace chunk archive". + */ + LTTNG_ERR_CLOSE_TRACE_CHUNK_FAIL_CONSUMER = 150, + + /// Invalid protocol. + LTTNG_ERR_INVALID_PROTOCOL = 152, + + /// Failed to create a file. + LTTNG_ERR_FILE_CREATION_ERROR = 153, + + /// Failed to stop a timer. + LTTNG_ERR_TIMER_STOP_ERROR = 154, + + /*! + Linux kernel tracer: + \ref api_session_rotation "recording session rotation" feature + isn't available. + */ + LTTNG_ERR_ROTATION_NOT_AVAILABLE_KERNEL = 155, + + /*! + The relay daemon (see \lt_man{lttng-relayd,8}) doesn't allow + \ref api_session_clear "recording session clearing" operations. + */ + LTTNG_ERR_CLEAR_RELAY_DISALLOWED = 156, + + /*! + The relay daemon (see \lt_man{lttng-relayd,8}) doesn't support + the + \ref api_session_clear "recording session clearing" operation. + */ + LTTNG_ERR_CLEAR_NOT_AVAILABLE_RELAY = 157, + + /*! + Consumer daemon failed to + \ref api_session_clear "clear the recording session". + */ + LTTNG_ERR_CLEAR_FAIL_CONSUMER = 158, + + /*! + LTTng already + \ref api_session_clear "cleared the recording session" since it + became \link lttng_session::enabled inactive\endlink (stopped). + */ + LTTNG_ERR_ROTATION_AFTER_STOP_CLEAR = 159, + + /* Unix user not found. */ + LTTNG_ERR_USER_NOT_FOUND = 160, + + /* Unix group not found. */ + LTTNG_ERR_GROUP_NOT_FOUND = 161, + + /* Unsupported \lt_obj_domain. */ + LTTNG_ERR_UNSUPPORTED_DOMAIN = 162, + + /*! + Invalid operation considering the policy of the + \ref api_pais "process attribute inclusion set". + */ + LTTNG_ERR_PROCESS_ATTR_TRACKER_INVALID_TRACKING_POLICY = 163, + + /*! + Failed to initialize the file descriptor of the event notifier + group notification. + */ + LTTNG_ERR_EVENT_NOTIFIER_GROUP_NOTIFICATION_FD = 164, + + /// Invalid event field capture expression. + LTTNG_ERR_INVALID_CAPTURE_EXPRESSION = 165, + + /// Failed to register the event notifier to the tracer. + LTTNG_ERR_EVENT_NOTIFIER_REGISTRATION = 166, + + /// Failed to initialize the event notifier error accounting. + LTTNG_ERR_EVENT_NOTIFIER_ERROR_ACCOUNTING = 167, + + /// Event notifier error accouting is full. + LTTNG_ERR_EVENT_NOTIFIER_ERROR_ACCOUNTING_FULL = 168, + + /// Invalid error query target. + LTTNG_ERR_INVALID_ERROR_QUERY_TARGET = 169, + + /// Failed to flush a buffer. + LTTNG_ERR_BUFFER_FLUSH_FAILED = 170, + + /* MUST be last element of the manually-assigned section of the enum */ + /// @cond INTERNAL_ERR_CODES + LTTNG_ERR_NR, + /// @endcond + + /* Backward-compatibility assignments */ + /*! + Process attribute is already part of an + \ref api_pais "inclusion set". + + @deprecated + Use #LTTNG_ERR_PROCESS_ATTR_EXISTS. + */ + LTTNG_ERR_PID_TRACKED = LTTNG_ERR_PROCESS_ATTR_EXISTS, + + /*! + Process attribute isn't part of an + \ref api_pais "inclusion set". + + @deprecated + Use #LTTNG_ERR_PROCESS_ATTR_MISSING. + */ + LTTNG_ERR_PID_NOT_TRACKED = LTTNG_ERR_PROCESS_ATTR_MISSING, }; +/*! +@brief + Returns a human-readable message for the general error code + \lt_p{error_code}. + +@param[in] error_code + Error code (one of the #lttng_error_code enumerators), positive or + negative, for which to get a corresponding human-readable message. + +@returns + Human-readable message which corresponds to \lt_p{error_code}. + +@pre + \lt_p{error_code} is a valid #lttng_error_code enumerator. +*/ +LTTNG_EXPORT extern const char *lttng_strerror(int error_code); + +/// @} + #ifdef __cplusplus } #endif