ESP-IDF
context
is only used within ESP-IDF.
Symbol previews are coming soon...
Symbols
loading (4/5)...
Files
loading (4/5)...
Summary
Syntax
Examples
References
Call Tree
Data Use
Class Tree
Override Tree
Implementations
Instances
Lifecycle
SourceVu
ESP-IDF Framework and Examples
ESP-IDF
context
context variable
Syntax
Show:
Summary
Declaration
from
sdio_slave.c:171
static
sdio_context_t
context
=
CONTEXT_INIT_VAL
;
Examples
References
from
examples
Code
Location
Referrer
static
sdio_context_t
context
=
CONTEXT_INIT_VAL
;
sdio_slave.c:171
context
.
config
=
(
sdio_slave_config_t
)
{
}
;
sdio_slave.c:206
deinit_context()
if
(
context
.
events
[
i
]
!=
NULL
)
{
sdio_slave.c:208
deinit_context()
vSemaphoreDelete
(
context
.
events
[
i
]
)
;
sdio_slave.c:209
deinit_context()
context
.
events
[
i
]
=
NULL
;
sdio_slave.c:210
deinit_context()
if
(
context
.
ret_queue
!=
NULL
)
{
sdio_slave.c:213
deinit_context()
vQueueDelete
(
context
.
ret_queue
)
;
sdio_slave.c:214
deinit_context()
context
.
ret_queue
=
NULL
;
sdio_slave.c:215
deinit_context()
if
(
context
.
remain_cnt
!=
NULL
)
{
sdio_slave.c:217
deinit_context()
vSemaphoreDelete
(
context
.
remain_cnt
)
;
sdio_slave.c:218
deinit_context()
free
(
context
.
hal
->
send_desc_queue
.
data
)
;
sdio_slave.c:220
deinit_context()
context
.
hal
->
send_desc_queue
.
data
=
NULL
;
sdio_slave.c:221
deinit_context()
free
(
context
.
hal
)
;
sdio_slave.c:222
deinit_context()
context
.
hal
=
NULL
;
sdio_slave.c:223
deinit_context()
SDIO_SLAVE_CHECK
(
*
(
uint32_t
*
)
&
context
.
config
==
0
,
"sdio slave already initialized"
,
ESP_ERR_INVALID_STATE
)
;
sdio_slave.c:228
init_context()
context
=
(
sdio_context_t
)
CONTEXT_INIT_VAL
;
sdio_slave.c:229
init_context()
context
.
config
=
*
config
;
sdio_slave.c:230
init_context()
context
.
hal
=
(
sdio_slave_context_t
*
)
heap_caps_calloc
(
sizeof
(
sdio_slave_context_t
)
,
1
,
MALLOC_CAP_INTERNAL
|
MALLOC_CAP_8BIT
)
;
sdio_slave.c:233
init_context()
if
(
context
.
hal
==
NULL
)
{
sdio_slave.c:234
init_context()
context
.
hal
->
sending_mode
=
config
->
sending_mode
;
sdio_slave.c:238
init_context()
context
.
hal
->
timing
=
config
->
timing
;
sdio_slave.c:239
init_context()
context
.
hal
->
no_highspeed
=
(
config
->
flags
&
SDIO_SLAVE_FLAG_DEFAULT_SPEED
)
==
SDIO_SLAVE_FLAG_DEFAULT_SPEED
;
sdio_slave.c:240
init_context()
context
.
hal
->
send_queue_size
=
config
->
send_queue_size
;
sdio_slave.c:241
init_context()
context
.
hal
->
recv_buffer_size
=
config
->
recv_buffer_size
;
sdio_slave.c:242
init_context()
sdio_ringbuf_t
*
buf
=
&
(
context
.
hal
->
send_desc_queue
)
;
sdio_slave.c:244
init_context()
sdio_slave_hal_init
(
context
.
hal
)
;
sdio_slave.c:252
init_context()
context
.
recv_event
=
xSemaphoreCreateCounting
(
UINT32_MAX
,
0
)
;
sdio_slave.c:256
init_context()
context
.
events
[
i
]
=
xSemaphoreCreateBinary
(
)
;
sdio_slave.c:259
init_context()
if
(
context
.
events
[
i
]
==
NULL
)
{
sdio_slave.c:261
init_context()
context
.
remain_cnt
=
xSemaphoreCreateCounting
(
context
.
config
.
send_queue_size
,
context
.
config
.
send_queue_size
)
;
sdio_slave.c:267
init_context()
if
(
context
.
remain_cnt
==
NULL
)
{
sdio_slave.c:268
init_context()
context
.
ret_queue
=
xQueueCreate
(
config
->
send_queue_size
,
sizeof
(
void
*
)
)
;
sdio_slave.c:272
init_context()
if
(
context
.
ret_queue
==
NULL
)
{
sdio_slave.c:273
init_context()
sdio_slave_hal_hw_init
(
context
.
hal
)
;
sdio_slave.c:324
sdio_slave_hw_init()
context
.
intr_handle
=
intr_handle
;
sdio_slave.c:370
sdio_slave_initialize()
TAILQ_FOREACH_SAFE
(
desc
,
&
context
.
recv_reg_list
,
tail_entry
,
temp_desc
)
{
sdio_slave.c:400
sdio_slave_deinit()
TAILQ_REMOVE
(
&
context
.
recv_reg_list
,
desc
,
tail_entry
)
;
sdio_slave.c:401
sdio_slave_deinit()
desc
=
(
recv_desc_t
*
)
sdio_slave_hal_recv_unload_desc
(
context
.
hal
)
;
sdio_slave.c:406
sdio_slave_deinit()
esp_err_t
ret
=
esp_intr_free
(
context
.
intr_handle
)
;
sdio_slave.c:412
sdio_slave_deinit()
context
.
intr_handle
=
NULL
;
sdio_slave.c:415
sdio_slave_deinit()
sdio_slave_hal_hostint_clear
(
context
.
hal
,
&
intr
)
;
sdio_slave.c:423
sdio_slave_start()
ret
=
sdio_slave_hal_send_start
(
context
.
hal
)
;
sdio_slave.c:424
sdio_slave_start()
sdio_slave_hal_recv_start
(
context
.
hal
)
;
sdio_slave.c:430
sdio_slave_start()
sdio_slave_hal_set_ioready
(
context
.
hal
,
true
)
;
sdio_slave.c:433
sdio_slave_start()
err
=
sdio_slave_hal_send_reset_counter
(
context
.
hal
)
;
sdio_slave.c:445
sdio_slave_reset()
sdio_slave_hal_recv_reset_counter
(
context
.
hal
)
;
sdio_slave.c:456
sdio_slave_reset()
sdio_slave_hal_set_ioready
(
context
.
hal
,
false
)
;
sdio_slave.c:464
sdio_slave_stop()
sdio_slave_hal_send_stop
(
context
.
hal
)
;
sdio_slave.c:465
sdio_slave_stop()
sdio_slave_hal_recv_stop
(
context
.
hal
)
;
sdio_slave.c:466
sdio_slave_stop()
sdio_slave_hal_slvint_fetch_clear
(
context
.
hal
,
&
int_val
)
;
sdio_slave.c:482
sdio_intr_host()
if
(
context
.
config
.
event_cb
!=
NULL
)
{
sdio_slave.c:486
sdio_intr_host()
(
*
context
.
config
.
event_cb
)
(
i
)
;
sdio_slave.c:487
sdio_intr_host()
xSemaphoreGiveFromISR
(
context
.
events
[
i
]
,
&
yield
)
;
sdio_slave.c:489
sdio_intr_host()
return
xSemaphoreTake
(
context
.
events
[
pos
]
,
wait
)
;
sdio_slave.c:500
sdio_slave_wait_int()
return
sdio_slave_hal_host_get_reg
(
context
.
hal
,
pos
)
;
sdio_slave.c:511
sdio_slave_read_reg()
portENTER_CRITICAL
(
&
context
.
reg_spinlock
)
;
sdio_slave.c:525
sdio_slave_write_reg()
sdio_slave_hal_host_set_reg
(
context
.
hal
,
pos
,
reg
)
;
sdio_slave.c:526
sdio_slave_write_reg()
portEXIT_CRITICAL
(
&
context
.
reg_spinlock
)
;
sdio_slave.c:527
sdio_slave_write_reg()
sdio_slave_hal_hostint_get_ena
(
context
.
hal
,
&
host_int
)
;
sdio_slave.c:534
sdio_slave_get_host_intena()
sdio_slave_hal_hostint_set_ena
(
context
.
hal
,
&
mask
)
;
sdio_slave.c:540
sdio_slave_set_host_intena()
sdio_slave_hal_hostint_clear
(
context
.
hal
,
&
mask
)
;
sdio_slave.c:545
sdio_slave_clear_host_int()
sdio_slave_hal_hostint_send
(
context
.
hal
,
&
intr
)
;
sdio_slave.c:557
sdio_slave_send_host_int()
sdio_slave_hal_send_handle_isr_invoke
(
context
.
hal
)
;
sdio_slave.c:576
sdio_intr_send()
if
(
sdio_slave_hal_send_eof_happened
(
context
.
hal
)
)
{
sdio_slave.c:579
sdio_intr_send()
err
=
sdio_slave_hal_send_get_next_finished_arg
(
context
.
hal
,
&
finished_arg
,
&
returned_cnt
)
;
sdio_slave.c:585
sdio_intr_send()
ret
=
xQueueSendFromISR
(
context
.
ret_queue
,
&
finished_arg
,
&
yield
)
;
sdio_slave.c:592
sdio_intr_send()
ret
=
xSemaphoreGiveFromISR
(
context
.
remain_cnt
,
&
yield
)
;
sdio_slave.c:597
sdio_intr_send()
sdio_slave_hal_send_new_packet_if_exist
(
context
.
hal
)
;
sdio_slave.c:602
sdio_intr_send()
BaseType_t
cnt_ret
=
xSemaphoreTake
(
context
.
remain_cnt
,
wait
)
;
sdio_slave.c:615
sdio_slave_send_queue()
portENTER_CRITICAL
(
&
context
.
write_spinlock
)
;
sdio_slave.c:620
sdio_slave_send_queue()
esp_err_t
ret
=
sdio_slave_hal_send_queue
(
context
.
hal
,
addr
,
len
,
arg
)
;
sdio_slave.c:621
sdio_slave_send_queue()
portEXIT_CRITICAL
(
&
context
.
write_spinlock
)
;
sdio_slave.c:622
sdio_slave_send_queue()
BaseType_t
err
=
xQueueReceive
(
context
.
ret_queue
,
&
arg
,
wait
)
;
sdio_slave.c:633
sdio_slave_send_get_finished()
err
=
sdio_slave_hal_send_flush_next_buffer
(
context
.
hal
,
&
finished_arg
,
&
return_cnt
)
;
sdio_slave.c:670
send_flush_data()
ret
=
xQueueSend
(
context
.
ret_queue
,
&
finished_arg
,
portMAX_DELAY
)
;
sdio_slave.c:672
send_flush_data()
ret
=
xSemaphoreGive
(
context
.
remain_cnt
)
;
sdio_slave.c:675
send_flush_data()
portENTER_CRITICAL
(
&
context
.
recv_spinlock
)
;
sdio_slave.c:700
critical_enter_recv()
portEXIT_CRITICAL
(
&
context
.
recv_spinlock
)
;
sdio_slave.c:705
critical_exit_recv()
BaseType_t
ret
=
xSemaphoreTake
(
context
.
recv_event
,
0
)
;
sdio_slave.c:712
recv_flush_data()
sdio_slave_hal_recv_flush_one_buffer
(
context
.
hal
)
;
sdio_slave.c:717
recv_flush_data()
bool
triggered
=
sdio_slave_hal_recv_done
(
context
.
hal
)
;
sdio_slave.c:726
sdio_intr_recv()
portENTER_CRITICAL_ISR
(
&
context
.
recv_spinlock
)
;
sdio_slave.c:728
sdio_intr_recv()
bool
has_next_item
=
sdio_slave_hal_recv_has_next_item
(
context
.
hal
)
;
sdio_slave.c:729
sdio_intr_recv()
portEXIT_CRITICAL_ISR
(
&
context
.
recv_spinlock
)
;
sdio_slave.c:730
sdio_intr_recv()
xSemaphoreGiveFromISR
(
context
.
recv_event
,
&
yield
)
;
sdio_slave.c:733
sdio_intr_recv()
triggered
=
sdio_slave_hal_recv_done
(
context
.
hal
)
;
sdio_slave.c:738
sdio_intr_recv()
TAILQ_REMOVE
(
&
context
.
recv_reg_list
,
desc
,
tail_entry
)
;
sdio_slave.c:752
sdio_slave_recv_load_buf()
sdio_slave_hal_load_buf
(
context
.
hal
,
&
desc
->
hal_desc
)
;
sdio_slave.c:754
sdio_slave_recv_load_buf()
sdio_slave_hal_recv_init_desc
(
context
.
hal
,
&
desc
->
hal_desc
,
start
)
;
sdio_slave.c:770
sdio_slave_recv_register_buf()
TAILQ_INSERT_TAIL
(
&
context
.
recv_reg_list
,
desc
,
tail_entry
)
;
sdio_slave.c:772
sdio_slave_recv_register_buf()
BaseType_t
err
=
xSemaphoreTake
(
context
.
recv_event
,
wait
)
;
sdio_slave.c:799
sdio_slave_recv_packet()
recv_desc_t
*
desc
=
(
recv_desc_t
*
)
sdio_slave_hal_recv_unload_desc
(
context
.
hal
)
;
sdio_slave.c:807
sdio_slave_recv_packet()
TAILQ_INSERT_TAIL
(
&
context
.
recv_reg_list
,
desc
,
tail_entry
)
;
sdio_slave.c:809
sdio_slave_recv_packet()
TAILQ_REMOVE
(
&
context
.
recv_reg_list
,
desc
,
tail_entry
)
;
sdio_slave.c:826
sdio_slave_recv_unregister_buf()
Call Tree
from
examples
All items filtered out
All items filtered out
Data Use
from
examples
context
is written by 1 function and is read by 28 functions:
init_context()
All items filtered out
context
deinit_context()
init_context()
sdio_slave_hw_init()
sdio_slave_initialize()
sdio_slave_deinit()
sdio_slave_start()
sdio_slave_reset()
sdio_slave_stop()
sdio_intr_host()
sdio_slave_wait_int()
sdio_slave_read_reg()
sdio_slave_write_reg()
sdio_slave_get_host_intena()
sdio_slave_set_host_intena()
sdio_slave_clear_host_int()
sdio_slave_send_host_int()
sdio_intr_send()
sdio_slave_send_queue()
sdio_slave_send_get_finished()
send_flush_data()
critical_enter_recv()
critical_exit_recv()
recv_flush_data()
sdio_intr_recv()
sdio_slave_recv_load_buf()
sdio_slave_recv_register_buf()
sdio_slave_recv_packet()
sdio_slave_recv_unregister_buf()
All items filtered out
Class Tree
from
examples
All items filtered out
All items filtered out
Override Tree
from
examples
All items filtered out
All items filtered out
Implementations
from
examples
All items filtered out
All items filtered out
Instances
from
examples
Lifecycle
from
examples
All items filtered out
All items filtered out