kmp_os.h File Reference

#include <stdlib.h>

Go to the source code of this file.

Defines

#define ALIGN_TO_PAGE(x)   (void *)(((size_t)(x)) & ~((size_t)(PAGE_SIZE - 1)))
#define CACHE_LINE   128
#define FTN_FALSE   FALSE
#define FTN_TRUE   TRUE
#define KMP_ALIGN(bytes)   __declspec( align(bytes) )
#define KMP_ALIGN_CACHE   __declspec( align(CACHE_LINE) )
#define KMP_ARCH_X86   0
#define KMP_ARCH_X86_64   0
#define KMP_CACHE_PREFETCH(ADDR)
#define KMP_DO_ALIGN(bytes)   __declspec( align(bytes) )
#define KMP_EQ   __kmp_eq_4
#define KMP_EXPORT   extern
#define KMP_FTN_APPEND   2
#define KMP_FTN_PLAIN   1
#define KMP_FTN_UPPER   3
#define KMP_GE   __kmp_ge_4
#define KMP_IMB()
#define KMP_INT_MAX   ((kmp_int32)0x7FFFFFFF)
#define KMP_INT_MIN   ((kmp_int64)0x80000000)
#define KMP_INT_SPEC   KMP_INT32_SPEC
#define KMP_INTPTR   1
#define KMP_INTPTR_SPEC   "ld"
#define KMP_LD4_ACQ(A)   ( *(A) )
#define KMP_LD8_ACQ(A)   ( *(A) )
#define KMP_LE   __kmp_le_4
#define KMP_LT   __kmp_lt_4
#define KMP_MB()
#define KMP_MEM_CONS_FENCE   1
#define KMP_MEM_CONS_MODEL   KMP_MEM_CONS_VOLATILE
#define KMP_MEM_CONS_VOLATILE   0
#define KMP_MIC   0
#define KMP_MIC1   0
#define KMP_NEQ   __kmp_neq_4
#define KMP_OFF   0
#define KMP_ON   1
#define KMP_OS_DARWIN   0
#define KMP_OS_LINUX   0
#define KMP_OS_UNIX   0
#define KMP_OS_WINDOWS   0
#define KMP_PERF_V106   KMP_ON
#define KMP_PERF_V19   KMP_ON
#define KMP_PTR_SKIP   (sizeof(void*))
#define KMP_SIZE_T_MAX   (0xFFFFFFFFFFFFFFFF)
#define KMP_ST4_REL(A, D)   ( *(A) = (D) )
#define KMP_ST8_REL(A, D)   ( *(A) = (D) )
#define KMP_STDCALL
#define KMP_TEST_THEN_ADD32(ADDR, INCR)   ( __kmp_test_then_add32( (ADDR), (INCR) ) )
#define KMP_TEST_THEN_ADD4_32(ADDR)   ( __kmp_test_then_add32( (ADDR), 4 ) )
#define KMP_TEST_THEN_ADD4_64(ADDR)   ( __kmp_test_then_add64( (ADDR), 4LL ) )
#define KMP_TEST_THEN_ADD4_ACQ32(ADDR)   ( __kmp_test_then_add32( (ADDR), 4 ) )
#define KMP_TEST_THEN_ADD4_ACQ64(ADDR)   ( __kmp_test_then_add64( (ADDR), 4LL ) )
#define KMP_TEST_THEN_ADD64(ADDR, INCR)   ( __kmp_test_then_add64( (ADDR), (INCR) ) )
#define KMP_TEST_THEN_DEC32(ADDR)   ( __kmp_test_then_add32( (ADDR), -1 ) )
#define KMP_TEST_THEN_DEC64(ADDR)   ( __kmp_test_then_add64( (ADDR), -1LL ) )
#define KMP_TEST_THEN_DEC_ACQ32(ADDR)   ( __kmp_test_then_add32( (ADDR), -1 ) )
#define KMP_TEST_THEN_DEC_ACQ64(ADDR)   ( __kmp_test_then_add64( (ADDR), -1LL ) )
#define KMP_TEST_THEN_INC32(ADDR)   ( __kmp_test_then_add32( (ADDR), 1 ) )
#define KMP_TEST_THEN_INC64(ADDR)   ( __kmp_test_then_add64( (ADDR), 1LL ) )
#define KMP_TEST_THEN_INC_ACQ32(ADDR)   ( __kmp_test_then_add32( (ADDR), 1 ) )
#define KMP_TEST_THEN_INC_ACQ64(ADDR)   ( __kmp_test_then_add64( (ADDR), 1LL ) )
#define KMP_UINT_SPEC   KMP_UINT32_SPEC
#define KMP_UINTPTR_SPEC   "lu"
#define KMP_USE_BGET   1
#define KMP_WAIT_YIELD   __kmp_wait_yield_4
#define PAGE_ALIGNED(_addr)
#define PAGE_SIZE   (0x4000)
#define STATIC_EFI2_WORKAROUND   static
#define TC_IGNORE(stmt)   ; stmt;
#define TCR_4(a)   (a)
#define TCR_8(a)   (a)
#define TCR_PTR(a)   ((void *)TCR_8(a))
#define TCR_SYNC_4(a)   (a)
#define TCR_SYNC_8(a)   (a)
#define TCR_SYNC_PTR(a)   ((void *)TCR_SYNC_8(a))
#define TCW_4(a, b)   (a) = (b)
#define TCW_8(a, b)   (a) = (b)
#define TCW_PTR(a, b)   TCW_8((a),(b))
#define TCW_SYNC_4(a, b)   (a) = (b)
#define TCW_SYNC_8(a, b)   (a) = (b)
#define TCW_SYNC_PTR(a, b)   TCW_SYNC_8((a),(b))
#define TCX_SYNC_4(a, b, c)   KMP_COMPARE_AND_STORE_REL32((volatile kmp_int32 *)(volatile void *)&(a), (kmp_int32)(b), (kmp_int32)(c))
#define TCX_SYNC_8(a, b, c)   KMP_COMPARE_AND_STORE_REL64((volatile kmp_int64 *)(volatile void *)&(a), (kmp_int64)(b), (kmp_int64)(c))
#define TCX_SYNC_PTR(a, b, c)   ((void *)TCX_SYNC_8((a),(b),(c)))
#define VOLATILE_CAST(x)   (x)

