ESP-IDF
s_l2tap_sockets
is only used within ESP-IDF.
Symbol previews are coming soon...
Symbols
loading...
Files
loading...
Summary
Syntax
Examples
References
Call Tree
Data Use
Class Tree
Override Tree
Implementations
Instances
Lifecycle
SourceVu
ESP-IDF Framework and Examples
ESP-IDF
s_l2tap_sockets
s_l2tap_sockets variable
Syntax
Show:
Summary
Declaration
from
esp_vfs_l2tap.c:73
static
l2tap_context_t
s_l2tap_sockets
[
L2TAP_MAX_FDS
]
=
{
0
}
;
Examples
References
from
examples
Code
Location
Referrer
static
l2tap_context_t
s_l2tap_sockets
[
L2TAP_MAX_FDS
]
=
{
0
}
;
esp_vfs_l2tap.c:73
if
(
atomic_load
(
&
s_l2tap_sockets
[
i
]
.
state
)
==
L2TAP_SOCK_STATE_OPENED
)
{
esp_vfs_l2tap.c:180
esp_vfs_l2tap_eth_filter()
if
(
s_l2tap_sockets
[
i
]
.
driver_handle
==
driver_handle
&&
(
s_l2tap_sockets
[
i
]
.
ethtype_filter
==
eth_type
||
esp_vfs_l2tap.c:182
esp_vfs_l2tap_eth_filter()
(
s_l2tap_sockets
[
i
]
.
ethtype_filter
<=
ETH_IEEE802_3_MAX_LEN
&&
eth_type
<=
ETH_IEEE802_3_MAX_LEN
)
)
)
{
esp_vfs_l2tap.c:185
esp_vfs_l2tap_eth_filter()
if
(
push_rx_queue
(
&
s_l2tap_sockets
[
i
]
,
buff
,
*
size
)
!=
ESP_OK
)
{
esp_vfs_l2tap.c:187
esp_vfs_l2tap_eth_filter()
s_l2tap_sockets
[
i
]
.
driver_free_rx_buffer
(
s_l2tap_sockets
[
i
]
.
driver_handle
,
buff
)
;
esp_vfs_l2tap.c:189
esp_vfs_l2tap_eth_filter()
if
(
atomic_compare_exchange_strong
(
&
s_l2tap_sockets
[
fd
]
.
state
,
&
exp_state
,
esp_vfs_l2tap.c:214
l2tap_open()
if
(
init_rx_queue
(
&
s_l2tap_sockets
[
fd
]
)
!=
ESP_OK
)
{
esp_vfs_l2tap.c:216
l2tap_open()
atomic_store
(
&
s_l2tap_sockets
[
fd
]
.
state
,
L2TAP_SOCK_STATE_READY
)
;
esp_vfs_l2tap.c:217
l2tap_open()
s_l2tap_sockets
[
fd
]
.
ethtype_filter
=
0x0
;
esp_vfs_l2tap.c:220
l2tap_open()
s_l2tap_sockets
[
fd
]
.
driver_handle
=
NULL
;
esp_vfs_l2tap.c:221
l2tap_open()
s_l2tap_sockets
[
fd
]
.
non_blocking
=
(
(
flags
&
O_NONBLOCK
)
==
O_NONBLOCK
)
;
esp_vfs_l2tap.c:222
l2tap_open()
s_l2tap_sockets
[
fd
]
.
driver_transmit
=
esp_eth_transmit
;
esp_vfs_l2tap.c:223
l2tap_open()
s_l2tap_sockets
[
fd
]
.
driver_free_rx_buffer
=
default_free_rx_buffer
;
esp_vfs_l2tap.c:224
l2tap_open()
if
(
atomic_load
(
&
s_l2tap_sockets
[
fd
]
.
state
)
==
L2TAP_SOCK_STATE_OPENED
)
{
esp_vfs_l2tap.c:240
l2tap_write()
if
(
s_l2tap_sockets
[
fd
]
.
ethtype_filter
>
ETH_IEEE802_3_MAX_LEN
&&
esp_vfs_l2tap.c:241
l2tap_write()
(
(
struct
eth_hdr
*
)
data
)
->
type
!=
htons
(
s_l2tap_sockets
[
fd
]
.
ethtype_filter
)
)
{
esp_vfs_l2tap.c:242
l2tap_write()
if
(
s_l2tap_sockets
[
fd
]
.
driver_transmit
(
s_l2tap_sockets
[
fd
]
.
driver_handle
,
(
void
*
)
data
,
size
)
==
ESP_OK
)
{
esp_vfs_l2tap.c:248
l2tap_write()
if
(
atomic_load
(
&
s_l2tap_sockets
[
fd
]
.
state
)
!=
L2TAP_SOCK_STATE_OPENED
)
{
esp_vfs_l2tap.c:265
l2tap_read()
if
(
(
actual_size
=
pop_rx_queue
(
&
s_l2tap_sockets
[
fd
]
,
data
,
size
)
)
<
0
)
{
esp_vfs_l2tap.c:276
l2tap_read()
if
(
atomic_load
(
&
s_l2tap_sockets
[
fd
]
.
state
)
!=
L2TAP_SOCK_STATE_OPENED
)
{
esp_vfs_l2tap.c:306
l2tap_close()
atomic_store
(
&
s_l2tap_sockets
[
fd
]
.
state
,
L2TAP_SOCK_STATE_CLOSING
)
;
esp_vfs_l2tap.c:313
l2tap_close()
if
(
(
s_l2tap_sockets
[
fd
]
.
close_done_sem
=
xSemaphoreCreateBinary
(
)
)
==
NULL
)
{
esp_vfs_l2tap.c:315
l2tap_close()
if
(
xTaskCreate
(
l2tap_clean_task
,
"l2tap_clean_task"
,
1024
,
&
s_l2tap_sockets
[
fd
]
,
tskIDLE_PRIORITY
,
NULL
)
==
pdFAIL
)
{
esp_vfs_l2tap.c:322
l2tap_close()
xSemaphoreTake
(
s_l2tap_sockets
[
fd
]
.
close_done_sem
,
portMAX_DELAY
)
;
esp_vfs_l2tap.c:328
l2tap_close()
vSemaphoreDelete
(
s_l2tap_sockets
[
fd
]
.
close_done_sem
)
;
// no worries to delete, this task owns the semaphore
esp_vfs_l2tap.c:329
l2tap_close()
atomic_store
(
&
s_l2tap_sockets
[
fd
]
.
state
,
L2TAP_SOCK_STATE_READY
)
;
esp_vfs_l2tap.c:332
l2tap_close()
if
(
s_l2tap_sockets
[
fd
]
.
driver_handle
==
NULL
)
{
esp_vfs_l2tap.c:350
l2tap_ioctl()
if
(
s_l2tap_sockets
[
fd
]
.
ethtype_filter
!=
*
new_ethtype_filter
)
{
esp_vfs_l2tap.c:357
l2tap_ioctl()
if
(
atomic_load
(
&
s_l2tap_sockets
[
i
]
.
state
)
==
L2TAP_SOCK_STATE_OPENED
&&
esp_vfs_l2tap.c:360
l2tap_ioctl()
s_l2tap_sockets
[
i
]
.
driver_handle
==
s_l2tap_sockets
[
fd
]
.
driver_handle
&&
esp_vfs_l2tap.c:361
l2tap_ioctl()
s_l2tap_sockets
[
i
]
.
ethtype_filter
==
*
new_ethtype_filter
)
{
esp_vfs_l2tap.c:362
l2tap_ioctl()
s_l2tap_sockets
[
fd
]
.
ethtype_filter
=
*
new_ethtype_filter
;
esp_vfs_l2tap.c:369
l2tap_ioctl()
*
ethtype_filter_dest
=
s_l2tap_sockets
[
fd
]
.
ethtype_filter
;
esp_vfs_l2tap.c:375
l2tap_ioctl()
s_l2tap_sockets
[
fd
]
.
driver_handle
=
esp_netif_get_io_driver
(
esp_netif
)
;
esp_vfs_l2tap.c:386
l2tap_ioctl()
if
(
(
esp_netif
=
esp_netif_find_if
(
netif_driver_matches
,
s_l2tap_sockets
[
fd
]
.
driver_handle
)
)
!=
NULL
)
{
esp_vfs_l2tap.c:392
l2tap_ioctl()
s_l2tap_sockets
[
fd
]
.
driver_handle
=
set_driver_hdl
;
esp_vfs_l2tap.c:404
l2tap_ioctl()
*
get_driver_hdl
=
s_l2tap_sockets
[
fd
]
.
driver_handle
;
esp_vfs_l2tap.c:409
l2tap_ioctl()
if
(
s_l2tap_sockets
[
fd
]
.
non_blocking
)
{
esp_vfs_l2tap.c:428
l2tap_fcntl()
s_l2tap_sockets
[
fd
]
.
non_blocking
=
(
arg
&
O_NONBLOCK
)
!=
0
;
esp_vfs_l2tap.c:432
l2tap_fcntl()
if
(
!
rx_queue_empty
(
&
s_l2tap_sockets
[
i
]
)
)
{
esp_vfs_l2tap.c:544
l2tap_start_select()
ESP_RETURN_ON_FALSE
(
atomic_load
(
&
s_l2tap_sockets
[
i
]
.
state
)
==
L2TAP_SOCK_STATE_READY
,
esp_vfs_l2tap.c:621
esp_vfs_l2tap_intf_unregister()
Call Tree
from
examples
All items filtered out
All items filtered out
Data Use
from
examples
s_l2tap_sockets
is read by 9 functions:
All items filtered out
s_l2tap_sockets
esp_vfs_l2tap_eth_filter()
l2tap_open()
l2tap_write()
l2tap_read()
l2tap_close()
l2tap_ioctl()
l2tap_fcntl()
l2tap_start_select()
esp_vfs_l2tap_intf_unregister()
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