ARGOBOTS  dce6e727ffc4ca5b3ffc04cb9517c6689be51ec5
Data Structures | Macros | Typedefs | Enumerations | Functions | Variables
abti.h File Reference
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#include <inttypes.h>
#include <string.h>
#include <limits.h>
#include "abt_config.h"
#include "abt.h"
#include "abtu.h"
#include "abti_error.h"
#include "abti_valgrind.h"
#include "abtd.h"
#include "abti_sync_lifo.h"
#include "abti_mem_pool.h"
#include "abti_timer.h"
#include "abti_log.h"
#include "abti_local.h"
#include "abti_global.h"
#include "abti_self.h"
#include "abti_pool.h"
#include "abti_pool_config.h"
#include "abti_pool_user_def.h"
#include "abti_sched.h"
#include "abti_sched_config.h"
#include "abti_stream.h"
#include "abti_thread.h"
#include "abti_unit.h"
#include "abti_tool.h"
#include "abti_event.h"
#include "abti_ythread.h"
#include "abti_thread_attr.h"
#include "abti_waitlist.h"
#include "abti_mutex.h"
#include "abti_mutex_attr.h"
#include "abti_cond.h"
#include "abti_rwlock.h"
#include "abti_eventual.h"
#include "abti_future.h"
#include "abti_barrier.h"
#include "abti_stream_barrier.h"
#include "abti_mem.h"
#include "abti_key.h"
Include dependency graph for abti.h:

Go to the source code of this file.

Data Structures

struct  ABTI_waitlist
 
struct  ABTI_mutex_attr
 
struct  ABTI_mutex
 
struct  ABTI_atomic_unit_to_thread
 
struct  ABTI_unit_to_thread_entry
 
struct  ABTI_global
 
struct  ABTI_local_func
 
struct  ABTI_xstream
 
struct  ABTI_sched
 
struct  ABTI_sched_config
 
struct  ABTI_pool_required_def
 
struct  ABTI_pool_optional_def
 
struct  ABTI_pool_deprecated_def
 
struct  ABTI_pool_old_def
 
struct  ABTI_pool
 
struct  ABTI_pool_user_def
 
struct  ABTI_pool_config
 
struct  ABTI_thread
 
struct  ABTI_thread_attr
 
struct  ABTI_thread_mig_data
 
struct  ABTI_ythread
 
struct  ABTI_key
 
struct  ABTI_ktelem
 
struct  ABTI_ktable
 
struct  ABTI_cond
 
struct  ABTI_rwlock
 
struct  ABTI_eventual
 
struct  ABTI_future
 
struct  ABTI_barrier
 
struct  ABTI_xstream_barrier
 
struct  ABTI_timer
 

Macros

#define ABTI_IS_ERROR_CHECK_ENABLED   1
 
#define ABTI_IS_EXT_THREAD_ENABLED   1
 
#define ABTI_IS_UB_ASSERT_ENABLED   0
 
#define ABTI_SCHED_NUM_PRIO   3
 
#define ABTI_SCHED_REQ_FINISH   (1 << 0)
 
#define ABTI_SCHED_REQ_EXIT   (1 << 1)
 
#define ABTI_SCHED_REQ_REPLACE   (1 << 2)
 
#define ABTI_THREAD_REQ_JOIN   (1 << 0)
 
#define ABTI_THREAD_REQ_CANCEL   (1 << 1)
 
#define ABTI_THREAD_REQ_MIGRATE   (1 << 2)
 
#define ABTI_THREAD_INIT_ID   0xFFFFFFFFFFFFFFFF
 
#define ABTI_TASK_INIT_ID   0xFFFFFFFFFFFFFFFF
 
#define ABTI_INDENT   4
 
#define ABTI_UNIT_HASH_TABLE_SIZE_EXP   8 /* N -> 2^N table entries */
 
#define ABTI_UNIT_HASH_TABLE_SIZE   ((size_t)(1 << ABTI_UNIT_HASH_TABLE_SIZE_EXP))
 
#define ABTI_STACK_CHECK_TYPE_NONE   0
 
#define ABTI_STACK_CHECK_TYPE_CANARY   1
 
#define ABTI_STACK_CHECK_TYPE_MPROTECT   2
 
#define ABTI_STACK_CHECK_TYPE_MPROTECT_STRICT   3
 
#define ABTI_THREAD_TYPE_EXT   ((ABTI_thread_type)0)
 
#define ABTI_THREAD_TYPE_THREAD   ((ABTI_thread_type)(0x1 << 0))
 
#define ABTI_THREAD_TYPE_ROOT   ((ABTI_thread_type)(0x1 << 1))
 
#define ABTI_THREAD_TYPE_PRIMARY   ((ABTI_thread_type)(0x1 << 2))
 
#define ABTI_THREAD_TYPE_MAIN_SCHED   ((ABTI_thread_type)(0x1 << 3))
 
#define ABTI_THREAD_TYPE_YIELDABLE   ((ABTI_thread_type)(0x1 << 4))
 
#define ABTI_THREAD_TYPE_NAMED   ((ABTI_thread_type)(0x1 << 5))
 
#define ABTI_THREAD_TYPE_MIGRATABLE   ((ABTI_thread_type)(0x1 << 6))
 
#define ABTI_THREAD_TYPE_MEM_MEMPOOL_DESC   ((ABTI_thread_type)(0x1 << 7))
 
#define ABTI_THREAD_TYPE_MEM_MALLOC_DESC   ((ABTI_thread_type)(0x1 << 8))
 
#define ABTI_THREAD_TYPE_MEM_MEMPOOL_DESC_STACK   ((ABTI_thread_type)(0x1 << 9))
 
#define ABTI_THREAD_TYPE_MEM_MALLOC_DESC_STACK   ((ABTI_thread_type)(0x1 << 10))
 
#define ABTI_THREAD_TYPE_MEM_MEMPOOL_DESC_MEMPOOL_LAZY_STACK   ((ABTI_thread_type)(0x1 << 11))
 
#define ABTI_THREAD_TYPE_MEM_MALLOC_DESC_MEMPOOL_LAZY_STACK   ((ABTI_thread_type)(0x1 << 12))
 