Typedefs

typedef kmp_int32 kmp_int
typedef long kmp_intptr_t
typedef float kmp_real32
typedef double kmp_real64
typedef size_t kmp_size_t
typedef kmp_uint32 kmp_uint
typedef unsigned long kmp_uintptr_t
typedef void(* microtask_t )(int *gtid, int *npr,...)

Enumerations

enum  kmp_mem_fence_type { kmp_no_fence, kmp_acquire_fence, kmp_release_fence, kmp_full_fence }
enum  kmp_warnings_level { kmp_warnings_off = 0, kmp_warnings_low, kmp_warnings_explicit = 6, kmp_warnings_verbose }

Define Documentation

#define ALIGN_TO_PAGE (  )     (void *)(((size_t)(x)) & ~((size_t)(PAGE_SIZE - 1)))

Definition at line 297 of file kmp_os.h.

#define CACHE_LINE   128
#define FTN_FALSE   FALSE

Definition at line 541 of file kmp_os.h.

Referenced by __kmpc_test_lock(), and FTN_IN_PARALLEL().

#define FTN_TRUE   TRUE

Definition at line 537 of file kmp_os.h.

Referenced by __kmpc_test_lock(), and FTN_IN_PARALLEL().

#define KMP_ALIGN ( bytes   )     __declspec( align(bytes) )

Definition at line 336 of file kmp_os.h.

#define KMP_ALIGN_CACHE   __declspec( align(CACHE_LINE) )

Definition at line 335 of file kmp_os.h.

#define KMP_ARCH_X86   0

Definition at line 81 of file kmp_os.h.

Referenced by __kmpc_atomic_2(), __kmpc_atomic_4(), __kmpc_atomic_8(), and ATOMIC_FIXED_ADD().

#define KMP_ARCH_X86_64   0
#define KMP_CACHE_PREFETCH ( ADDR   ) 
#define KMP_DO_ALIGN ( bytes   )     __declspec( align(bytes) )

Definition at line 334 of file kmp_os.h.

#define KMP_EQ   __kmp_eq_4
#define KMP_EXPORT   extern

Definition at line 288 of file kmp_os.h.

#define KMP_FTN_APPEND   2

Definition at line 53 of file kmp_os.h.

