ARGOBOTS  7a09f9f632d87ed4f43aec50889983fa897fba10
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_sched.h"
#include "abti_config.h"
#include "abti_stream.h"
#include "abti_thread.h"
#include "abti_unit.h"
#include "abti_tool.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:
This graph shows which files directly or indirectly include this file:

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_element
 
struct  ABTI_sched_config
 
struct  ABTI_pool
 
struct  ABTI_pool_def
 
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_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_TERMINATE   (1 << 1)
 
#define ABTI_THREAD_REQ_CANCEL   (1 << 2)
 
#define ABTI_THREAD_REQ_MIGRATE   (1 << 3)
 
#define ABTI_THREAD_REQ_BLOCK   (1 << 4)
 
#define ABTI_THREAD_REQ_ORPHAN   (1 << 5)
 
#define ABTI_THREAD_REQ_NON_YIELD
 
#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_SCHED_CONFIG_HTABLE_SIZE   8
 
#define ABTI_SCHED_CONFIG_UNUSED_INDEX   INT_MIN
 
#define ABT_THREAD_TYPE_FULLY_FLEDGED   0
 
#define ABT_THREAD_TYPE_DYNAMIC_PROMOTION   1
 
#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_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_element ABTI_sched_config_element
 
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_def ABTI_pool_def
 
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

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_run_thread (ABTI_global *p_global, ABTI_xstream **pp_local_xstream, ABTI_thread *p_thread)
 
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_local **pp_local, ABTI_sched *p_sched)
 
size_t ABTI_sched_get_size (ABTI_sched *p_sched)
 
size_t ABTI_sched_get_total_size (ABTI_sched *p_sched)
 
size_t ABTI_sched_get_effective_size (ABTI_local *p_local, 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_def *p_def)
 
ABTU_ret_err int ABTI_pool_get_fifo_wait_def (ABT_pool_access access, ABTI_pool_def *p_def)
 
void ABTI_pool_print (ABTI_pool *p_pool, FILE *p_os, int indent)
 
void ABTI_pool_reset_id (void)
 
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_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)
 
ABTU_noreturn void ABTI_ythread_exit (ABTI_xstream *p_local_xstream, ABTI_ythread *p_ythread)
 
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_set_blocked (ABTI_ythread *p_ythread)
 
void ABTI_ythread_suspend (ABTI_xstream **pp_local_xstream, ABTI_ythread *p_ythread, ABT_sync_event_type sync_event_type, void *p_sync)
 
