NVTX C API Reference v3
NVIDIA Tools Extension Library
Loading...
Searching...
No Matches
Data Structures | Typedefs | Enumerations | Functions
Synchronization

Data Structures

struct  nvtxSyncUserAttributes_t
 User Defined Synchronization Object Attributes Structure. . More...
 

Typedefs

typedef enum nvtxResourceSyncLinuxType_t nvtxResourceSyncAndroidType_t
 Resource type values for Android come from Linux. More...
 
typedef struct nvtxSyncUser * nvtxSyncUser_t
 User Defined Synchronization Object Handle . . More...
 

Enumerations

enum  nvtxResourceSyncPosixThreadType_t {
  NVTX_RESOURCE_TYPE_SYNC_PTHREAD_MUTEX = NVTX_RESOURCE_MAKE_TYPE(SYNC_PTHREAD, 1) , NVTX_RESOURCE_TYPE_SYNC_PTHREAD_CONDITION = NVTX_RESOURCE_MAKE_TYPE(SYNC_PTHREAD, 2) , NVTX_RESOURCE_TYPE_SYNC_PTHREAD_RWLOCK = NVTX_RESOURCE_MAKE_TYPE(SYNC_PTHREAD, 3) , NVTX_RESOURCE_TYPE_SYNC_PTHREAD_BARRIER = NVTX_RESOURCE_MAKE_TYPE(SYNC_PTHREAD, 4) ,
  NVTX_RESOURCE_TYPE_SYNC_PTHREAD_SPINLOCK = NVTX_RESOURCE_MAKE_TYPE(SYNC_PTHREAD, 5) , NVTX_RESOURCE_TYPE_SYNC_PTHREAD_ONCE = NVTX_RESOURCE_MAKE_TYPE(SYNC_PTHREAD, 6)
}
 Resource type values for OSs with POSIX Thread API support. More...
 
enum  nvtxResourceSyncWindowsType_t {
  NVTX_RESOURCE_TYPE_SYNC_WINDOWS_MUTEX = NVTX_RESOURCE_MAKE_TYPE(SYNC_OS, 1) , NVTX_RESOURCE_TYPE_SYNC_WINDOWS_SEMAPHORE = NVTX_RESOURCE_MAKE_TYPE(SYNC_OS, 2) , NVTX_RESOURCE_TYPE_SYNC_WINDOWS_EVENT = NVTX_RESOURCE_MAKE_TYPE(SYNC_OS, 3) , NVTX_RESOURCE_TYPE_SYNC_WINDOWS_CRITICAL_SECTION = NVTX_RESOURCE_MAKE_TYPE(SYNC_OS, 4) ,
  NVTX_RESOURCE_TYPE_SYNC_WINDOWS_SRWLOCK = NVTX_RESOURCE_MAKE_TYPE(SYNC_OS, 5)
}
 Resource type values for Windows OSs. More...
 
enum  nvtxResourceSyncLinuxType_t {
  NVTX_RESOURCE_TYPE_SYNC_LINUX_MUTEX = NVTX_RESOURCE_MAKE_TYPE(SYNC_OS, 1) , NVTX_RESOURCE_TYPE_SYNC_LINUX_FUTEX = NVTX_RESOURCE_MAKE_TYPE(SYNC_OS, 2) , NVTX_RESOURCE_TYPE_SYNC_LINUX_SEMAPHORE = NVTX_RESOURCE_MAKE_TYPE(SYNC_OS, 3) , NVTX_RESOURCE_TYPE_SYNC_LINUX_COMPLETION = NVTX_RESOURCE_MAKE_TYPE(SYNC_OS, 4) ,
  NVTX_RESOURCE_TYPE_SYNC_LINUX_SPINLOCK = NVTX_RESOURCE_MAKE_TYPE(SYNC_OS, 5) , NVTX_RESOURCE_TYPE_SYNC_LINUX_SEQLOCK = NVTX_RESOURCE_MAKE_TYPE(SYNC_OS, 6) , NVTX_RESOURCE_TYPE_SYNC_LINUX_RCU = NVTX_RESOURCE_MAKE_TYPE(SYNC_OS, 7)
}
 Resource type values for Linux and Linux derived OSs such as Android. More...
 

Functions

NVTX_DECLSPEC nvtxSyncUser_t NVTX_API nvtxDomainSyncUserCreate (nvtxDomainHandle_t domain, const nvtxSyncUserAttributes_t *attribs)
 Create a user defined synchronization object This is used to track non-OS synchronization working with spinlocks and atomics. More...
 
NVTX_DECLSPEC void NVTX_API nvtxDomainSyncUserDestroy (nvtxSyncUser_t handle)
 Destroy a user defined synchronization object This is used to track non-OS synchronization working with spinlocks and atomics. More...
 
NVTX_DECLSPEC void NVTX_API nvtxDomainSyncUserAcquireStart (nvtxSyncUser_t handle)
 Signal to tools that an attempt to acquire a user defined synchronization object. More...
 
NVTX_DECLSPEC void NVTX_API nvtxDomainSyncUserAcquireFailed (nvtxSyncUser_t handle)
 Signal to tools of failure in acquiring a user defined synchronization object This should be called after nvtxDomainSyncUserAcquireStart. More...
 
NVTX_DECLSPEC void NVTX_API nvtxDomainSyncUserAcquireSuccess (nvtxSyncUser_t handle)
 Signal to tools of success in acquiring a user defined synchronization object This should be called after nvtxDomainSyncUserAcquireStart. More...
 
