NVTX C API Reference v3
NVIDIA Tools Extension Library
Loading...
Searching...
No Matches
Data Structures | Macros | Typedefs | Enumerations
nvToolsExt.h File Reference
Include dependency graph for nvToolsExt.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

union  nvtxMessageValue_t
 
struct  nvtxEventAttributes_t
 Event Attribute Structure. . More...
 
union  nvtxEventAttributes_t::payload_t
 Payload assigned to this event.. More...
 
struct  nvtxResourceAttributes_t
 Resource Attribute Structure. . More...
 
union  nvtxResourceAttributes_t::identifier_t
 Identifier for the resource. . More...
 

Macros

#define NVTX_VERSION   3
 
#define NVTX_API
 
#define NVTX_DYNAMIC_EXPORT   __attribute__((visibility("default")))
 
#define NVTX_EXPORT_UNMANGLED_FUNCTION_NAME
 
#define NVTX_INLINE_STATIC   __inline__ static
 
#define NVTX_NULLPTR   NULL
 
#define NVTX_STATIC_CAST(type, value)   ((type)(value))
 
#define NVTX_REINTERPRET_CAST(type, value)   ((type)(value))
 
#define NVTX_DECLSPEC   NVTX_INLINE_STATIC
 
#define NVTX_SET_NAME_MANGLING_OPTIONS
 
#define NVTX_VERSIONED_IDENTIFIER_L3(NAME, VERSION)   NAME##_v##VERSION
 
#define NVTX_VERSIONED_IDENTIFIER_L2(NAME, VERSION)   NVTX_VERSIONED_IDENTIFIER_L3(NAME, VERSION)
 
#define NVTX_VERSIONED_IDENTIFIER(NAME)   NVTX_VERSIONED_IDENTIFIER_L2(NAME, NVTX_VERSION)
 
#define NVTX_SUCCESS   0
 
#define NVTX_FAIL   1
 
#define NVTX_ERR_INIT_LOAD_PROPERTY   2
 
#define NVTX_ERR_INIT_ACCESS_LIBRARY   3
 
#define NVTX_ERR_INIT_LOAD_LIBRARY   4
 
#define NVTX_ERR_INIT_MISSING_LIBRARY_ENTRY_POINT   5
 
#define NVTX_ERR_INIT_FAILED_LIBRARY_ENTRY_POINT   6
 
#define NVTX_ERR_NO_INJECTION_LIBRARY_AVAILABLE   7
 
#define NVTX_EVENT_ATTRIB_STRUCT_SIZE   (NVTX_STATIC_CAST(uint16_t, sizeof(nvtxEventAttributes_t)))
 
#define NVTX_NO_PUSH_POP_TRACKING   (NVTX_STATIC_CAST(int, -2))
 
#define NVTX_IMPL_GUARD   /* Ensure other headers cannot be included directly */
 

Typedefs

typedef uint64_t nvtxRangeId_t
 
typedef struct nvtxDomainRegistration_st nvtxDomainRegistration
 
typedef nvtxDomainRegistration * nvtxDomainHandle_t
 
typedef struct nvtxStringRegistration_st nvtxStringRegistration
 
typedef nvtxStringRegistration * nvtxStringHandle_t
 

Enumerations

enum  nvtxColorType_t { NVTX_COLOR_UNKNOWN = 0 , NVTX_COLOR_ARGB = 1 }
 
enum  nvtxMessageType_t { NVTX_MESSAGE_UNKNOWN = 0 , NVTX_MESSAGE_TYPE_ASCII = 1 , NVTX_MESSAGE_TYPE_UNICODE = 2 , NVTX_MESSAGE_TYPE_REGISTERED = 3 }
 
enum  nvtxPayloadType_t {
  NVTX_PAYLOAD_UNKNOWN = 0 , NVTX_PAYLOAD_TYPE_UNSIGNED_INT64 = 1 , NVTX_PAYLOAD_TYPE_INT64 = 2 , NVTX_PAYLOAD_TYPE_DOUBLE = 3 ,
  NVTX_PAYLOAD_TYPE_UNSIGNED_INT32 = 4 , NVTX_PAYLOAD_TYPE_INT32 = 5 , NVTX_PAYLOAD_TYPE_FLOAT = 6
}
 