#define ABTI_THREAD_TYPES_MEM
 
#define ABTI_MUTEX_ATTR_NONE   0
 
#define ABTI_MUTEX_ATTR_RECURSIVE   1
 
#define ABTI_UNUSED(a)   (void)(a)
 

Typedefs

typedef struct ABTI_global ABTI_global
 
typedef struct ABTI_local ABTI_local
 
typedef struct ABTI_local_func ABTI_local_func
 
typedef struct ABTI_xstream ABTI_xstream
 
typedef enum ABTI_xstream_type ABTI_xstream_type
 
typedef struct ABTI_sched ABTI_sched
 
typedef struct ABTI_sched_config ABTI_sched_config
 
typedef enum ABTI_sched_used ABTI_sched_used
 
typedef void * ABTI_sched_id
 
typedef uintptr_t ABTI_sched_kind
 
typedef struct ABTI_pool ABTI_pool
 
typedef struct ABTI_pool_required_def ABTI_pool_required_def
 
typedef struct ABTI_pool_optional_def ABTI_pool_optional_def
 
typedef struct ABTI_pool_deprecated_def ABTI_pool_deprecated_def
 
typedef struct ABTI_pool_old_def ABTI_pool_old_def
 
typedef struct ABTI_pool_user_def ABTI_pool_user_def
 
typedef struct ABTI_pool_config ABTI_pool_config
 
typedef struct ABTI_thread ABTI_thread
 
typedef struct ABTI_thread_attr ABTI_thread_attr
 
typedef struct ABTI_ythread ABTI_ythread
 
typedef struct ABTI_thread_mig_data ABTI_thread_mig_data
 
typedef uint32_t ABTI_thread_type
 
typedef struct ABTI_key ABTI_key
 
typedef struct ABTI_ktelem ABTI_ktelem
 
typedef struct ABTI_ktable ABTI_ktable
 
typedef struct ABTI_waitlist ABTI_waitlist
 
typedef struct ABTI_mutex_attr ABTI_mutex_attr
 
typedef struct ABTI_mutex ABTI_mutex
 
typedef struct ABTI_cond ABTI_cond
 
typedef struct ABTI_rwlock ABTI_rwlock
 
typedef struct ABTI_eventual ABTI_eventual
 
typedef struct ABTI_future ABTI_future
 
typedef struct ABTI_barrier ABTI_barrier
 
typedef struct ABTI_xstream_barrier ABTI_xstream_barrier
 
typedef struct ABTI_timer ABTI_timer
 
typedef struct ABTI_native_thread_id_opaque * ABTI_native_thread_id
 
typedef struct ABTI_thread_id_opaque * ABTI_thread_id
 
typedef struct ABTI_atomic_unit_to_thread ABTI_atomic_unit_to_thread
 
typedef struct ABTI_unit_to_thread_entry ABTI_unit_to_thread_entry
 
typedef enum ABTI_stack_guard ABTI_stack_guard
 

Enumerations

enum  ABTI_xstream_type { ABTI_XSTREAM_TYPE_PRIMARY, ABTI_XSTREAM_TYPE_SECONDARY }
 
enum  ABTI_sched_used { ABTI_SCHED_NOT_USED, ABTI_SCHED_MAIN, ABTI_SCHED_IN_POOL }
 
enum  ABTI_stack_guard { ABTI_STACK_GUARD_NONE = 0, ABTI_STACK_GUARD_MPROTECT, ABTI_STACK_GUARD_MPROTECT_STRICT }
 

Functions

ABT_bool ABTI_initialized (void)
 
ABTU_ret_err int ABTI_xstream_create_primary (ABTI_global *p_global, ABTI_xstream **pp_xstream)
 
void ABTI_xstream_start_primary (ABTI_global *p_global, ABTI_xstream **pp_local_xstream, ABTI_xstream *p_xstream, ABTI_ythread *p_ythread)
 
void ABTI_xstream_free (ABTI_global *p_global, ABTI_local *p_local, ABTI_xstream *p_xstream, ABT_bool force_free)
 
void ABTI_xstream_schedule (void *p_arg)
 
void ABTI_xstream_check_events (ABTI_xstream *p_xstream, ABTI_sched *p_sched)
 
void ABTI_xstream_print (ABTI_xstream *p_xstream, FILE *p_os, int indent, ABT_bool print_sub)
 
ABT_sched_defABTI_sched_get_basic_def (void)
 
ABT_sched_defABTI_sched_get_basic_wait_def (void)
 
ABT_sched_defABTI_sched_get_prio_def (void)
 
ABT_sched_defABTI_sched_get_randws_def (void)
 
void ABTI_sched_finish (ABTI_sched *p_sched)
 
void ABTI_sched_exit (ABTI_sched *p_sched)
 
ABTU_ret_err int ABTI_sched_create_basic (ABT_sched_predef predef, int num_pools, ABT_pool *pools, ABTI_sched_config *p_config, ABTI_sched **pp_newsched)
 
void ABTI_sched_free (ABTI_global *p_global, ABTI_local *p_local, ABTI_sched *p_sched, ABT_bool force_free)
 
ABTU_ret_err int ABTI_sched_get_migration_pool (ABTI_sched *, ABTI_pool *, ABTI_pool **)
 
ABT_bool ABTI_sched_has_to_stop (ABTI_sched *p_sched)
 
ABT_bool ABTI_sched_has_unit (ABTI_sched *p_sched)
 
void ABTI_sched_print (ABTI_sched *p_sched, FILE *p_os, int indent, ABT_bool print_sub)
 
void ABTI_sched_reset_id (void)
 
ABTU_ret_err int ABTI_sched_config_read (const ABTI_sched_config *p_config, int idx, void *p_val)
 
ABTU_ret_err int ABTI_pool_create_basic (ABT_pool_kind kind, ABT_pool_access access, ABT_bool automatic, ABTI_pool **pp_newpool)
 
void ABTI_pool_free (ABTI_pool *p_pool)
 