#define KMP_FTN_PLAIN   1

Definition at line 52 of file kmp_os.h.

#define KMP_FTN_UPPER   3

Definition at line 54 of file kmp_os.h.

#define KMP_GE   __kmp_ge_4

Definition at line 564 of file kmp_os.h.

Referenced by __kmp_taskq_check_ordered().

 
#define KMP_IMB (  ) 

Definition at line 466 of file kmp_os.h.

#define KMP_INT_MAX   ((kmp_int32)0x7FFFFFFF)

Definition at line 230 of file kmp_os.h.

Referenced by __kmp_stg_parse_lock_block().

#define KMP_INT_MIN   ((kmp_int64)0x80000000)

Definition at line 231 of file kmp_os.h.

#define KMP_INT_SPEC   KMP_INT32_SPEC

Definition at line 228 of file kmp_os.h.

#define KMP_INTPTR   1

Definition at line 211 of file kmp_os.h.

#define KMP_INTPTR_SPEC   "ld"

Definition at line 214 of file kmp_os.h.

#define KMP_LD4_ACQ (  )     ( *(A) )

Definition at line 478 of file kmp_os.h.

#define KMP_LD8_ACQ (  )     ( *(A) )

Definition at line 482 of file kmp_os.h.

#define KMP_LE   __kmp_le_4

Definition at line 565 of file kmp_os.h.

Referenced by __kmp_remove_queue_from_tree().

#define KMP_LT   __kmp_lt_4

Definition at line 563 of file kmp_os.h.

 
#define KMP_MB (  ) 

Definition at line 462 of file kmp_os.h.

Referenced by ___kmp_allocate_align(), ___kmp_free(), __kmp_acquire_drdpa_lock_timed_template(), __kmp_acquire_nested_drdpa_lock(), __kmp_acquire_nested_queuing_lock(), __kmp_acquire_nested_ticket_lock(), __kmp_acquire_queuing_lock_timed_template(), __kmp_acquire_tas_lock_timed_template(), __kmp_acquire_ticket_lock_timed_template(), __kmp_alloc_taskq(), __kmp_alloc_thunk(), __kmp_allocate_team(), __kmp_allocate_thread(), __kmp_aux_dump_task_queue_tree(), __kmp_barrier(), __kmp_create_monitor(), __kmp_create_worker(), __kmp_dequeue_task(), __kmp_dispatch_deo(), __kmp_dispatch_dxo(), __kmp_dispatch_finish(), __kmp_dispatch_next(), __kmp_do_serial_initialize(), __kmp_dump_task_queue(), __kmp_enqueue_task(), __kmp_env_initialize(), __kmp_execute_task_from_queue(), __kmp_find_and_remove_finished_child_taskq(), __kmp_find_task_in_ancestor_queue(), __kmp_find_task_in_descendant_queue(), __kmp_find_task_in_queue(), __kmp_fork_barrier(), __kmp_fork_call(), __kmp_fork_team_threads(), __kmp_free_taskq(), __kmp_free_team(), __kmp_free_thread(), __kmp_free_thunk(), __kmp_hyper_barrier_release(), __kmp_initialize_info(), __kmp_initialize_team(), __kmp_internal_end(), __kmp_internal_end_library(), __kmp_internal_end_thread(), __kmp_internal_fork(), __kmp_internal_join(), __kmp_join_barrier(), __kmp_join_call(), __kmp_launch_monitor(), __kmp_launch_thread(), __kmp_launch_worker(), __kmp_linear_barrier_release(), __kmp_lock_block_allocate(), __kmp_parallel_deo(), __kmp_parallel_dxo(), __kmp_parallel_initialize(), __kmp_reap_common(), __kmp_reap_monitor(), __kmp_reap_team(), __kmp_reap_thread(), __kmp_reap_worker(), __kmp_register_root(), __kmp_release_drdpa_lock_with_checks(), __kmp_release_nested_drdpa_lock(), __kmp_release_nested_drdpa_lock_with_checks(), __kmp_release_nested_queuing_lock(), __kmp_release_nested_queuing_lock_with_checks(), __kmp_release_nested_tas_lock(), __kmp_release_nested_tas_lock_with_checks(), __kmp_release_nested_ticket_lock(), __kmp_release_nested_ticket_lock_with_checks(), __kmp_release_queuing_lock(), __kmp_release_queuing_lock_with_checks(), __kmp_release_tas_lock(), __kmp_release_tas_lock_with_checks(), __kmp_release_ticket_lock(), __kmp_release_ticket_lock_with_checks(), __kmp_remove_queue_from_tree(), __kmp_run_before_invoked_task(), __kmp_set_num_threads(), __kmp_taskq_check_ordered(), __kmp_taskq_eo(), __kmp_taskq_xo(), __kmp_test_nested_drdpa_lock(), __kmp_test_nested_queuing_lock(), __kmp_test_nested_tas_lock(), __kmp_test_nested_ticket_lock(), __kmp_tree_barrier_release(), __kmp_unregister_root_current_thread(), __kmp_wait_sleep(), __kmpc_copyprivate(), __kmpc_end_serialized_parallel(), __kmpc_end_taskq_task(), __kmpc_flush(), __kmpc_serialized_parallel(), __kmpc_taskq(), __kmpc_taskq_task(), __kmpc_threadprivate_cached(), __kmpc_unset_lock(), and __kmpc_unset_nest_lock().