Functions

NVTX_DECLSPEC void NVTX_API nvtxInitialize (const void *reserved)
 Force initialization (optional) .
 
Marker
NVTX_DECLSPEC void NVTX_API nvtxDomainMarkEx (nvtxDomainHandle_t domain, const nvtxEventAttributes_t *eventAttrib)
 Marks an instantaneous event in the application.
 
NVTX_DECLSPEC void NVTX_API nvtxMarkEx (const nvtxEventAttributes_t *eventAttrib)
 Marks an instantaneous event in the application.
 
NVTX_DECLSPEC void NVTX_API nvtxMarkA (const char *message)
 Marks an instantaneous event in the application.
 
NVTX_DECLSPEC void NVTX_API nvtxMarkW (const wchar_t *message)
 
Process Ranges
NVTX_DECLSPEC nvtxRangeId_t NVTX_API nvtxDomainRangeStartEx (nvtxDomainHandle_t domain, const nvtxEventAttributes_t *eventAttrib)
 Starts a process range in a domain.
 
NVTX_DECLSPEC nvtxRangeId_t NVTX_API nvtxRangeStartEx (const nvtxEventAttributes_t *eventAttrib)
 Starts a process range.
 
NVTX_DECLSPEC nvtxRangeId_t NVTX_API nvtxRangeStartA (const char *message)
 Starts a process range.
 
NVTX_DECLSPEC nvtxRangeId_t NVTX_API nvtxRangeStartW (const wchar_t *message)
 
NVTX_DECLSPEC void NVTX_API nvtxDomainRangeEnd (nvtxDomainHandle_t domain, nvtxRangeId_t id)
 Ends a process range.
 
NVTX_DECLSPEC void NVTX_API nvtxRangeEnd (nvtxRangeId_t id)
 Ends a process range.
 
Thread Ranges
NVTX_DECLSPEC int NVTX_API nvtxDomainRangePushEx (nvtxDomainHandle_t domain, const nvtxEventAttributes_t *eventAttrib)
 Starts a nested thread range.
 
NVTX_DECLSPEC int NVTX_API nvtxRangePushEx (const nvtxEventAttributes_t *eventAttrib)
 Starts a nested thread range.
 
NVTX_DECLSPEC int NVTX_API nvtxRangePushA (const char *message)
 Starts a nested thread range.
 
NVTX_DECLSPEC int NVTX_API nvtxRangePushW (const wchar_t *message)
 
NVTX_DECLSPEC int NVTX_API nvtxDomainRangePop (nvtxDomainHandle_t domain)
 Ends a nested thread range.
 
NVTX_DECLSPEC int NVTX_API nvtxRangePop (void)
 Ends a nested thread range.
 
NVTX_DECLSPEC void NVTX_API nvtxDomainResourceDestroy (nvtxResourceHandle_t resource)
 Destroy a resource object to track and associate data with OS and middleware objects.
 
Functions for NVTX Category Naming
NVTX_DECLSPEC void NVTX_API nvtxDomainNameCategoryA (nvtxDomainHandle_t domain, uint32_t category, const char *name)
 Annotate an NVTX category used within a domain.
 
NVTX_DECLSPEC void NVTX_API nvtxDomainNameCategoryW (nvtxDomainHandle_t domain, uint32_t category, const wchar_t *name)
 
NVTX_DECLSPEC void NVTX_API nvtxNameCategoryA (uint32_t category, const char *name)
 Annotate an NVTX category.
 
NVTX_DECLSPEC void NVTX_API nvtxNameCategoryW (uint32_t category, const wchar_t *name)
 
Functions for OS Threads Naming
NVTX_DECLSPEC void NVTX_API nvtxNameOsThreadA (uint32_t threadId, const char *name)
 Annotate an OS thread.
 
NVTX_DECLSPEC void NVTX_API nvtxNameOsThreadW (uint32_t threadId, const wchar_t *name)
 