ABTU_ret_err int ABTI_pool_get_fifo_def (ABT_pool_access access, ABTI_pool_required_def *p_required_def, ABTI_pool_optional_def *p_optional_def, ABTI_pool_deprecated_def *p_deprecated_def)
 
ABTU_ret_err int ABTI_pool_get_fifo_wait_def (ABT_pool_access access, ABTI_pool_required_def *p_required_def, ABTI_pool_optional_def *p_optional_def, ABTI_pool_deprecated_def *p_deprecated_def)
 
ABTU_ret_err int ABTI_pool_get_randws_def (ABT_pool_access access, ABTI_pool_required_def *p_required_def, ABTI_pool_optional_def *p_optional_def, ABTI_pool_deprecated_def *p_deprecated_def)
 
void ABTI_pool_print (ABTI_pool *p_pool, FILE *p_os, int indent)
 
void ABTI_pool_reset_id (void)
 
ABTU_ret_err int ABTI_pool_config_read (const ABTI_pool_config *p_config, int key, void *p_val)
 
ABT_bool ABTI_pool_user_def_is_new (const ABT_pool_user_def def)
 
void ABTI_unit_init_hash_table (ABTI_global *p_global)
 
void ABTI_unit_finalize_hash_table (ABTI_global *p_global)
 
ABTU_ret_err int ABTI_unit_map_thread (ABTI_global *p_global, ABT_unit unit, ABTI_thread *p_thread)
 
void ABTI_unit_unmap_thread (ABTI_global *p_global, ABT_unit unit)
 
ABTI_threadABTI_unit_get_thread_from_user_defined_unit (ABTI_global *p_global, ABT_unit unit)
 
ABTU_ret_err int ABTI_thread_get_mig_data (ABTI_global *p_global, ABTI_local *p_local, ABTI_thread *p_thread, ABTI_thread_mig_data **pp_mig_data)
 
ABTU_ret_err int ABTI_thread_revive (ABTI_global *p_global, ABTI_local *p_local, ABTI_pool *p_pool, void(*thread_func)(void *), void *arg, ABTI_thread *p_thread)
 
void ABTI_thread_join (ABTI_local **pp_local, ABTI_thread *p_thread)
 
void ABTI_thread_free (ABTI_global *p_global, ABTI_local *p_local, ABTI_thread *p_thread)
 
void ABTI_thread_handle_request_cancel (ABTI_global *p_global, ABTI_xstream *p_local_xstream, ABTI_thread *p_thread)
 
ABTU_ret_err int ABTI_thread_handle_request_migrate (ABTI_global *p_global, ABTI_local *p_local, ABTI_thread *p_thread)
 
void ABTI_thread_print (ABTI_thread *p_thread, FILE *p_os, int indent)
 
void ABTI_thread_reset_id (void)
 
ABT_unit_id ABTI_thread_get_id (ABTI_thread *p_thread)
 
ABTU_ret_err int ABTI_ythread_create_root (ABTI_global *p_global, ABTI_local *p_local, ABTI_xstream *p_xstream, ABTI_ythread **pp_root_ythread)
 
ABTU_ret_err int ABTI_ythread_create_primary (ABTI_global *p_global, ABTI_local *p_local, ABTI_xstream *p_xstream, ABTI_ythread **p_ythread)
 
ABTU_ret_err int ABTI_ythread_create_main_sched (ABTI_global *p_global, ABTI_local *p_local, ABTI_xstream *p_xstream, ABTI_sched *p_sched)
 
ABTU_ret_err int ABTI_ythread_create_sched (ABTI_global *p_global, ABTI_local *p_local, ABTI_pool *p_pool, ABTI_sched *p_sched)
 
void ABTI_ythread_free_primary (ABTI_global *p_global, ABTI_local *p_local, ABTI_ythread *p_ythread)
 
void ABTI_ythread_free_root (ABTI_global *p_global, ABTI_local *p_local, ABTI_ythread *p_ythread)
 
void ABTI_ythread_print_stack (ABTI_global *p_global, ABTI_ythread *p_ythread, FILE *p_os)
 
void ABTI_thread_attr_print (ABTI_thread_attr *p_attr, FILE *p_os, int indent)
 
ABTU_ret_err int ABTI_thread_attr_dup (const ABTI_thread_attr *p_attr, ABTI_thread_attr **pp_dup_attr) ABTU_ret_err
 
void ABTI_ktable_free (ABTI_global *p_global, ABTI_local *p_local, ABTI_ktable *p_ktable)
 
void ABTI_info_print_config (ABTI_global *p_global, FILE *fp)
 
void ABTI_info_check_print_all_thread_stacks (void)
 

Variables

ABTI_globalgp_ABTI_global
 
ABTI_local_func gp_ABTI_local_func
 
ABTD_XSTREAM_LOCAL ABTI_locallp_ABTI_local
 

Macro Definition Documentation

◆ ABTI_INDENT

#define ABTI_INDENT   4

Definition at line 55 of file abti.h.

◆ ABTI_IS_ERROR_CHECK_ENABLED

#define ABTI_IS_ERROR_CHECK_ENABLED   1

Definition at line 20 of file abti.h.

◆ ABTI_IS_EXT_THREAD_ENABLED

#define ABTI_IS_EXT_THREAD_ENABLED   1

Definition at line 28 of file abti.h.

◆ ABTI_IS_UB_ASSERT_ENABLED

#define ABTI_IS_UB_ASSERT_ENABLED   0

Definition at line 32 of file abti.h.

◆ ABTI_MUTEX_ATTR_NONE

#define ABTI_MUTEX_ATTR_NONE   0

Definition at line 123 of file abti.h.

◆ ABTI_MUTEX_ATTR_RECURSIVE

#define ABTI_MUTEX_ATTR_RECURSIVE   1

Definition at line 125 of file abti.h.

◆ ABTI_SCHED_NUM_PRIO

#define ABTI_SCHED_NUM_PRIO   3

Definition at line 42 of file abti.h.

◆ ABTI_SCHED_REQ_EXIT

#define ABTI_SCHED_REQ_EXIT   (1 << 1)

Definition at line 45 of file abti.h.

◆ ABTI_SCHED_REQ_FINISH

