xref: /reactos/drivers/network/tcpip/ip/lwip_glue/ip.c (revision 9cfd8dd9)
1 #include <lwip/netif.h>
2 #include <lwip/tcpip.h>
3 
4 typedef struct netif* PNETIF;
5 
6 void
7 sys_shutdown(void);
8 
9 void
10 LibIPInsertPacket(void *ifarg,
11                   const void *const data,
12                   const u32_t size)
13 {
14     struct pbuf *p;
15 
16     ASSERT(ifarg);
17     ASSERT(data);
18     ASSERT(size > 0);
19 
20     p = pbuf_alloc(PBUF_RAW, size, PBUF_RAM);
21     if (p)
22     {
23         ASSERT(p->tot_len == p->len);
24         ASSERT(p->len == size);
25 
26         RtlCopyMemory(p->payload, data, p->len);
27 
28         ((PNETIF)ifarg)->input(p, (PNETIF)ifarg);
29     }
30 }
31 
32 void
33 LibIPInitialize(void)
34 {
35     /* This completes asynchronously */
36     tcpip_init(NULL, NULL);
37 }
38 
39 void
40 LibIPShutdown(void)
41 {
42     /* This is synchronous */
43     sys_shutdown();
44 }