void ABTI_ythread_set_ready (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

◆ ABT_THREAD_TYPE_DYNAMIC_PROMOTION

#define ABT_THREAD_TYPE_DYNAMIC_PROMOTION   1

Definition at line 65 of file abti.h.

◆ ABT_THREAD_TYPE_FULLY_FLEDGED

#define ABT_THREAD_TYPE_FULLY_FLEDGED   0

Definition at line 64 of file abti.h.

◆ ABTI_INDENT

#define ABTI_INDENT   4

Definition at line 56 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_MUTEX_ATTR_NONE

#define ABTI_MUTEX_ATTR_NONE   0

Definition at line 109 of file abti.h.

◆ ABTI_MUTEX_ATTR_RECURSIVE

#define ABTI_MUTEX_ATTR_RECURSIVE   1

Definition at line 111 of file abti.h.

◆ ABTI_SCHED_CONFIG_HTABLE_SIZE

#define ABTI_SCHED_CONFIG_HTABLE_SIZE   8

Definition at line 61 of file abti.h.

◆ ABTI_SCHED_CONFIG_UNUSED_INDEX

#define ABTI_SCHED_CONFIG_UNUSED_INDEX   INT_MIN

Definition at line 62 of file abti.h.

◆ ABTI_SCHED_NUM_PRIO

#define ABTI_SCHED_NUM_PRIO   3

Definition at line 36 of file abti.h.

◆ ABTI_SCHED_REQ_EXIT

#define ABTI_SCHED_REQ_EXIT   (1 << 1)

Definition at line 39 of file abti.h.

◆ ABTI_SCHED_REQ_FINISH

#define ABTI_SCHED_REQ_FINISH   (1 << 0)

Definition at line 38 of file abti.h.

◆ ABTI_SCHED_REQ_REPLACE

#define ABTI_SCHED_REQ_REPLACE   (1 << 2)

Definition at line 40 of file abti.h.

◆ ABTI_STACK_CHECK_TYPE_CANARY

#define ABTI_STACK_CHECK_TYPE_CANARY   1

Definition at line 68 of file abti.h.

◆ ABTI_STACK_CHECK_TYPE_MPROTECT

#define ABTI_STACK_CHECK_TYPE_MPROTECT   2

Definition at line 69 of file abti.h.

◆ ABTI_STACK_CHECK_TYPE_MPROTECT_STRICT

#define ABTI_STACK_CHECK_TYPE_MPROTECT_STRICT   3

Definition at line 70 of file abti.h.

◆ ABTI_STACK_CHECK_TYPE_NONE

#define ABTI_STACK_CHECK_TYPE_NONE   0

Definition at line 67 of file abti.h.

◆ ABTI_TASK_INIT_ID

#define ABTI_TASK_INIT_ID   0xFFFFFFFFFFFFFFFF

Definition at line 54 of file abti.h.

◆ ABTI_THREAD_INIT_ID

#define ABTI_THREAD_INIT_ID   0xFFFFFFFFFFFFFFFF

Definition at line 53 of file abti.h.

◆ ABTI_THREAD_REQ_BLOCK

#define ABTI_THREAD_REQ_BLOCK   (1 << 4)

Definition at line 46 of file abti.h.

◆ ABTI_THREAD_REQ_CANCEL

#define ABTI_THREAD_REQ_CANCEL   (1 << 2)

Definition at line 44 of file abti.h.

◆ ABTI_THREAD_REQ_JOIN

#define ABTI_THREAD_REQ_JOIN   (1 << 0)

Definition at line 42 of file abti.h.

◆ ABTI_THREAD_REQ_MIGRATE

#define ABTI_THREAD_REQ_MIGRATE   (1 << 3)

Definition at line 45 of file abti.h.

◆ ABTI_THREAD_REQ_NON_YIELD

#define ABTI_THREAD_REQ_NON_YIELD
Value:
ABTI_THREAD_REQ_TERMINATE | ABTI_THREAD_REQ_BLOCK | \
ABTI_THREAD_REQ_ORPHAN)

Definition at line 48 of file abti.h.

◆ ABTI_THREAD_REQ_ORPHAN

#define ABTI_THREAD_REQ_ORPHAN   (1 << 5)

Definition at line 47 of file abti.h.

◆ ABTI_THREAD_REQ_TERMINATE

#define ABTI_THREAD_REQ_TERMINATE   (1 << 1)

Definition at line 43 of file abti.h.

◆ ABTI_THREAD_TYPE_EXT

#define ABTI_THREAD_TYPE_EXT   ((ABTI_thread_type)0)

Definition at line 89 of file abti.h.

◆ ABTI_THREAD_TYPE_MAIN_SCHED

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

Definition at line 93 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 99 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 101 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 98 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 96 of file abti.h.

◆ ABTI_THREAD_TYPE_NAMED

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

Definition at line 95 of file abti.h.

◆ ABTI_THREAD_TYPE_PRIMARY

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

Definition at line 92 of file abti.h.

◆ ABTI_THREAD_TYPE_ROOT

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

Definition at line 91 of file abti.h.

◆ ABTI_THREAD_TYPE_THREAD

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

Definition at line 90 of file abti.h.

◆ ABTI_THREAD_TYPE_YIELDABLE

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

Definition at line 94 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)

Definition at line 103 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 59 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 58 of file abti.h.

◆ ABTI_UNUSED

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

Definition at line 114 of file abti.h.

Typedef Documentation

◆ ABTI_atomic_unit_to_thread

Definition at line 159 of file abti.h.

◆ ABTI_barrier

typedef struct ABTI_barrier ABTI_barrier

Definition at line 145 of file abti.h.

◆ ABTI_cond

typedef struct ABTI_cond ABTI_cond

Definition at line 141 of file abti.h.

◆ ABTI_eventual

typedef struct ABTI_eventual ABTI_eventual

Definition at line 143 of file abti.h.

◆ ABTI_future

typedef struct ABTI_future ABTI_future

Definition at line 144 of file abti.h.

◆ ABTI_global

typedef struct ABTI_global ABTI_global

Definition at line 117 of file abti.h.

◆ ABTI_key

typedef struct ABTI_key ABTI_key

Definition at line 135 of file abti.h.

◆ ABTI_ktable

typedef struct ABTI_ktable ABTI_ktable

Definition at line 137 of file abti.h.