#define ABTI_SCHED_REQ_FINISH   (1 << 0)

Definition at line 44 of file abti.h.

◆ ABTI_SCHED_REQ_REPLACE

#define ABTI_SCHED_REQ_REPLACE   (1 << 2)

Definition at line 46 of file abti.h.

◆ ABTI_STACK_CHECK_TYPE_CANARY

#define ABTI_STACK_CHECK_TYPE_CANARY   1

Definition at line 61 of file abti.h.

◆ ABTI_STACK_CHECK_TYPE_MPROTECT

#define ABTI_STACK_CHECK_TYPE_MPROTECT   2

Definition at line 62 of file abti.h.

◆ ABTI_STACK_CHECK_TYPE_MPROTECT_STRICT

#define ABTI_STACK_CHECK_TYPE_MPROTECT_STRICT   3

Definition at line 63 of file abti.h.

◆ ABTI_STACK_CHECK_TYPE_NONE

#define ABTI_STACK_CHECK_TYPE_NONE   0

Definition at line 60 of file abti.h.

◆ ABTI_TASK_INIT_ID

#define ABTI_TASK_INIT_ID   0xFFFFFFFFFFFFFFFF

Definition at line 53 of file abti.h.

◆ ABTI_THREAD_INIT_ID

#define ABTI_THREAD_INIT_ID   0xFFFFFFFFFFFFFFFF

Definition at line 52 of file abti.h.

◆ ABTI_THREAD_REQ_CANCEL

#define ABTI_THREAD_REQ_CANCEL   (1 << 1)

Definition at line 49 of file abti.h.

◆ ABTI_THREAD_REQ_JOIN

#define ABTI_THREAD_REQ_JOIN   (1 << 0)

Definition at line 48 of file abti.h.

◆ ABTI_THREAD_REQ_MIGRATE

#define ABTI_THREAD_REQ_MIGRATE   (1 << 2)

Definition at line 50 of file abti.h.

◆ ABTI_THREAD_TYPE_EXT

#define ABTI_THREAD_TYPE_EXT   ((ABTI_thread_type)0)

Definition at line 82 of file abti.h.

◆ ABTI_THREAD_TYPE_MAIN_SCHED

#define ABTI_THREAD_TYPE_MAIN_SCHED   ((ABTI_thread_type)(0x1 << 3))

Definition at line 86 of file abti.h.

◆ ABTI_THREAD_TYPE_MEM_MALLOC_DESC

#define ABTI_THREAD_TYPE_MEM_MALLOC_DESC   ((ABTI_thread_type)(0x1 << 8))

Definition at line 97 of file abti.h.

◆ ABTI_THREAD_TYPE_MEM_MALLOC_DESC_MEMPOOL_LAZY_STACK

#define ABTI_THREAD_TYPE_MEM_MALLOC_DESC_MEMPOOL_LAZY_STACK   ((ABTI_thread_type)(0x1 << 12))

Definition at line 112 of file abti.h.

◆ ABTI_THREAD_TYPE_MEM_MALLOC_DESC_STACK

#define ABTI_THREAD_TYPE_MEM_MALLOC_DESC_STACK   ((ABTI_thread_type)(0x1 << 10))

Definition at line 103 of file abti.h.

◆ ABTI_THREAD_TYPE_MEM_MEMPOOL_DESC

#define ABTI_THREAD_TYPE_MEM_MEMPOOL_DESC   ((ABTI_thread_type)(0x1 << 7))

Definition at line 94 of file abti.h.

◆ ABTI_THREAD_TYPE_MEM_MEMPOOL_DESC_MEMPOOL_LAZY_STACK

#define ABTI_THREAD_TYPE_MEM_MEMPOOL_DESC_MEMPOOL_LAZY_STACK   ((ABTI_thread_type)(0x1 << 11))

Definition at line 107 of file abti.h.

◆ ABTI_THREAD_TYPE_MEM_MEMPOOL_DESC_STACK

#define ABTI_THREAD_TYPE_MEM_MEMPOOL_DESC_STACK   ((ABTI_thread_type)(0x1 << 9))

Definition at line 100 of file abti.h.

◆ ABTI_THREAD_TYPE_MIGRATABLE

#define ABTI_THREAD_TYPE_MIGRATABLE   ((ABTI_thread_type)(0x1 << 6))

Definition at line 89 of file abti.h.

◆ ABTI_THREAD_TYPE_NAMED

#define ABTI_THREAD_TYPE_NAMED   ((ABTI_thread_type)(0x1 << 5))

Definition at line 88 of file abti.h.

◆ ABTI_THREAD_TYPE_PRIMARY

#define ABTI_THREAD_TYPE_PRIMARY   ((ABTI_thread_type)(0x1 << 2))

Definition at line 85 of file abti.h.

◆ ABTI_THREAD_TYPE_ROOT

#define ABTI_THREAD_TYPE_ROOT   ((ABTI_thread_type)(0x1 << 1))

Definition at line 84 of file abti.h.

◆ ABTI_THREAD_TYPE_THREAD

#define ABTI_THREAD_TYPE_THREAD   ((ABTI_thread_type)(0x1 << 0))

Definition at line 83 of file abti.h.

◆ ABTI_THREAD_TYPE_YIELDABLE

#define ABTI_THREAD_TYPE_YIELDABLE   ((ABTI_thread_type)(0x1 << 4))

Definition at line 87 of file abti.h.

◆ ABTI_THREAD_TYPES_MEM

#define ABTI_THREAD_TYPES_MEM
Value:
ABTI_THREAD_TYPE_MEM_MEMPOOL_DESC_STACK | \
ABTI_THREAD_TYPE_MEM_MALLOC_DESC_STACK | \
ABTI_THREAD_TYPE_MEM_MEMPOOL_DESC_MEMPOOL_LAZY_STACK | \
ABTI_THREAD_TYPE_MEM_MALLOC_DESC_MEMPOOL_LAZY_STACK)

Definition at line 115 of file abti.h.

◆ ABTI_UNIT_HASH_TABLE_SIZE

#define ABTI_UNIT_HASH_TABLE_SIZE   ((size_t)(1 << ABTI_UNIT_HASH_TABLE_SIZE_EXP))

