miniOS
x86_64 hobby kernel with SMP, VFS, and POSIX process model
Toggle main menu visibility
Loading...
Searching...
No Matches
lwip_port.h
Go to the documentation of this file.
1
// MIT License
2
//
3
// Copyright (c) 2026 Christian Spoo
4
//
5
// Permission is hereby granted, free of charge, to any person obtaining a copy
6
// of this software and associated documentation files (the "Software"), to deal
7
// in the Software without restriction, including without limitation the rights
8
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
// copies of the Software, and to permit persons to whom the Software is
10
// furnished to do so, subject to the following conditions:
11
//
12
// The above copyright notice and this permission notice shall be included in all
13
// copies or substantial portions of the Software.
14
//
15
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
// SOFTWARE.
22
23
#ifndef _MINIOS_NET_LWIP_PORT_H_
24
#define _MINIOS_NET_LWIP_PORT_H_
25
26
#include <
miniOS/net/ethernet.h
>
27
#include <
miniOS/net/netdev.h
>
28
29
typedef
enum
{
30
LWIP_PORT_FRAME_UNSUPPORTED
= 0,
31
LWIP_PORT_FRAME_ARP
,
32
LWIP_PORT_FRAME_IPV4
,
33
}
lwip_port_frame_kind_t
;
34
35
typedef
void (*
lwip_port_rx_callback_t
)(
netdev_t
*dev,
36
lwip_port_frame_kind_t
kind,
37
const
void
*frame,
38
size_t
frame_len,
39
const
ethernet_frame_info_t
*info,
40
void
*ctx);
41
42
typedef
void (*
lwip_port_timeout_callback_t
)(
uint32_t
elapsed_ms,
void
*ctx);
43
44
netdev_t
*
lwip_port_attach
(
lwip_port_rx_callback_t
rx_callback,
45
void
*rx_ctx,
46
lwip_port_timeout_callback_t
timeout_callback,
47
void
*timeout_ctx);
48
void
lwip_port_poll
(
void
);
49
void
lwip_port_poll_timeouts
(
uint32_t
elapsed_ms);
50
int
lwip_port_tx
(
const
void
*frame,
size_t
frame_len);
51
lwip_port_frame_kind_t
lwip_port_classify
(
const
ethernet_frame_info_t
*info);
52
53
#ifdef TEST_BUILD
54
net_device_t
*lwip_port_attached_device(
void
);
55
uint32_t
lwip_port_timeout_accumulator(
void
);
56
uint32_t
lwip_port_drop_count(
void
);
57
#endif
58
59
#endif
/* _MINIOS_NET_LWIP_PORT_H_ */
ethernet.h
lwip_port_tx
int lwip_port_tx(const void *frame, size_t frame_len)
Definition
lwip_port.c:106
lwip_port_frame_kind_t
lwip_port_frame_kind_t
Definition
lwip_port.h:29
LWIP_PORT_FRAME_UNSUPPORTED
@ LWIP_PORT_FRAME_UNSUPPORTED
Definition
lwip_port.h:30
LWIP_PORT_FRAME_ARP
@ LWIP_PORT_FRAME_ARP
Definition
lwip_port.h:31
LWIP_PORT_FRAME_IPV4
@ LWIP_PORT_FRAME_IPV4
Definition
lwip_port.h:32
lwip_port_poll
void lwip_port_poll(void)
Definition
lwip_port.c:94
lwip_port_classify
lwip_port_frame_kind_t lwip_port_classify(const ethernet_frame_info_t *info)
Definition
lwip_port.c:128
lwip_port_rx_callback_t
void(*) lwip_port_rx_callback_t(netdev_t *dev, lwip_port_frame_kind_t kind, const void *frame, size_t frame_len, const ethernet_frame_info_t *info, void *ctx)
Definition
lwip_port.h:35
lwip_port_attach
netdev_t * lwip_port_attach(lwip_port_rx_callback_t rx_callback, void *rx_ctx, lwip_port_timeout_callback_t timeout_callback, void *timeout_ctx)
Definition
lwip_port.c:68
lwip_port_poll_timeouts
void lwip_port_poll_timeouts(uint32_t elapsed_ms)
Definition
lwip_port.c:99
lwip_port_timeout_callback_t
void(*) lwip_port_timeout_callback_t(uint32_t elapsed_ms, void *ctx)
Definition
lwip_port.h:42
netdev.h
net_device_t
netdev_t net_device_t
Definition
netdev.h:66
netdev_t
struct net_device netdev_t
ethernet_frame_info_t
Definition
ethernet.h:34
uint32_t
unsigned int uint32_t
Definition
types.h:34
include
miniOS
net
lwip_port.h
Generated by
1.18.0