◆ ABTI_ktelem

typedef struct ABTI_ktelem ABTI_ktelem

Definition at line 136 of file abti.h.

◆ ABTI_local

typedef struct ABTI_local ABTI_local

Definition at line 118 of file abti.h.

◆ ABTI_local_func

Definition at line 119 of file abti.h.

◆ ABTI_mutex

typedef struct ABTI_mutex ABTI_mutex

Definition at line 140 of file abti.h.

◆ ABTI_mutex_attr

Definition at line 139 of file abti.h.

◆ ABTI_native_thread_id

typedef struct ABTI_native_thread_id_opaque* ABTI_native_thread_id

Definition at line 154 of file abti.h.

◆ ABTI_pool

typedef struct ABTI_pool ABTI_pool

Definition at line 128 of file abti.h.

◆ ABTI_pool_def

typedef struct ABTI_pool_def ABTI_pool_def

Definition at line 129 of file abti.h.

◆ ABTI_rwlock

typedef struct ABTI_rwlock ABTI_rwlock

Definition at line 142 of file abti.h.

◆ ABTI_sched

typedef struct ABTI_sched ABTI_sched

Definition at line 122 of file abti.h.

◆ ABTI_sched_config

Definition at line 124 of file abti.h.

◆ ABTI_sched_config_element

Definition at line 123 of file abti.h.

◆ ABTI_sched_id

typedef void* ABTI_sched_id

Definition at line 126 of file abti.h.

◆ ABTI_sched_kind

typedef uintptr_t ABTI_sched_kind

Definition at line 127 of file abti.h.

◆ ABTI_sched_used

Definition at line 125 of file abti.h.

◆ ABTI_stack_guard

Definition at line 161 of file abti.h.

◆ ABTI_thread

typedef struct ABTI_thread ABTI_thread

Definition at line 130 of file abti.h.

◆ ABTI_thread_attr

Definition at line 131 of file abti.h.

◆ ABTI_thread_id

typedef struct ABTI_thread_id_opaque* ABTI_thread_id

Definition at line 157 of file abti.h.

◆ ABTI_thread_mig_data

Definition at line 133 of file abti.h.

◆ ABTI_thread_type

typedef uint32_t ABTI_thread_type

Definition at line 134 of file abti.h.

◆ ABTI_timer

typedef struct ABTI_timer ABTI_timer

Definition at line 147 of file abti.h.

◆ ABTI_unit_to_thread_entry

Definition at line 160 of file abti.h.

◆ ABTI_waitlist

typedef struct ABTI_waitlist ABTI_waitlist

Definition at line 138 of file abti.h.

◆ ABTI_xstream

typedef struct ABTI_xstream ABTI_xstream

Definition at line 120 of file abti.h.

◆ ABTI_xstream_barrier

Definition at line 146 of file abti.h.

◆ ABTI_xstream_type

Definition at line 121 of file abti.h.

◆ ABTI_ythread

typedef struct ABTI_ythread ABTI_ythread

Definition at line 132 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 77 of file abti.h.

◆ ABTI_stack_guard

Enumerator
ABTI_STACK_GUARD_NONE 
ABTI_STACK_GUARD_MPROTECT 
ABTI_STACK_GUARD_MPROTECT_STRICT 

Definition at line 83 of file abti.h.

◆ ABTI_xstream_type

Enumerator
ABTI_XSTREAM_TYPE_PRIMARY 
ABTI_XSTREAM_TYPE_SECONDARY 

Definition at line 72 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 963 of file info.c.

◆ ABTI_info_print_config()

void ABTI_info_print_config ( ABTI_global p_global,
FILE *  fp 
)

Definition at line 1034 of file info.c.

Referenced by ABT_info_print_config(), and init_library().

◆ ABTI_ktable_free()

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

Definition at line 232 of file key.c.

Referenced by thread_free(), and ythread_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_def p_def 
)

Definition at line 68 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_def p_def 
)

Definition at line 39 of file fifo_wait.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 901 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 950 of file pool.c.

Referenced by init_library().

◆ 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 259 of file config.c.

Referenced by ABT_sched_config_read(), 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 650 of file sched.c.

Referenced by ABT_sched_exit().

◆ ABTI_sched_finish()

void ABTI_sched_finish ( ABTI_sched p_sched)

Definition at line 645 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_effective_size()

size_t ABTI_sched_get_effective_size ( ABTI_local p_local,
ABTI_sched p_sched 
)