Definition at line 58 of file abti.h.

◆ ABTI_UNIT_HASH_TABLE_SIZE_EXP

#define ABTI_UNIT_HASH_TABLE_SIZE_EXP   8 /* N -> 2^N table entries */

Definition at line 57 of file abti.h.

◆ ABTI_UNUSED

#define ABTI_UNUSED (   a)    (void)(a)

Definition at line 128 of file abti.h.

Typedef Documentation

◆ ABTI_atomic_unit_to_thread

Definition at line 177 of file abti.h.

◆ ABTI_barrier

typedef struct ABTI_barrier ABTI_barrier

Definition at line 163 of file abti.h.

◆ ABTI_cond

typedef struct ABTI_cond ABTI_cond

Definition at line 159 of file abti.h.

◆ ABTI_eventual

typedef struct ABTI_eventual ABTI_eventual

Definition at line 161 of file abti.h.

◆ ABTI_future

typedef struct ABTI_future ABTI_future

Definition at line 162 of file abti.h.

◆ ABTI_global

typedef struct ABTI_global ABTI_global

Definition at line 131 of file abti.h.

◆ ABTI_key

typedef struct ABTI_key ABTI_key

Definition at line 153 of file abti.h.

◆ ABTI_ktable

typedef struct ABTI_ktable ABTI_ktable

Definition at line 155 of file abti.h.

◆ ABTI_ktelem

typedef struct ABTI_ktelem ABTI_ktelem

Definition at line 154 of file abti.h.

◆ ABTI_local

typedef struct ABTI_local ABTI_local

Definition at line 132 of file abti.h.

◆ ABTI_local_func

Definition at line 133 of file abti.h.

◆ ABTI_mutex

typedef struct ABTI_mutex ABTI_mutex

Definition at line 158 of file abti.h.

◆ ABTI_mutex_attr

Definition at line 157 of file abti.h.

◆ ABTI_native_thread_id

typedef struct ABTI_native_thread_id_opaque* ABTI_native_thread_id

Definition at line 172 of file abti.h.

◆ ABTI_pool

typedef struct ABTI_pool ABTI_pool

Definition at line 141 of file abti.h.

◆ ABTI_pool_config

Definition at line 147 of file abti.h.

◆ ABTI_pool_deprecated_def

Definition at line 144 of file abti.h.

◆ ABTI_pool_old_def

Definition at line 145 of file abti.h.

◆ ABTI_pool_optional_def

Definition at line 143 of file abti.h.

◆ ABTI_pool_required_def

Definition at line 142 of file abti.h.

◆ ABTI_pool_user_def

Definition at line 146 of file abti.h.

◆ ABTI_rwlock

typedef struct ABTI_rwlock ABTI_rwlock

Definition at line 160 of file abti.h.

◆ ABTI_sched

typedef struct ABTI_sched ABTI_sched

Definition at line 136 of file abti.h.

◆ ABTI_sched_config

Definition at line 137 of file abti.h.

◆ ABTI_sched_id

typedef void* ABTI_sched_id

Definition at line 139 of file abti.h.

◆ ABTI_sched_kind

typedef uintptr_t ABTI_sched_kind

Definition at line 140 of file abti.h.

◆ ABTI_sched_used

Definition at line 138 of file abti.h.

◆ ABTI_stack_guard

Definition at line 179 of file abti.h.

◆ ABTI_thread

typedef struct ABTI_thread ABTI_thread

Definition at line 148 of file abti.h.

◆ ABTI_thread_attr

Definition at line 149 of file abti.h.

◆ ABTI_thread_id

typedef struct ABTI_thread_id_opaque* ABTI_thread_id

Definition at line 175 of file abti.h.

◆ ABTI_thread_mig_data

Definition at line 151 of file abti.h.

◆ ABTI_thread_type

typedef uint32_t ABTI_thread_type

Definition at line 152 of file abti.h.

◆ ABTI_timer

typedef struct ABTI_timer ABTI_timer

Definition at line 165 of file abti.h.

◆ ABTI_unit_to_thread_entry

Definition at line 178 of file abti.h.

◆ ABTI_waitlist

typedef struct ABTI_waitlist ABTI_waitlist

Definition at line 156 of file abti.h.

◆ ABTI_xstream

typedef struct ABTI_xstream ABTI_xstream

Definition at line 134 of file abti.h.

◆ ABTI_xstream_barrier

Definition at line 164 of file abti.h.

◆ ABTI_xstream_type

Definition at line 135 of file abti.h.

◆ ABTI_ythread

typedef struct ABTI_ythread ABTI_ythread

Definition at line 150 of file abti.h.

Enumeration Type Documentation

◆ ABTI_sched_used

Enumerator
ABTI_SCHED_NOT_USED 
ABTI_SCHED_MAIN 
ABTI_SCHED_IN_POOL 

Definition at line 70 of file abti.h.

◆ ABTI_stack_guard

Enumerator
ABTI_STACK_GUARD_NONE 
ABTI_STACK_GUARD_MPROTECT 
ABTI_STACK_GUARD_MPROTECT_STRICT 

Definition at line 76 of file abti.h.

◆ ABTI_xstream_type

Enumerator
ABTI_XSTREAM_TYPE_PRIMARY 
ABTI_XSTREAM_TYPE_SECONDARY 

Definition at line 65 of file abti.h.

Function Documentation

◆ ABTI_info_check_print_all_thread_stacks()

void ABTI_info_check_print_all_thread_stacks ( void  )

Definition at line 1039 of file info.c.

◆ ABTI_info_print_config()

void ABTI_info_print_config ( ABTI_global p_global,
FILE *  fp 
)

Definition at line 1110 of file info.c.

Referenced by ABT_info_print_config(), and init_library().

◆ ABTI_initialized()

ABT_bool ABTI_initialized ( void  )

Definition at line 187 of file global.c.

