]> Projects (at) Tadryanom (dot) Me - AdrOS.git/commit
kernel: add SOCK_RAW support and ICMP ping test
authorTulio A M Mendes <[email protected]>
Wed, 20 May 2026 12:00:45 +0000 (09:00 -0300)
committerTulio A M Mendes <[email protected]>
Wed, 20 May 2026 12:00:45 +0000 (09:00 -0300)
commit73200941bfd8cce6e0c610dea0a06872ad6537fc
treeaae48e5460c36b054b5f9936536a5f197985b11b
parent09ad31a2662a4dcb36dbb00d0f9202ee0ad08c79
kernel: add SOCK_RAW support and ICMP ping test

- Add SOCK_RAW/IPPROTO_ICMP/IPPROTO_RAW constants to socket.h
- Extend ksocket struct with protocol field and raw_pcb pointer
- Add raw_recv_cb callback for receiving raw IP packets into ring buffer
- Extend ksocket_create/bind/send/sendto/recv/recvfrom/close/getsockname
  to handle SOCK_RAW using lwIP raw API
- Add O_NONBLOCK support to ksocket_recv (returns -EAGAIN instead of
  blocking forever) and merge fd flags in RECV/RECVFROM syscall handlers
- Add sys_sendto/sys_recvfrom wrappers and ICMP ping test (I7b) to fulltest
- Add ICMP ping test pattern to smoke_test.exp and test_battery.exp
- Migrate fstab parsing from kernel to userspace /sbin/init
- Auto-mount /disk and /persist in kernel init for init= binaries
16 files changed:
Makefile
include/arch/arch_platform.h
include/hal/usermode.h
include/socket.h
src/arch/arm/arch_platform.c
src/arch/mips/arch_platform.c
src/arch/riscv/arch_platform.c
src/arch/x86/arch_platform.c
src/arch/x86/usermode.c
src/kernel/init.c
src/kernel/socket.c
src/kernel/syscall.c
tests/smoke_test.exp
tests/test_battery.exp
user/cmds/fulltest/fulltest.c
user/cmds/init/init.c