diff options
Diffstat (limited to 'erts/emulator/beam/erl_process.h')
-rw-r--r-- | erts/emulator/beam/erl_process.h | 35 |
1 files changed, 20 insertions, 15 deletions
diff --git a/erts/emulator/beam/erl_process.h b/erts/emulator/beam/erl_process.h index ac70260d0d..a0fe781bb1 100644 --- a/erts/emulator/beam/erl_process.h +++ b/erts/emulator/beam/erl_process.h @@ -1,7 +1,7 @@ /* * %CopyrightBegin% * - * Copyright Ericsson AB 1996-2022. All Rights Reserved. + * Copyright Ericsson AB 1996-2023. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -728,7 +728,10 @@ struct ErtsSchedulerData_ { ErtsSchedWallTime sched_wall_time; ErtsGCInfo gc_info; ErtsPortTaskHandle nosuspend_port_task_handle; - ErtsEtsTables ets_tables; + union { + ErtsEtsTables ets_tables; + erts_atomic32_t dirty_nif_halt_info; + } u; #ifdef ERTS_DO_VERIFY_UNUSED_TEMP_ALLOC erts_alloc_verify_func_t verify_unused_temp_alloc; Allctr_t *verify_unused_temp_alloc_data; @@ -868,9 +871,10 @@ erts_reset_max_len(ErtsRunQueue *rq, ErtsRunQueueInfo *rqi) #define ERTS_PSD_ETS_OWNED_TABLES 6 #define ERTS_PSD_ETS_FIXED_TABLES 7 #define ERTS_PSD_DIST_ENTRY 8 -#define ERTS_PSD_PENDING_SUSPEND 9 /* keep last... */ +#define ERTS_PSD_PENDING_SUSPEND 9 +#define ERTS_PSD_CALL_MEMORY_BP 10 -#define ERTS_PSD_SIZE 10 +#define ERTS_PSD_SIZE 11 typedef struct { void *data[ERTS_PSD_SIZE]; @@ -990,19 +994,15 @@ typedef struct ErtsProcSysTaskQs_ ErtsProcSysTaskQs; # define MSO(p) (p)->off_heap # define MIN_HEAP_SIZE(p) (p)->min_heap_size -# define MIN_VHEAP_SIZE(p) (p)->min_vheap_size -# define BIN_VHEAP_SZ(p) (p)->bin_vheap_sz -# define BIN_OLD_VHEAP_SZ(p) (p)->bin_old_vheap_sz -# define BIN_OLD_VHEAP(p) (p)->bin_old_vheap - -# define MAX_HEAP_SIZE_GET(p) ((p)->max_heap_size >> 2) -# define MAX_HEAP_SIZE_SET(p, sz) ((p)->max_heap_size = ((sz) << 2) | \ +# define MAX_HEAP_SIZE_GET(p) ((p)->max_heap_size >> 3) +# define MAX_HEAP_SIZE_SET(p, sz) ((p)->max_heap_size = ((sz) << 3) | \ MAX_HEAP_SIZE_FLAGS_GET(p)) -# define MAX_HEAP_SIZE_FLAGS_GET(p) ((p)->max_heap_size & 0x3) +# define MAX_HEAP_SIZE_FLAGS_GET(p) ((p)->max_heap_size & 0x7) # define MAX_HEAP_SIZE_FLAGS_SET(p, flags) ((p)->max_heap_size = flags | \ - ((p)->max_heap_size & ~0x3)) + ((p)->max_heap_size & ~0x7)) # define MAX_HEAP_SIZE_KILL 1 # define MAX_HEAP_SIZE_LOG 2 +# define MAX_HEAP_SIZE_INCLUDE_OH_BINS 4 struct process { ErtsPTabElementCommon common; /* *Need* to be first in struct */ @@ -2234,9 +2234,9 @@ erts_psd_set(Process *p, int ix, void *data) ((struct saved_calls *) erts_psd_set((P), ERTS_PSD_SAVED_CALLS_BUF, (void *) (SCB))) #define ERTS_PROC_GET_CALL_TIME(P) \ - ((process_breakpoint_time_t *) erts_psd_get((P), ERTS_PSD_CALL_TIME_BP)) + ((process_breakpoint_trace_t *) erts_psd_get((P), ERTS_PSD_CALL_TIME_BP)) #define ERTS_PROC_SET_CALL_TIME(P, PBT) \ - ((process_breakpoint_time_t *) erts_psd_set((P), ERTS_PSD_CALL_TIME_BP, (void *) (PBT))) + ((process_breakpoint_trace_t *) erts_psd_set((P), ERTS_PSD_CALL_TIME_BP, (void *) (PBT))) #define ERTS_PROC_GET_DELAYED_GC_TASK_QS(P) \ ((ErtsProcSysTaskQs *) erts_psd_get((P), ERTS_PSD_DELAYED_GC_TASK_QS)) @@ -2258,6 +2258,11 @@ erts_psd_set(Process *p, int ix, void *data) #define ERTS_PROC_SET_PENDING_SUSPEND(P, PS) \ ((void *) erts_psd_set((P), ERTS_PSD_PENDING_SUSPEND, (void *) (PS))) +#define ERTS_PROC_GET_CALL_MEMORY(P) \ + ((process_breakpoint_trace_t *) erts_psd_get((P), ERTS_PSD_CALL_MEMORY_BP)) +#define ERTS_PROC_SET_CALL_MEMORY(P, PBT) \ + ((process_breakpoint_trace_t *) erts_psd_set((P), ERTS_PSD_CALL_MEMORY_BP, (void *) (PBT))) + ERTS_GLB_INLINE Eterm erts_proc_get_error_handler(Process *p); ERTS_GLB_INLINE Eterm erts_proc_set_error_handler(Process *p, Eterm handler); |