HPCToolkit
hpcrun_dlfns.c File Reference
#include "hpcrun_dlfns.h"
#include "fnbounds_interface.h"
#include "sample_event.h"
#include "thread_data.h"
#include <messages/messages.h>
#include <lib/prof-lean/spinlock.h>
#include <monitor.h>
Include dependency graph for hpcrun_dlfns.c:

Go to the source code of this file.

Functions

long hpcrun_dlopen_pending (void)
 
static void hpcrun_dlopen_write_lock (void)
 
static void hpcrun_dlopen_write_unlock (void)
 
static void hpcrun_dlopen_downgrade_lock (void)
 
int hpcrun_dlopen_read_lock (void)
 
void hpcrun_dlopen_read_unlock (void)
 
void hpcrun_pre_dlopen (const char *path, int flags)
 
void hpcrun_dlopen (const char *module_name, int flags, void *handle)
 
void hpcrun_dlclose (void *handle)
 
void hpcrun_post_dlclose (void *handle, int ret)
 

Variables

static spinlock_t dlopen_lock = SPINLOCK_UNLOCKED
 
static atomic_long dlopen_num_readers = ATOMIC_VAR_INIT(0)
 
static volatile long dlopen_num_writers = 0
 
static int dlopen_writer_tid = -1
 
static atomic_long num_dlopen_pending = ATOMIC_VAR_INIT(0)
 

Function Documentation

◆ hpcrun_dlclose()

void hpcrun_dlclose ( void *  handle)

Definition at line 213 of file hpcrun_dlfns.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ hpcrun_dlopen()

void hpcrun_dlopen ( const char *  module_name,
int  flags,
void *  handle 
)

Definition at line 193 of file hpcrun_dlfns.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ hpcrun_dlopen_downgrade_lock()

static void hpcrun_dlopen_downgrade_lock ( void  )
static

Definition at line 146 of file hpcrun_dlfns.c.

Here is the caller graph for this function:

◆ hpcrun_dlopen_pending()

long hpcrun_dlopen_pending ( void  )

Definition at line 105 of file hpcrun_dlfns.c.

Here is the caller graph for this function:

◆ hpcrun_dlopen_read_lock()

int hpcrun_dlopen_read_lock ( void  )

Definition at line 156 of file hpcrun_dlfns.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ hpcrun_dlopen_read_unlock()

void hpcrun_dlopen_read_unlock ( void  )

Definition at line 172 of file hpcrun_dlfns.c.

Here is the caller graph for this function:

◆ hpcrun_dlopen_write_lock()

static void hpcrun_dlopen_write_lock ( void  )
static

Definition at line 114 of file hpcrun_dlfns.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ hpcrun_dlopen_write_unlock()

static void hpcrun_dlopen_write_unlock ( void  )
static

Definition at line 137 of file hpcrun_dlfns.c.

Here is the caller graph for this function:

◆ hpcrun_post_dlclose()

void hpcrun_post_dlclose ( void *  handle,
int  ret 
)

Definition at line 225 of file hpcrun_dlfns.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ hpcrun_pre_dlopen()

void hpcrun_pre_dlopen ( const char *  path,
int  flags 
)

Definition at line 179 of file hpcrun_dlfns.c.

Here is the call graph for this function:
Here is the caller graph for this function:

Variable Documentation

◆ dlopen_lock

spinlock_t dlopen_lock = SPINLOCK_UNLOCKED
static

Definition at line 96 of file hpcrun_dlfns.c.

◆ dlopen_num_readers

atomic_long dlopen_num_readers = ATOMIC_VAR_INIT(0)
static

Definition at line 97 of file hpcrun_dlfns.c.

◆ dlopen_num_writers

volatile long dlopen_num_writers = 0
static

Definition at line 98 of file hpcrun_dlfns.c.

◆ dlopen_writer_tid

int dlopen_writer_tid = -1
static

Definition at line 99 of file hpcrun_dlfns.c.

◆ num_dlopen_pending

atomic_long num_dlopen_pending = ATOMIC_VAR_INIT(0)
static

Definition at line 100 of file hpcrun_dlfns.c.