mirror of
https://github.com/JannisHeydemann/BoredOS.git
synced 2026-05-30 02:16:58 +00:00
pr: Standardize string functions for freestanding env #29
This commit is contained in:
committed by
GitHub
parent
51900ca0a7
commit
f171ff7278
@@ -92,10 +92,10 @@ int network_init(void) {
|
||||
extern void serial_write(const char *str);
|
||||
serial_write("[NET] IP Assigned: ");
|
||||
char buf[32];
|
||||
k_itoa(ip.bytes[0], buf); serial_write(buf); serial_write(".");
|
||||
k_itoa(ip.bytes[1], buf); serial_write(buf); serial_write(".");
|
||||
k_itoa(ip.bytes[2], buf); serial_write(buf); serial_write(".");
|
||||
k_itoa(ip.bytes[3], buf); serial_write(buf); serial_write("\n");
|
||||
itoa(ip.bytes[0], buf); serial_write(buf); serial_write(".");
|
||||
itoa(ip.bytes[1], buf); serial_write(buf); serial_write(".");
|
||||
itoa(ip.bytes[2], buf); serial_write(buf); serial_write(".");
|
||||
itoa(ip.bytes[3], buf); serial_write(buf); serial_write("\n");
|
||||
} else {
|
||||
extern void serial_write(const char *str);
|
||||
serial_write("[NET] DHCP Failed during init\n");
|
||||
|
||||
@@ -37,13 +37,13 @@ int e1000_init(pci_device_t* pci_dev) {
|
||||
extern void serial_write(const char *str);
|
||||
serial_write("[E1000] MMIO Base (virt): 0x");
|
||||
char hex_buf[32];
|
||||
k_itoa_hex((uint64_t)mmio_base, hex_buf);
|
||||
itoa_hex((uint64_t)mmio_base, hex_buf);
|
||||
serial_write(hex_buf);
|
||||
serial_write("\n");
|
||||
|
||||
uint32_t status_reg = e1000_read_reg(mmio_base, E1000_REG_STATUS);
|
||||
serial_write("[E1000] Status: 0x");
|
||||
k_itoa_hex(status_reg, hex_buf);
|
||||
itoa_hex(status_reg, hex_buf);
|
||||
serial_write(hex_buf);
|
||||
serial_write("\n");
|
||||
|
||||
@@ -69,7 +69,7 @@ int e1000_init(pci_device_t* pci_dev) {
|
||||
serial_write("[E1000] MAC: ");
|
||||
for(int i=0; i<6; i++) {
|
||||
char buf[4];
|
||||
k_itoa_hex(e1000_dev.mac_address.bytes[i], buf);
|
||||
itoa_hex(e1000_dev.mac_address.bytes[i], buf);
|
||||
serial_write(buf);
|
||||
if(i<5) serial_write(":");
|
||||
}
|
||||
@@ -81,8 +81,8 @@ int e1000_init(pci_device_t* pci_dev) {
|
||||
e1000_dev.tx_descriptors = tx_descriptors;
|
||||
e1000_dev.tx_head = 0;
|
||||
e1000_dev.tx_tail = 0;
|
||||
k_memset(tx_descriptors, 0, sizeof(tx_descriptors));
|
||||
k_memset(tx_buffers, 0, sizeof(tx_buffers));
|
||||
memset(tx_descriptors, 0, sizeof(tx_descriptors));
|
||||
memset(tx_buffers, 0, sizeof(tx_buffers));
|
||||
|
||||
for (int i = 0; i < E1000_TX_RING_SIZE; i++) {
|
||||
e1000_dev.tx_buffers[i] = tx_buffers[i];
|
||||
@@ -102,8 +102,8 @@ int e1000_init(pci_device_t* pci_dev) {
|
||||
e1000_dev.rx_descriptors = rx_descriptors;
|
||||
e1000_dev.rx_head = 0;
|
||||
e1000_dev.rx_tail = E1000_RX_RING_SIZE - 1;
|
||||
k_memset(rx_descriptors, 0, sizeof(rx_descriptors));
|
||||
k_memset(rx_buffers, 0, sizeof(rx_buffers));
|
||||
memset(rx_descriptors, 0, sizeof(rx_descriptors));
|
||||
memset(rx_buffers, 0, sizeof(rx_buffers));
|
||||
for (int i = 0; i < E1000_RX_RING_SIZE; i++) {
|
||||
e1000_dev.rx_buffers[i] = rx_buffers[i];
|
||||
e1000_dev.rx_descriptors[i].buffer_addr = v2p((uint64_t)(uintptr_t)rx_buffers[i]);
|
||||
|
||||
@@ -85,7 +85,7 @@ int rtl8111_init(pci_device_t* pci_dev) {
|
||||
|
||||
extern void serial_write(const char *str);
|
||||
serial_write("[RTL8111] MMIO Base: 0x");
|
||||
char hex_buf[32]; k_itoa_hex(mmio_base_addr, hex_buf); serial_write(hex_buf); serial_write("\n");
|
||||
char hex_buf[32]; itoa_hex(mmio_base_addr, hex_buf); serial_write(hex_buf); serial_write("\n");
|
||||
|
||||
rtl8111_outb(RTL8111_CR, RTL8111_CR_RST);
|
||||
for (int i = 0; i < 100000; i++) {
|
||||
@@ -103,14 +103,14 @@ int rtl8111_init(pci_device_t* pci_dev) {
|
||||
|
||||
serial_write("[RTL8111] MAC: ");
|
||||
for(int i=0; i<6; i++) {
|
||||
char buf[4]; k_itoa_hex(mac_addr[i], buf); serial_write(buf);
|
||||
char buf[4]; itoa_hex(mac_addr[i], buf); serial_write(buf);
|
||||
if(i<5) serial_write(":");
|
||||
}
|
||||
serial_write("\n");
|
||||
|
||||
rtl8111_outb(0x50, 0xC0);
|
||||
|
||||
k_memset(rx_desc, 0, sizeof(rx_desc));
|
||||
memset(rx_desc, 0, sizeof(rx_desc));
|
||||
for (int i = 0; i < RTL8111_NUM_RX_DESC; i++) {
|
||||
uint64_t buf_phys = v2p((uint64_t)(uintptr_t)rx_buffers[i]);
|
||||
rx_desc[i].buf_addr = buf_phys;
|
||||
@@ -125,7 +125,7 @@ int rtl8111_init(pci_device_t* pci_dev) {
|
||||
rtl8111_outl(RTL8111_RDSAR, (uint32_t)rx_ring_phys);
|
||||
rtl8111_outl(RTL8111_RDSAR + 4, (uint32_t)(rx_ring_phys >> 32));
|
||||
|
||||
k_memset(tx_desc, 0, sizeof(tx_desc));
|
||||
memset(tx_desc, 0, sizeof(tx_desc));
|
||||
uint64_t tx_ring_phys = v2p((uint64_t)(uintptr_t)tx_desc);
|
||||
rtl8111_outl(RTL8111_TDSAR, (uint32_t)tx_ring_phys);
|
||||
rtl8111_outl(RTL8111_TDSAR + 4, (uint32_t)(tx_ring_phys >> 32));
|
||||
|
||||
@@ -65,7 +65,7 @@ int rtl8139_init(pci_device_t* pci_dev) {
|
||||
|
||||
extern void serial_write(const char *str);
|
||||
serial_write("[RTL8139] MMIO Base: 0x");
|
||||
char hex_buf[32]; k_itoa_hex(mmio_base_addr, hex_buf); serial_write(hex_buf); serial_write("\n");
|
||||
char hex_buf[32]; itoa_hex(mmio_base_addr, hex_buf); serial_write(hex_buf); serial_write("\n");
|
||||
|
||||
// Power on (CONFIG1)
|
||||
rtl8139_outb(RTL8139_CONFIG_1, 0x00);
|
||||
@@ -89,7 +89,7 @@ int rtl8139_init(pci_device_t* pci_dev) {
|
||||
serial_write("[RTL8139] MAC: ");
|
||||
for(int i=0; i<6; i++) {
|
||||
char buf[4];
|
||||
k_itoa_hex(mac_addr[i], buf);
|
||||
itoa_hex(mac_addr[i], buf);
|
||||
serial_write(buf);
|
||||
if(i<5) serial_write(":");
|
||||
}
|
||||
|
||||
@@ -87,7 +87,7 @@ static void virtqueue_init(struct virtqueue* vq, uint8_t* mem, uint16_t qsize) {
|
||||
uintptr_t used_start = (avail_end + 4095) & ~4095;
|
||||
vq->used = (struct vq_used*)used_start;
|
||||
|
||||
k_memset(mem, 0, 16384);
|
||||
memset(mem, 0, 16384);
|
||||
}
|
||||
|
||||
int virtio_net_init(pci_device_t* pci_dev) {
|
||||
@@ -105,7 +105,7 @@ int virtio_net_init(pci_device_t* pci_dev) {
|
||||
|
||||
extern void serial_write(const char *str);
|
||||
serial_write("[VIRTIO-NET] I/O Base: 0x");
|
||||
char hex_buf[32]; k_itoa_hex(io_base, hex_buf); serial_write(hex_buf); serial_write("\n");
|
||||
char hex_buf[32]; itoa_hex(io_base, hex_buf); serial_write(hex_buf); serial_write("\n");
|
||||
|
||||
outb(io_base + VIRTIO_PCI_STATUS, 0);
|
||||
|
||||
@@ -145,7 +145,7 @@ int virtio_net_init(pci_device_t* pci_dev) {
|
||||
serial_write("[VIRTIO-NET] MAC: ");
|
||||
for(int i=0; i<6; i++) {
|
||||
char buf[4];
|
||||
k_itoa_hex(mac_addr[i], buf);
|
||||
itoa_hex(mac_addr[i], buf);
|
||||
serial_write(buf);
|
||||
if(i<5) serial_write(":");
|
||||
}
|
||||
@@ -176,7 +176,7 @@ int virtio_net_send_packet(const void* data, size_t length) {
|
||||
uint16_t head = tx_vq.last_avail_idx % (tx_vq.q_size / 2);
|
||||
uint16_t d_idx = head * 2;
|
||||
|
||||
k_memset(&tx_hdr[head], 0, sizeof(struct virtio_net_hdr));
|
||||
memset(&tx_hdr[head], 0, sizeof(struct virtio_net_hdr));
|
||||
tx_vq.desc[d_idx].addr = v2p((uint64_t)(uintptr_t)&tx_hdr[head]);
|
||||
tx_vq.desc[d_idx].len = sizeof(struct virtio_net_hdr);
|
||||
tx_vq.desc[d_idx].flags = VRING_DESC_F_NEXT;
|
||||
|
||||
2
src/net/third_party/lwip/stdlib.h
vendored
2
src/net/third_party/lwip/stdlib.h
vendored
@@ -3,7 +3,7 @@
|
||||
|
||||
#include "kutils.h"
|
||||
|
||||
#define atoi k_atoi
|
||||
#define atoi atoi
|
||||
#define rand() 0
|
||||
#define exit(x) while(1)
|
||||
|
||||
|
||||
81
src/net/third_party/lwip/string.h
vendored
81
src/net/third_party/lwip/string.h
vendored
@@ -1,78 +1,15 @@
|
||||
#ifndef LWIP_STRING_H
|
||||
#define LWIP_STRING_H
|
||||
|
||||
/*
|
||||
Forward Facing header, if you want to remove it
|
||||
replace its references with kutils!
|
||||
|
||||
or it wont compile
|
||||
probably
|
||||
myles
|
||||
*/
|
||||
|
||||
#include "kutils.h"
|
||||
|
||||
#define memcpy k_memcpy
|
||||
#define memset k_memset
|
||||
#define strlen k_strlen
|
||||
#define strcmp k_strcmp
|
||||
#define strcpy k_strcpy
|
||||
|
||||
static inline int memcmp(const void *s1, const void *s2, size_t n) {
|
||||
const unsigned char *p1 = (const unsigned char *)s1;
|
||||
const unsigned char *p2 = (const unsigned char *)s2;
|
||||
while (n--) {
|
||||
if (*p1 != *p2) return (int)*p1 - (int)*p2;
|
||||
p1++; p2++;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline void *memmove(void *dest, const void *src, size_t n) {
|
||||
unsigned char *d = (unsigned char *)dest;
|
||||
const unsigned char *s = (const unsigned char *)src;
|
||||
if (d < s) {
|
||||
while (n--) *d++ = *s++;
|
||||
} else {
|
||||
d += n;
|
||||
s += n;
|
||||
while (n--) *--d = *--s;
|
||||
}
|
||||
return dest;
|
||||
}
|
||||
|
||||
static inline char *strchr(const char *s, int c) {
|
||||
while (*s) {
|
||||
if (*s == (char)c) return (char *)s;
|
||||
s++;
|
||||
}
|
||||
if (c == 0) return (char *)s;
|
||||
return (void*)0;
|
||||
}
|
||||
|
||||
static inline int strncmp(const char *s1, const char *s2, size_t n) {
|
||||
while (n && *s1 && (*s1 == *s2)) {
|
||||
s1++;
|
||||
s2++;
|
||||
n--;
|
||||
}
|
||||
if (n == 0) return 0;
|
||||
return (int)*(const unsigned char *)s1 - (int)*(const unsigned char *)s2;
|
||||
}
|
||||
|
||||
static inline char *strncpy(char *dest, const char *src, size_t n) {
|
||||
size_t i;
|
||||
for (i = 0; i < n && src[i] != '\0'; i++)
|
||||
dest[i] = src[i];
|
||||
for ( ; i < n; i++)
|
||||
dest[i] = '\0';
|
||||
return dest;
|
||||
}
|
||||
|
||||
static inline char *strstr(const char *haystack, const char *needle) {
|
||||
if (!*needle) return (char *)haystack;
|
||||
for (; *haystack; haystack++) {
|
||||
if (*haystack == *needle) {
|
||||
const char *h = haystack;
|
||||
const char *n = needle;
|
||||
while (*h && *n && *h == *n) {
|
||||
h++; n++;
|
||||
}
|
||||
if (!*n) return (char *)haystack;
|
||||
}
|
||||
}
|
||||
return (void*)0;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user