echo server, multiple clients, lines <256 bytes

This commit is contained in:
root 2025-05-13 12:07:03 +00:00
parent d54596514c
commit 29f54ba779
6 changed files with 304 additions and 112 deletions

30
pollfds.s Normal file
View file

@ -0,0 +1,30 @@
; edi - fd
; si - events
pollfds__append:
; TODO check against pollfds_capacity
mov r10, [pollfds_len]
mov [pollfds + r10 * pollfd_size], edi
mov [pollfds + r10 * pollfd_size + 4], si
mov r11w, 0
mov [pollfds + r10 * pollfd_size + 6], r11w
add r10, 1
mov [pollfds_len], r10
ret
; rdi - pollfds array index to remove
pollfds__remove:
mov r11, [pollfds_len]
cmp rdi, r11
jge return ; XXX index out of bounds, do some other error?
cmp r11, 1
jle pollfds__clear
mov r10, [pollfds + (r11 - 1) * pollfd_size]
mov [pollfds + rdi * pollfd_size], r10
sub r11, 1
mov [pollfds_len], r11
ret
pollfds__clear:
mov r10, 0
mov [pollfds_len], r10
ret