NVTX_DECLSPEC nvtxStringHandle_t NVTX_API nvtxDomainRegisterStringA (nvtxDomainHandle_t domain, const char *string)
 Register a string.
 
NVTX_DECLSPEC nvtxStringHandle_t NVTX_API nvtxDomainRegisterStringW (nvtxDomainHandle_t domain, const wchar_t *string)
 
NVTX_DECLSPEC nvtxDomainHandle_t NVTX_API nvtxDomainCreateA (const char *name)
 Register a NVTX domain.
 
NVTX_DECLSPEC nvtxDomainHandle_t NVTX_API nvtxDomainCreateW (const wchar_t *name)
 
NVTX_DECLSPEC void NVTX_API nvtxDomainDestroy (nvtxDomainHandle_t domain)
 Unregister a NVTX domain.
 

Functions for Generic Resource Naming

enum  nvtxResourceGenericType_t {
  NVTX_RESOURCE_TYPE_UNKNOWN = 0 , NVTX_RESOURCE_TYPE_GENERIC_POINTER = NVTX_RESOURCE_MAKE_TYPE(GENERIC, 1) , NVTX_RESOURCE_TYPE_GENERIC_HANDLE = NVTX_RESOURCE_MAKE_TYPE(GENERIC, 2) , NVTX_RESOURCE_TYPE_GENERIC_THREAD_NATIVE = NVTX_RESOURCE_MAKE_TYPE(GENERIC, 3) ,
  NVTX_RESOURCE_TYPE_GENERIC_THREAD_POSIX = NVTX_RESOURCE_MAKE_TYPE(GENERIC, 4)
}
 Generic resource type for when a resource class is not available. More...
 
NVTX_DECLSPEC nvtxResourceHandle_t NVTX_API nvtxDomainResourceCreate (nvtxDomainHandle_t domain, nvtxResourceAttributes_t *attribs)
 Create a resource object to track and associate data with OS and middleware objects.
 

Macro Definition Documentation

◆ NVTX_API

#define NVTX_API

Definition at line 214 of file nvToolsExt.h.

◆ NVTX_DECLSPEC

#define NVTX_DECLSPEC   NVTX_INLINE_STATIC

Definition at line 332 of file nvToolsExt.h.

◆ NVTX_DYNAMIC_EXPORT

#define NVTX_DYNAMIC_EXPORT   __attribute__((visibility("default")))

Definition at line 216 of file nvToolsExt.h.

◆ NVTX_ERR_INIT_ACCESS_LIBRARY

#define NVTX_ERR_INIT_ACCESS_LIBRARY   3

Definition at line 387 of file nvToolsExt.h.

◆ NVTX_ERR_INIT_FAILED_LIBRARY_ENTRY_POINT

#define NVTX_ERR_INIT_FAILED_LIBRARY_ENTRY_POINT   6

Definition at line 390 of file nvToolsExt.h.

◆ NVTX_ERR_INIT_LOAD_LIBRARY

#define NVTX_ERR_INIT_LOAD_LIBRARY   4

Definition at line 388 of file nvToolsExt.h.

◆ NVTX_ERR_INIT_LOAD_PROPERTY

#define NVTX_ERR_INIT_LOAD_PROPERTY   2

Definition at line 386 of file nvToolsExt.h.

◆ NVTX_ERR_INIT_MISSING_LIBRARY_ENTRY_POINT

#define NVTX_ERR_INIT_MISSING_LIBRARY_ENTRY_POINT   5

Definition at line 389 of file nvToolsExt.h.

◆ NVTX_ERR_NO_INJECTION_LIBRARY_AVAILABLE

#define NVTX_ERR_NO_INJECTION_LIBRARY_AVAILABLE   7

Definition at line 391 of file nvToolsExt.h.

◆ NVTX_EVENT_ATTRIB_STRUCT_SIZE

#define NVTX_EVENT_ATTRIB_STRUCT_SIZE   (NVTX_STATIC_CAST(uint16_t, sizeof(nvtxEventAttributes_t)))

Size of the nvtxEventAttributes_t structure.

Definition at line 396 of file nvToolsExt.h.

