Voxia OS v0.0.1
Hobby Project Operating System Targeting x86-64
Loading...
Searching...
No Matches
netutils.h
Go to the documentation of this file.
1#ifndef __NET__NETUTILS_H__
2#define __NET__NETUTILS_H__
3
4#include <type.h>
5
6static inline uint16_t vxHtons(uint16_t value) {
7 return (uint16_t) ((value << 8) | (value >> 8));
8}
9
10static inline uint16_t vxNtohs(uint16_t netshort) {
11 return (uint16_t) ((netshort >> 8) | (netshort << 8));
12}
13
14// full 4-byte swap
16 return ((value & 0xFF000000) >> 24) | ((value & 0x00FF0000) >> 8)
17 | ((value & 0x0000FF00) << 8) | ((value & 0x000000FF) << 24);
18}
19
20static inline uint32_t vxNtohl(uint32_t netlong) {
21 return ((netlong & 0xFF000000) >> 24) | ((netlong & 0x00FF0000) >> 8)
22 | ((netlong & 0x0000FF00) << 8) | ((netlong & 0x000000FF) << 24);
23}
24
25uint32_t vxInetAddr(const char* addr);
26
29char* vxInetNtoa(uint32_t ip, char* buffer);
30
31#endif // __NET__NETUTILS_H__
volatile uint64_t addr
Definition e1000.hpp:0
volatile uint32_t buffer[5]
Definition ehci.hpp:8
struct fs_data data
Definition filesystem.h:1
static uint16_t vxNtohs(uint16_t netshort)
Definition netutils.h:10
static uint32_t vxNtohl(uint32_t netlong)
Definition netutils.h:20
char * vxInetNtoa(uint32_t ip, char *buffer)
Definition netutils.c:78
static uint32_t vxHtonl(uint32_t value)
Definition netutils.h:15
static uint16_t vxHtons(uint16_t value)
Definition netutils.h:6
uint32_t checksum16_raw(const uint16_t *data, size_t length)
Definition netutils.c:49
uint16_t checksum16_adc(const uint16_t *data, size_t length)
Definition netutils.c:26
uint32_t vxInetAddr(const char *addr)
Definition netutils.c:3
return value
Definition oct2bin.h:22
unsigned short uint16_t
Definition type.h:13
unsigned int uint32_t
Definition type.h:19
uint32_t length
Definition virtio.h:7