Referenced by ABT_barrier_create(), ABT_barrier_free(), ABT_barrier_get_num_waiters(), ABT_barrier_reinit(), ABT_barrier_wait(), ABT_cond_create(), ABT_cond_free(), ABT_eventual_create(), ABT_eventual_free(), ABT_eventual_test(), ABT_eventual_wait(), ABT_finalize(), ABT_future_create(), ABT_future_free(), ABT_future_reset(), ABT_future_set(), ABT_future_test(), ABT_future_wait(), ABT_key_create(), ABT_key_free(), ABT_key_get(), ABT_key_set(), ABT_mutex_attr_create(), ABT_mutex_attr_free(), ABT_mutex_attr_get_recursive(), ABT_mutex_attr_set_recursive(), ABT_mutex_create(), ABT_mutex_create_with_attr(), ABT_mutex_free(), ABT_mutex_get_attr(), ABT_pool_add_sched(), ABT_pool_config_create(), ABT_pool_config_free(), ABT_pool_config_get(), ABT_pool_config_set(), ABT_pool_create(), ABT_pool_create_basic(), ABT_pool_free(), ABT_pool_get_access(), ABT_pool_get_data(), ABT_pool_get_id(), ABT_pool_get_size(), ABT_pool_get_total_size(), ABT_pool_is_empty(), ABT_pool_pop(), ABT_pool_pop_timedwait(), ABT_pool_pop_wait(), ABT_pool_print_all(), ABT_pool_print_all_threads(), ABT_pool_push(), ABT_pool_remove(), ABT_pool_set_data(), ABT_pool_user_def_create(), ABT_pool_user_def_free(), ABT_pool_user_def_set_free(), ABT_pool_user_def_set_get_size(), ABT_pool_user_def_set_init(), ABT_pool_user_def_set_pop_many(), ABT_pool_user_def_set_pop_wait(), ABT_pool_user_def_set_print_all(), ABT_pool_user_def_set_push_many(), ABT_rwlock_create(), ABT_rwlock_free(), ABT_rwlock_rdlock(), ABT_rwlock_unlock(), ABT_rwlock_wrlock(), ABT_sched_config_create(), ABT_sched_config_free(), ABT_sched_config_get(), ABT_sched_config_read(), ABT_sched_config_set(), ABT_sched_create(), ABT_sched_create_basic(), ABT_sched_exit(), ABT_sched_finish(), ABT_sched_free(), ABT_sched_get_data(), ABT_sched_get_num_pools(), ABT_sched_get_pools(), ABT_sched_get_size(), ABT_sched_get_total_size(), ABT_sched_has_to_stop(), ABT_sched_set_data(), ABT_self_exit(), ABT_self_exit_to(), ABT_self_get_arg(), ABT_self_get_last_pool(), ABT_self_get_last_pool_id(), ABT_self_get_specific(), ABT_self_get_thread(), ABT_self_get_thread_func(), ABT_self_get_thread_id(), ABT_self_get_type(), ABT_self_get_unit(), ABT_self_get_xstream(), ABT_self_get_xstream_rank(), ABT_self_is_primary(), ABT_self_is_unnamed(), ABT_self_on_primary_xstream(), ABT_self_resume_exit_to(), ABT_self_resume_suspend_to(), ABT_self_resume_yield_to(), ABT_self_schedule(), ABT_self_set_arg(), ABT_self_set_associated_pool(), ABT_self_set_specific(), ABT_self_suspend(), ABT_self_suspend_to(), ABT_self_yield(), ABT_self_yield_to(), ABT_task_create(), ABT_task_create_on_xstream(), ABT_thread_attr_create(), ABT_thread_attr_free(), ABT_thread_attr_get_stack(), ABT_thread_attr_set_callback(), ABT_thread_attr_set_stack(), ABT_thread_create(), ABT_thread_create_on_xstream(), ABT_thread_create_to(), ABT_thread_revive(), ABT_thread_revive_to(), ABT_thread_set_callback(), ABT_tool_query_thread(), ABT_tool_register_thread_callback(), ABT_unit_get_thread(), ABT_unit_set_associated_pool(), ABT_xstream_barrier_create(), ABT_xstream_barrier_free(), ABT_xstream_barrier_wait(), ABT_xstream_cancel(), ABT_xstream_create(), ABT_xstream_create_basic(), ABT_xstream_create_with_rank(), ABT_xstream_exit(), ABT_xstream_free(), ABT_xstream_get_rank(), ABT_xstream_join(), ABT_xstream_revive(), ABT_xstream_self(), ABT_xstream_self_rank(), ABT_xstream_set_main_sched_basic(), ABT_xstream_set_rank(), pool_pop_thread_ex(), pool_pop_threads_ex(), pool_pop_wait_thread_ex(), pool_push_thread_ex(), and pool_push_threads_ex().

◆ ABTI_ktable_free()

void ABTI_ktable_free ( ABTI_global p_global,
ABTI_local p_local,
ABTI_ktable p_ktable 
)

Definition at line 247 of file key.c.

Referenced by thread_free(), and ythread_create().

◆ ABTI_pool_config_read()

ABTU_ret_err int ABTI_pool_config_read ( const ABTI_pool_config p_config,
int  key,
void *  p_val 
)

Definition at line 270 of file pool_config.c.

Referenced by pool_create().

◆ ABTI_pool_create_basic()

ABTU_ret_err int ABTI_pool_create_basic ( ABT_pool_kind  kind,
ABT_pool_access  access,
ABT_bool  automatic,
ABTI_pool **  pp_newpool 
)

◆ ABTI_pool_free()

void ABTI_pool_free ( ABTI_pool p_pool)

◆ ABTI_pool_get_fifo_def()

ABTU_ret_err int ABTI_pool_get_fifo_def ( ABT_pool_access  access,
ABTI_pool_required_def p_required_def,
ABTI_pool_optional_def p_optional_def,
ABTI_pool_deprecated_def p_deprecated_def 
)

Definition at line 58 of file fifo.c.

Referenced by ABTI_pool_create_basic().

◆ ABTI_pool_get_fifo_wait_def()

ABTU_ret_err int ABTI_pool_get_fifo_wait_def ( ABT_pool_access  access,
ABTI_pool_required_def p_required_def,
ABTI_pool_optional_def p_optional_def,
ABTI_pool_deprecated_def p_deprecated_def 
)