◆ NVTX_EXPORT_UNMANGLED_FUNCTION_NAME

#define NVTX_EXPORT_UNMANGLED_FUNCTION_NAME

Definition at line 218 of file nvToolsExt.h.

◆ NVTX_FAIL

#define NVTX_FAIL   1

Definition at line 385 of file nvToolsExt.h.

◆ NVTX_IMPL_GUARD

#define NVTX_IMPL_GUARD   /* Ensure other headers cannot be included directly */

Definition at line 1658 of file nvToolsExt.h.

◆ NVTX_INLINE_STATIC

#define NVTX_INLINE_STATIC   __inline__ static

Definition at line 237 of file nvToolsExt.h.

◆ NVTX_NO_PUSH_POP_TRACKING

#define NVTX_NO_PUSH_POP_TRACKING   (NVTX_STATIC_CAST(int, -2))

Definition at line 398 of file nvToolsExt.h.

◆ NVTX_NULLPTR

#define NVTX_NULLPTR   NULL

Definition at line 246 of file nvToolsExt.h.

◆ NVTX_REINTERPRET_CAST

#define NVTX_REINTERPRET_CAST (   type,
  value 
)    ((type)(value))

Definition at line 255 of file nvToolsExt.h.

◆ NVTX_SET_NAME_MANGLING_OPTIONS

#define NVTX_SET_NAME_MANGLING_OPTIONS

Definition at line 335 of file nvToolsExt.h.

◆ NVTX_STATIC_CAST

#define NVTX_STATIC_CAST (   type,
  value 
)    ((type)(value))

Definition at line 254 of file nvToolsExt.h.

◆ NVTX_SUCCESS

#define NVTX_SUCCESS   0

The NVTX library depends on stdint.h. If the build tool chain in use does not include stdint.h, then define NVTX_STDINT_TYPES_ALREADY_DEFINED and define the following types:

  • uint8_t
  • int8_t
  • uint16_t
  • int16_t
  • uint32_t
  • int32_t
  • uint64_t
  • int64_t
  • uintptr_t
  • intptr_t

Be sure to define NVTX_STDINT_TYPES_ALREADY_DEFINED if you are using your own definitions instead of stdint.h. Result Codes used for the NVTX tool loader.

Definition at line 384 of file nvToolsExt.h.

◆ NVTX_VERSION

#define NVTX_VERSION   3

Tools Extension API version

Definition at line 177 of file nvToolsExt.h.

◆ NVTX_VERSIONED_IDENTIFIER

#define NVTX_VERSIONED_IDENTIFIER (   NAME)    NVTX_VERSIONED_IDENTIFIER_L2(NAME, NVTX_VERSION)

Definition at line 350 of file nvToolsExt.h.

◆ NVTX_VERSIONED_IDENTIFIER_L2

#define NVTX_VERSIONED_IDENTIFIER_L2 (   NAME,
  VERSION 
)    NVTX_VERSIONED_IDENTIFIER_L3(NAME, VERSION)

Definition at line 349 of file nvToolsExt.h.

◆ NVTX_VERSIONED_IDENTIFIER_L3

#define NVTX_VERSIONED_IDENTIFIER_L3 (   NAME,
  VERSION 
)    NAME##_v##VERSION

Definition at line 348 of file nvToolsExt.h.

Typedef Documentation

◆ nvtxDomainHandle_t

typedef nvtxDomainRegistration* nvtxDomainHandle_t

Definition at line 414 of file nvToolsExt.h.

◆ nvtxDomainRegistration

typedef struct nvtxDomainRegistration_st nvtxDomainRegistration

Definition at line 404 of file nvToolsExt.h.

◆ nvtxRangeId_t

typedef uint64_t nvtxRangeId_t

Definition at line 400 of file nvToolsExt.h.

◆ nvtxStringHandle_t

typedef nvtxStringRegistration* nvtxStringHandle_t

Definition at line 428 of file nvToolsExt.h.

◆ nvtxStringRegistration

typedef struct nvtxStringRegistration_st nvtxStringRegistration

Definition at line 418 of file nvToolsExt.h.