Definition at line 929 of file sched.c.

Referenced by ABTI_sched_has_to_stop().

◆ ABTI_sched_get_migration_pool()

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

Definition at line 895 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_get_size()

size_t ABTI_sched_get_size ( ABTI_sched p_sched)

Definition at line 633 of file sched.c.

Referenced by ABT_sched_get_size(), and ABTI_sched_print().

◆ ABTI_sched_get_total_size()

size_t ABTI_sched_get_total_size ( ABTI_sched p_sched)

Definition at line 912 of file sched.c.

Referenced by ABT_sched_get_total_size(), and ABTI_sched_print().

◆ ABTI_sched_has_to_stop()

ABT_bool ABTI_sched_has_to_stop ( ABTI_local **  pp_local,
ABTI_sched p_sched 
)

Definition at line 871 of file sched.c.

Referenced by ABT_sched_has_to_stop(), and sched_run().

◆ ABTI_sched_print()

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

Definition at line 959 of file sched.c.

Referenced by ABT_info_print_sched().

◆ ABTI_sched_reset_id()

void ABTI_sched_reset_id ( void  )

Definition at line 1033 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 413 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 369 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)

◆ 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 
)

Definition at line 2436 of file thread.c.

Referenced by ABT_thread_set_callback(), and thread_migrate_to_pool().

◆ ABTI_thread_join()

void ABTI_thread_join ( ABTI_local **  pp_local,
ABTI_thread p_thread 
)

Definition at line 2395 of file thread.c.

◆ ABTI_thread_print()

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

Definition at line 2461 of file thread.c.

Referenced by ABT_info_print_thread().

◆ ABTI_thread_reset_id()

void ABTI_thread_reset_id ( void  )

Definition at line 2556 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 2257 of file thread.c.

Referenced by ABT_thread_revive(), and ABT_xstream_revive().

◆ ABTI_unit_finalize_hash_table()

void ABTI_unit_finalize_hash_table ( ABTI_global p_global)

Definition at line 96 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 112 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 91 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 1568 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 1500 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 1584 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 1620 of file stream.c.

Referenced by ABT_info_print_all_xstreams(), and ABT_info_print_xstream().

◆ ABTI_xstream_run_thread()

void ABTI_xstream_run_thread ( ABTI_global p_global,
ABTI_xstream **  pp_local_xstream,
ABTI_thread p_thread 
)

Definition at line 1554 of file stream.c.

Referenced by sched_run().

◆ 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 1525 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 2355 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 2300 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 2328 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 2376 of file thread.c.

Referenced by ABT_pool_add_sched().

◆ ABTI_ythread_exit()

ABTU_noreturn void ABTI_ythread_exit ( ABTI_xstream p_local_xstream,
ABTI_ythread p_ythread 
)

Definition at line 2425 of file thread.c.

Referenced by ABT_self_exit(), and ABT_xstream_exit().

◆ ABTI_ythread_free_primary()

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

Definition at line 2410 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 2419 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 100 of file ythread.c.

◆ ABTI_ythread_set_blocked()

void ABTI_ythread_set_blocked ( ABTI_ythread p_ythread)

Definition at line 23 of file ythread.c.

Referenced by ABT_self_suspend(), and ABTI_waitlist_wait_and_unlock().

◆ ABTI_ythread_set_ready()

void ABTI_ythread_set_ready ( ABTI_local p_local,
ABTI_ythread p_ythread 
)

◆ ABTI_ythread_suspend()

void ABTI_ythread_suspend ( ABTI_xstream **  pp_local_xstream,
ABTI_ythread p_ythread,
ABT_sync_event_type  sync_event_type,
void *  p_sync 
)

Definition at line 45 of file ythread.c.

Referenced by ABT_self_suspend(), and ABTI_waitlist_wait_and_unlock().

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:98
ABTI_THREAD_REQ_MIGRATE
#define ABTI_THREAD_REQ_MIGRATE
Definition: abti.h:45
ABTI_THREAD_REQ_CANCEL
#define ABTI_THREAD_REQ_CANCEL
Definition: abti.h:44
ABTI_THREAD_REQ_BLOCK
#define ABTI_THREAD_REQ_BLOCK
Definition: abti.h:46
ABTI_THREAD_TYPE_MEM_MALLOC_DESC
#define ABTI_THREAD_TYPE_MEM_MALLOC_DESC
Definition: abti.h:99