Definition at line 47 of file fifo_wait.c.

Referenced by ABTI_pool_create_basic().

◆ ABTI_pool_get_randws_def()

ABTU_ret_err int ABTI_pool_get_randws_def ( ABT_pool_access  access,
ABTI_pool_required_def p_required_def,
ABTI_pool_optional_def p_optional_def,
ABTI_pool_deprecated_def p_deprecated_def 
)

Definition at line 64 of file randws.c.

Referenced by ABTI_pool_create_basic().

◆ ABTI_pool_print()

void ABTI_pool_print ( ABTI_pool p_pool,
FILE *  p_os,
int  indent 
)

Definition at line 1459 of file pool.c.

Referenced by ABT_info_print_pool(), and ABTI_sched_print().

◆ ABTI_pool_reset_id()

void ABTI_pool_reset_id ( void  )

Definition at line 1512 of file pool.c.

Referenced by init_library().

◆ ABTI_pool_user_def_is_new()

ABT_bool ABTI_pool_user_def_is_new ( const ABT_pool_user_def  def)

Definition at line 368 of file pool_user_def.c.

Referenced by ABT_pool_create().

◆ ABTI_sched_config_read()

ABTU_ret_err int ABTI_sched_config_read ( const ABTI_sched_config p_config,
int  idx,
void *  p_val 
)

Definition at line 415 of file sched_config.c.

Referenced by sched_create(), and sched_init().

◆ ABTI_sched_create_basic()

ABTU_ret_err int ABTI_sched_create_basic ( ABT_sched_predef  predef,
int  num_pools,
ABT_pool pools,
ABTI_sched_config p_config,
ABTI_sched **  pp_newsched 
)

◆ ABTI_sched_exit()

void ABTI_sched_exit ( ABTI_sched p_sched)

Definition at line 705 of file sched.c.

Referenced by ABT_sched_exit().

◆ ABTI_sched_finish()

void ABTI_sched_finish ( ABTI_sched p_sched)

Definition at line 700 of file sched.c.

Referenced by ABT_sched_finish(), and finailze_library().

◆ ABTI_sched_free()

void ABTI_sched_free ( ABTI_global p_global,
ABTI_local p_local,
ABTI_sched p_sched,
ABT_bool  force_free 
)

◆ ABTI_sched_get_basic_def()

ABT_sched_def* ABTI_sched_get_basic_def ( void  )

Definition at line 30 of file basic.c.

Referenced by ABTI_sched_create_basic(), and ABTI_sched_print().

◆ ABTI_sched_get_basic_wait_def()

ABT_sched_def* ABTI_sched_get_basic_wait_def ( void  )

Definition at line 27 of file basic_wait.c.

Referenced by ABTI_sched_create_basic(), and ABTI_sched_print().

◆ ABTI_sched_get_migration_pool()

ABTU_ret_err int ABTI_sched_get_migration_pool ( ABTI_sched ,
ABTI_pool ,
ABTI_pool **   
)

Definition at line 983 of file sched.c.

◆ ABTI_sched_get_prio_def()

ABT_sched_def* ABTI_sched_get_prio_def ( void  )

Definition at line 29 of file prio.c.

Referenced by ABTI_sched_create_basic(), and ABTI_sched_print().

◆ ABTI_sched_get_randws_def()

ABT_sched_def* ABTI_sched_get_randws_def ( void  )

Definition at line 31 of file randws.c.

Referenced by ABTI_sched_create_basic(), and ABTI_sched_print().

◆ ABTI_sched_has_to_stop()

ABT_bool ABTI_sched_has_to_stop ( ABTI_sched p_sched)

Definition at line 925 of file sched.c.

Referenced by ABT_sched_has_to_stop(), and sched_run().

◆ ABTI_sched_has_unit()

ABT_bool ABTI_sched_has_unit ( ABTI_sched p_sched)

Definition at line 948 of file sched.c.

Referenced by ABTI_sched_has_to_stop(), and ABTI_sched_print().

◆ ABTI_sched_print()

void ABTI_sched_print ( ABTI_sched p_sched,
FILE *  p_os,
int  indent,
ABT_bool  print_sub 
)

Definition at line 1000 of file sched.c.

Referenced by ABT_info_print_sched().

◆ ABTI_sched_reset_id()

void ABTI_sched_reset_id ( void  )

Definition at line 1072 of file sched.c.

Referenced by init_library().

◆ ABTI_thread_attr_dup()

ABTU_ret_err int ABTI_thread_attr_dup ( const ABTI_thread_attr p_attr,
ABTI_thread_attr **  pp_dup_attr 
)

Definition at line 419 of file thread_attr.c.

◆ ABTI_thread_attr_print()

void ABTI_thread_attr_print ( ABTI_thread_attr p_attr,
FILE *  p_os,
int  indent 
)

Definition at line 391 of file thread_attr.c.

Referenced by ABT_info_print_thread_attr().

◆ ABTI_thread_free()

void ABTI_thread_free ( ABTI_global p_global,
ABTI_local p_local,
ABTI_thread p_thread 
)

◆ ABTI_thread_get_id()

ABT_unit_id ABTI_thread_get_id ( ABTI_thread p_thread)

Definition at line 2803 of file thread.c.

Referenced by ABT_self_get_thread_id().

◆ ABTI_thread_get_mig_data()

ABTU_ret_err int ABTI_thread_get_mig_data ( ABTI_global p_global,
ABTI_local p_local,
ABTI_thread p_thread,
ABTI_thread_mig_data **  pp_mig_data 
)

◆ ABTI_thread_handle_request_cancel()

void ABTI_thread_handle_request_cancel ( ABTI_global p_global,
ABTI_xstream p_local_xstream,
ABTI_thread p_thread 
)

Definition at line 2660 of file thread.c.

Referenced by ABTI_thread_handle_request().

◆ ABTI_thread_handle_request_migrate()

ABTU_ret_err int ABTI_thread_handle_request_migrate ( ABTI_global p_global,
ABTI_local p_local,
ABTI_thread p_thread 
)

Definition at line 2674 of file thread.c.

Referenced by ABTI_thread_handle_request().