#define KMP_MEM_CONS_FENCE   1

Definition at line 68 of file kmp_os.h.

#define KMP_MEM_CONS_MODEL   KMP_MEM_CONS_VOLATILE

Definition at line 71 of file kmp_os.h.

#define KMP_MEM_CONS_VOLATILE   0

Definition at line 67 of file kmp_os.h.

#define KMP_MIC   0

Definition at line 348 of file kmp_os.h.

Referenced by __kmp_env_initialize().

#define KMP_MIC1   0

Definition at line 349 of file kmp_os.h.

#define KMP_NEQ   __kmp_neq_4

Definition at line 562 of file kmp_os.h.

Referenced by __kmp_release_queuing_lock().

#define KMP_OFF   0

Definition at line 64 of file kmp_os.h.

#define KMP_ON   1

Definition at line 65 of file kmp_os.h.

#define KMP_OS_DARWIN   0

Definition at line 77 of file kmp_os.h.

#define KMP_OS_LINUX   0
#define KMP_OS_UNIX   0

Definition at line 79 of file kmp_os.h.

#define KMP_OS_WINDOWS   0

Definition at line 78 of file kmp_os.h.

Referenced by __kmp_abort_process(), __kmp_print_version_1(), and __kmp_str_fname_init().

#define KMP_PERF_V106   KMP_ON

Definition at line 322 of file kmp_os.h.

#define KMP_PERF_V19   KMP_ON

Definition at line 317 of file kmp_os.h.

#define KMP_PTR_SKIP   (sizeof(void*))

Definition at line 60 of file kmp_os.h.

#define KMP_SIZE_T_MAX   (0xFFFFFFFFFFFFFFFF)

Definition at line 203 of file kmp_os.h.

Referenced by __kmp_round4k(), __kmp_str_to_size(), and __kmp_str_to_uint().

#define KMP_ST4_REL ( A,
 )     ( *(A) = (D) )

Definition at line 470 of file kmp_os.h.

#define KMP_ST8_REL ( A,
 )     ( *(A) = (D) )

Definition at line 474 of file kmp_os.h.

#define KMP_STDCALL

Definition at line 285 of file kmp_os.h.

#define KMP_TEST_THEN_ADD32 ( ADDR,
INCR   )     ( __kmp_test_then_add32( (ADDR), (INCR) ) )

Definition at line 442 of file kmp_os.h.

#define KMP_TEST_THEN_ADD4_32 ( ADDR   )     ( __kmp_test_then_add32( (ADDR), 4 ) )

Definition at line 414 of file kmp_os.h.

Referenced by __kmp_release().

#define KMP_TEST_THEN_ADD4_64 ( ADDR   )     ( __kmp_test_then_add64( (ADDR), 4LL ) )

Definition at line 421 of file kmp_os.h.

#define KMP_TEST_THEN_ADD4_ACQ32 ( ADDR   )     ( __kmp_test_then_add32( (ADDR), 4 ) )

Definition at line 417 of file kmp_os.h.

Referenced by __kmp_release().

#define KMP_TEST_THEN_ADD4_ACQ64 ( ADDR   )     ( __kmp_test_then_add64( (ADDR), 4LL ) )

Definition at line 424 of file kmp_os.h.