NVTX_DECLSPEC void NVTX_API nvtxDomainSyncUserReleasing (nvtxSyncUser_t handle)
 Signal to tools of releasing a reservation on user defined synchronization object This should be called after nvtxDomainSyncUserAcquireSuccess. More...
 

Detailed Description

See page Synchronization.

Typedef Documentation

◆ nvtxResourceSyncAndroidType_t

Resource type values for Android come from Linux.

See also
nvtxResourceSyncLinuxType_t nvtxResourceSyncPosixThreadType_t

Definition at line 142 of file nvToolsExtSync.h.

◆ nvtxSyncUser_t

typedef struct nvtxSyncUser* nvtxSyncUser_t

User Defined Synchronization Object Handle . .

This structure is opaque to the user and is used as a handle to reference a user defined syncrhonization object. The tools will return a pointer through the API for the application to hold on it's behalf to reference the string in the future.

Definition at line 152 of file nvToolsExtSync.h.

Enumeration Type Documentation

◆ nvtxResourceSyncLinuxType_t

Resource type values for Linux and Linux derived OSs such as Android.

See also
nvtxResourceSyncPosixThreadType_t

Definition at line 126 of file nvToolsExtSync.h.

◆ nvtxResourceSyncPosixThreadType_t

Resource type values for OSs with POSIX Thread API support.

Definition at line 101 of file nvToolsExtSync.h.

◆ nvtxResourceSyncWindowsType_t

Resource type values for Windows OSs.

Definition at line 113 of file nvToolsExtSync.h.

Function Documentation

◆ nvtxDomainSyncUserAcquireFailed()

NVTX_DECLSPEC void NVTX_API nvtxDomainSyncUserAcquireFailed ( nvtxSyncUser_t  handle)

Signal to tools of failure in acquiring a user defined synchronization object This should be called after nvtxDomainSyncUserAcquireStart.

Parameters
handle- A handle to the object to operate on.
See also
nvtxDomainSyncUserCreate nvtxDomainSyncUserDestroy nvtxDomainSyncUserAcquireStart nvtxDomainSyncUserAcquireFailed nvtxDomainSyncUserAcquireSuccess nvtxDomainSyncUserReleasing
Version
\NVTX_VERSION_2

◆ nvtxDomainSyncUserAcquireStart()

NVTX_DECLSPEC void NVTX_API nvtxDomainSyncUserAcquireStart ( nvtxSyncUser_t  handle)

Signal to tools that an attempt to acquire a user defined synchronization object.

Parameters
handle- A handle to the object to operate on.
See also
nvtxDomainSyncUserCreate nvtxDomainSyncUserDestroy nvtxDomainSyncUserAcquireStart nvtxDomainSyncUserAcquireFailed nvtxDomainSyncUserAcquireSuccess nvtxDomainSyncUserReleasing
Version
\NVTX_VERSION_2

◆ nvtxDomainSyncUserAcquireSuccess()

NVTX_DECLSPEC void NVTX_API nvtxDomainSyncUserAcquireSuccess ( nvtxSyncUser_t  handle)

Signal to tools of success in acquiring a user defined synchronization object This should be called after nvtxDomainSyncUserAcquireStart.

Parameters
handle- A handle to the object to operate on.
See also
nvtxDomainSyncUserCreate nvtxDomainSyncUserDestroy nvtxDomainSyncUserAcquireStart nvtxDomainSyncUserAcquireFailed nvtxDomainSyncUserAcquireSuccess nvtxDomainSyncUserReleasing
Version
\NVTX_VERSION_2

◆ nvtxDomainSyncUserCreate()

NVTX_DECLSPEC nvtxSyncUser_t NVTX_API nvtxDomainSyncUserCreate ( nvtxDomainHandle_t  domain,
const nvtxSyncUserAttributes_t *  attribs 
)

Create a user defined synchronization object This is used to track non-OS synchronization working with spinlocks and atomics.

Parameters
domain- Domain to own the resource
attribs- A structure to assign multiple attributes to the object.
Returns
A handle that represents the newly created user defined synchronization object.
See also
nvtxDomainSyncUserCreate nvtxDomainSyncUserDestroy nvtxDomainSyncUserAcquireStart nvtxDomainSyncUserAcquireFailed nvtxDomainSyncUserAcquireSuccess nvtxDomainSyncUserReleasing
Version
\NVTX_VERSION_2

◆ nvtxDomainSyncUserDestroy()

NVTX_DECLSPEC void NVTX_API nvtxDomainSyncUserDestroy ( nvtxSyncUser_t  handle)

Destroy a user defined synchronization object This is used to track non-OS synchronization working with spinlocks and atomics.

Parameters
handle- A handle to the object to operate on.
See also
nvtxDomainSyncUserCreate nvtxDomainSyncUserDestroy nvtxDomainSyncUserAcquireStart nvtxDomainSyncUserAcquireFailed nvtxDomainSyncUserAcquireSuccess nvtxDomainSyncUserReleasing
Version
\NVTX_VERSION_2

◆ nvtxDomainSyncUserReleasing()

NVTX_DECLSPEC void NVTX_API nvtxDomainSyncUserReleasing ( nvtxSyncUser_t  handle)

Signal to tools of releasing a reservation on user defined synchronization object This should be called after nvtxDomainSyncUserAcquireSuccess.

Parameters
handle- A handle to the object to operate on.
See also
nvtxDomainSyncUserCreate nvtxDomainSyncUserDestroy nvtxDomainSyncUserAcquireStart nvtxDomainSyncUserAcquireFailed nvtxDomainSyncUserAcquireSuccess nvtxDomainSyncUserReleasing
Version
\NVTX_VERSION_2