◆ ABTI_thread_join()

void ABTI_thread_join ( ABTI_local **  pp_local,
ABTI_thread p_thread 
)

Definition at line 2611 of file thread.c.

◆ ABTI_thread_print()

void ABTI_thread_print ( ABTI_thread p_thread,
FILE *  p_os,
int  indent 
)

Definition at line 2702 of file thread.c.

Referenced by ABT_info_print_thread().

◆ ABTI_thread_reset_id()

void ABTI_thread_reset_id ( void  )

Definition at line 2798 of file thread.c.

Referenced by init_library().

◆ ABTI_thread_revive()

ABTU_ret_err int ABTI_thread_revive ( ABTI_global p_global,
ABTI_local p_local,
ABTI_pool p_pool,
void(*)(void *)  thread_func,
void *  arg,
ABTI_thread p_thread 
)

Definition at line 2507 of file thread.c.

Referenced by ABT_xstream_revive().

◆ ABTI_unit_finalize_hash_table()

void ABTI_unit_finalize_hash_table ( ABTI_global p_global)

Definition at line 101 of file unit.c.

Referenced by finailze_library().

◆ ABTI_unit_get_thread_from_user_defined_unit()

ABTI_thread* ABTI_unit_get_thread_from_user_defined_unit ( ABTI_global p_global,
ABT_unit  unit 
)

Definition at line 117 of file unit.c.

Referenced by ABTI_unit_get_thread(), and ABTI_unit_set_associated_pool().

◆ ABTI_unit_init_hash_table()

void ABTI_unit_init_hash_table ( ABTI_global p_global)

Definition at line 96 of file unit.c.

Referenced by init_library().

◆ ABTI_unit_map_thread()

ABTU_ret_err int ABTI_unit_map_thread ( ABTI_global p_global,
ABT_unit  unit,
ABTI_thread p_thread 
)

◆ ABTI_unit_unmap_thread()

void ABTI_unit_unmap_thread ( ABTI_global p_global,
ABT_unit  unit 
)

◆ ABTI_xstream_check_events()

void ABTI_xstream_check_events ( ABTI_xstream p_xstream,
ABTI_sched p_sched 
)

Definition at line 1624 of file stream.c.

Referenced by sched_run().

◆ ABTI_xstream_create_primary()

ABTU_ret_err int ABTI_xstream_create_primary ( ABTI_global p_global,
ABTI_xstream **  pp_xstream 
)

Definition at line 1572 of file stream.c.

Referenced by init_library().

◆ ABTI_xstream_free()

void ABTI_xstream_free ( ABTI_global p_global,
ABTI_local p_local,
ABTI_xstream p_xstream,
ABT_bool  force_free 
)

Definition at line 1639 of file stream.c.

Referenced by ABT_xstream_free(), finailze_library(), and init_library().

◆ ABTI_xstream_print()

void ABTI_xstream_print ( ABTI_xstream p_xstream,
FILE *  p_os,
int  indent,
ABT_bool  print_sub 
)

Definition at line 1672 of file stream.c.

Referenced by ABT_info_print_all_xstreams(), and ABT_info_print_xstream().

◆ ABTI_xstream_schedule()

void ABTI_xstream_schedule ( void *  p_arg)

◆ ABTI_xstream_start_primary()

void ABTI_xstream_start_primary ( ABTI_global p_global,
ABTI_xstream **  pp_local_xstream,
ABTI_xstream p_xstream,
ABTI_ythread p_ythread 
)

Definition at line 1597 of file stream.c.

Referenced by init_library().

◆ ABTI_ythread_create_main_sched()

ABTU_ret_err int ABTI_ythread_create_main_sched ( ABTI_global p_global,
ABTI_local p_local,
ABTI_xstream p_xstream,
ABTI_sched p_sched 
)

Definition at line 2573 of file thread.c.

Referenced by xstream_create().

◆ ABTI_ythread_create_primary()

ABTU_ret_err int ABTI_ythread_create_primary ( ABTI_global p_global,
ABTI_local p_local,
ABTI_xstream p_xstream,
ABTI_ythread **  p_ythread 
)

Definition at line 2520 of file thread.c.

Referenced by init_library().

◆ ABTI_ythread_create_root()

ABTU_ret_err int ABTI_ythread_create_root ( ABTI_global p_global,
ABTI_local p_local,
ABTI_xstream p_xstream,
ABTI_ythread **  pp_root_ythread 
)

Definition at line 2546 of file thread.c.

Referenced by xstream_create().

◆ ABTI_ythread_create_sched()

ABTU_ret_err int ABTI_ythread_create_sched ( ABTI_global p_global,
ABTI_local p_local,
ABTI_pool p_pool,
ABTI_sched p_sched 
)

Definition at line 2593 of file thread.c.

Referenced by ABT_pool_add_sched().

◆ ABTI_ythread_free_primary()

void ABTI_ythread_free_primary ( ABTI_global p_global,
ABTI_local p_local,
ABTI_ythread p_ythread 
)

Definition at line 2622 of file thread.c.

Referenced by finailze_library().

◆ ABTI_ythread_free_root()

void ABTI_ythread_free_root ( ABTI_global p_global,
ABTI_local p_local,
ABTI_ythread p_ythread 
)

Definition at line 2629 of file thread.c.

Referenced by xstream_create().

◆ ABTI_ythread_print_stack()

void ABTI_ythread_print_stack ( ABTI_global p_global,
ABTI_ythread p_ythread,
FILE *  p_os 
)

Definition at line 230 of file ythread.c.

Variable Documentation

◆ gp_ABTI_global

ABTI_global* gp_ABTI_global

◆ gp_ABTI_local_func

ABTI_local_func gp_ABTI_local_func

◆ lp_ABTI_local

ABTI_THREAD_TYPE_MEM_MEMPOOL_DESC
#define ABTI_THREAD_TYPE_MEM_MEMPOOL_DESC
Definition: abti.h:94
ABTI_THREAD_TYPE_MEM_MALLOC_DESC
#define ABTI_THREAD_TYPE_MEM_MALLOC_DESC
Definition: abti.h:97