#define KMP_TEST_THEN_ADD64 ( ADDR,
INCR   )     ( __kmp_test_then_add64( (ADDR), (INCR) ) )

Definition at line 446 of file kmp_os.h.

#define KMP_TEST_THEN_DEC32 ( ADDR   )     ( __kmp_test_then_add32( (ADDR), -1 ) )

Definition at line 428 of file kmp_os.h.

Referenced by __kmp_join_call(), __kmp_reap_thread(), __kmp_suspend(), and __kmp_wait_sleep().

#define KMP_TEST_THEN_DEC64 ( ADDR   )     ( __kmp_test_then_add64( (ADDR), -1LL ) )

Definition at line 435 of file kmp_os.h.

#define KMP_TEST_THEN_DEC_ACQ32 ( ADDR   )     ( __kmp_test_then_add32( (ADDR), -1 ) )

Definition at line 431 of file kmp_os.h.

#define KMP_TEST_THEN_DEC_ACQ64 ( ADDR   )     ( __kmp_test_then_add64( (ADDR), -1LL ) )

Definition at line 438 of file kmp_os.h.

#define KMP_TEST_THEN_INC32 ( ADDR   )     ( __kmp_test_then_add32( (ADDR), 1 ) )
#define KMP_TEST_THEN_INC64 ( ADDR   )     ( __kmp_test_then_add64( (ADDR), 1LL ) )

Definition at line 407 of file kmp_os.h.

Referenced by __kmp_acquire_drdpa_lock_timed_template().

#define KMP_TEST_THEN_INC_ACQ32 ( ADDR   )     ( __kmp_test_then_add32( (ADDR), 1 ) )

Definition at line 403 of file kmp_os.h.

#define KMP_TEST_THEN_INC_ACQ64 ( ADDR   )     ( __kmp_test_then_add64( (ADDR), 1LL ) )

Definition at line 410 of file kmp_os.h.

#define KMP_UINT_SPEC   KMP_UINT32_SPEC

Definition at line 229 of file kmp_os.h.

#define KMP_UINTPTR_SPEC   "lu"
#define KMP_USE_BGET   1

Definition at line 577 of file kmp_os.h.

#define KMP_WAIT_YIELD   __kmp_wait_yield_4
#define PAGE_ALIGNED ( _addr   ) 
Value:
( ! ((size_t) _addr & \
                                     (size_t)(PAGE_SIZE - 1)))

Definition at line 295 of file kmp_os.h.

#define PAGE_SIZE   (0x4000)

Definition at line 294 of file kmp_os.h.

Referenced by __kmp_print_storage_map_gtid().

#define STATIC_EFI2_WORKAROUND   static

Definition at line 572 of file kmp_os.h.

#define TC_IGNORE ( stmt   )     ; stmt;

Definition at line 510 of file kmp_os.h.

Referenced by __kmp_expand_threads().

#define TCR_4 (  )     (a)

Definition at line 500 of file kmp_os.h.

Referenced by __kmp_acquire_drdpa_lock_timed_template(), __kmp_acquire_queuing_lock_timed_template(), __kmp_acquire_tas_lock_timed_template(), __kmp_acquire_ticket_lock_timed_template(), __kmp_allocate_team(), __kmp_allocate_thread(), __kmp_aux_set_stacksize(), __kmp_cleanup(), __kmp_common_destroy(), __kmp_common_destroy_gtid(), __kmp_common_initialize(), __kmp_create_worker(), __kmp_dispatch_init(), __kmp_do_serial_initialize(), __kmp_enter_single(), __kmp_env_initialize(), __kmp_fork_barrier(), __kmp_fork_call(), __kmp_get_drdpa_lock_owner(), __kmp_get_global_thread_id(), __kmp_get_global_thread_id_reg(), __kmp_get_queuing_lock_owner(), __kmp_get_tas_lock_owner(), __kmp_get_ticket_lock_owner(), __kmp_hyper_barrier_release(), __kmp_internal_end(), __kmp_internal_end_library(), __kmp_internal_end_thread(), __kmp_join_barrier(), __kmp_launch_monitor(), __kmp_launch_thread(), __kmp_launch_worker(), __kmp_linear_barrier_release(), __kmp_parallel_initialize(), __kmp_reap_common(), __kmp_reap_thread(), __kmp_register_root(), __kmp_reinitialize_team(), __kmp_release(), __kmp_release_tas_lock(), __kmp_release_ticket_lock(), __kmp_resume(), __kmp_stg_parse_kmp_dynamic_mode(), __kmp_suspend(), __kmp_suspend_initialize_thread(), __kmp_suspend_uninitialize_thread(), __kmp_test_ticket_lock(), __kmp_tree_barrier_release(), __kmp_wait_sleep(), __kmp_wait_yield(), __kmp_wait_yield_4(), __kmp_wait_yield_8(), __kmpc_barrier(), __kmpc_barrier_master(), __kmpc_barrier_master_nowait(), __kmpc_end_serialized_parallel(), __kmpc_global_num_threads(), __kmpc_master(), __kmpc_ordered(), __kmpc_reduce(), __kmpc_reduce_nowait(), __kmpc_serialized_parallel(), FTN_GET_MAX_THREADS(), FTN_GET_NUM_KNOWN_THREADS(), FTN_GET_NUM_PROCS(), GOMP_single_copy_start(), and GOMP_single_start().

#define TCR_8 (  )     (a)
#define TCR_PTR (  )     ((void *)TCR_8(a))
#define TCR_SYNC_4 (  )     (a)

Definition at line 504 of file kmp_os.h.

Referenced by __kmp_allocate_team(), __kmp_set_num_threads(), and __kmp_wait_sleep().

#define TCR_SYNC_8 (  )     (a)

Definition at line 507 of file kmp_os.h.

#define TCR_SYNC_PTR (  )     ((void *)TCR_SYNC_8(a))
#define TCW_4 ( a,
 )     (a) = (b)
#define TCW_8 ( a,
 )     (a) = (b)

Definition at line 503 of file kmp_os.h.

Referenced by __kmp_release_drdpa_lock().

#define TCW_PTR ( a,
 )     TCW_8((a),(b))
#define TCW_SYNC_4 ( a,
 )     (a) = (b)
#define TCW_SYNC_8 ( a,
 )     (a) = (b)

Definition at line 508 of file kmp_os.h.

#define TCW_SYNC_PTR ( a,
 )     TCW_SYNC_8((a),(b))
#define TCX_SYNC_4 ( a,
b,
 )     KMP_COMPARE_AND_STORE_REL32((volatile kmp_int32 *)(volatile void *)&(a), (kmp_int32)(b), (kmp_int32)(c))

Definition at line 506 of file kmp_os.h.

#define TCX_SYNC_8 ( a,
b,
 )     KMP_COMPARE_AND_STORE_REL64((volatile kmp_int64 *)(volatile void *)&(a), (kmp_int64)(b), (kmp_int64)(c))

Definition at line 509 of file kmp_os.h.

#define TCX_SYNC_PTR ( a,
b,
 )     ((void *)TCX_SYNC_8((a),(b),(c)))

Definition at line 526 of file kmp_os.h.

#define VOLATILE_CAST (  )     (x)

Definition at line 549 of file kmp_os.h.

Referenced by __kmp_dispatch_next(), and __kmpc_fork_call().


Typedef Documentation

typedef kmp_int32 kmp_int

Definition at line 226 of file kmp_os.h.

typedef long kmp_intptr_t

Definition at line 212 of file kmp_os.h.

typedef float kmp_real32

Definition at line 207 of file kmp_os.h.

typedef double kmp_real64

Definition at line 208 of file kmp_os.h.

typedef size_t kmp_size_t

Definition at line 206 of file kmp_os.h.

typedef kmp_uint32 kmp_uint

Definition at line 227 of file kmp_os.h.

typedef unsigned long kmp_uintptr_t

Definition at line 213 of file kmp_os.h.

typedef void(* microtask_t)(int *gtid, int *npr,...)

Definition at line 544 of file kmp_os.h.


Enumeration Type Documentation

Enumerator:
kmp_no_fence 
kmp_acquire_fence 
kmp_release_fence 
kmp_full_fence 

Definition at line 353 of file kmp_os.h.

Enumerator:
kmp_warnings_off 
kmp_warnings_low 
kmp_warnings_explicit 
kmp_warnings_verbose 

Definition at line 582 of file kmp_os.h.


Generated on 25 Aug 2013 for libomp_oss by  doxygen 1.6.1