kolibrios/programs/network/socketdbg/socketdbg.asm

101 lines
2.1 KiB
NASM
Raw Normal View History

format binary as ""
use32
; standard header
db 'MENUET01' ; signature
dd 1 ; header version
dd start ; entry point
dd i_end ; initialized size
dd mem ; required memory
dd mem ; stack pointer
dd 0 ; parameters
dd 0 ; path
; useful includes
include '../macros.inc'
purge mov,add,sub
include '../proc32.inc'
include '../dll.inc'
include '../struct.inc'
include 'socket.inc'
; entry point
start:
mcall 40, 0 ; we dont want any events
; load libraries
stdcall dll.Load, @IMPORT
test eax, eax
jnz exit
; initialize console
push 1
call [con_start]
push title
push -1
push -1
push -1
push -1
call [con_init]
; main loop
main:
mcall 75, 255, 0, socket_list ; get current socket list
call [con_cls]
mov esi, socket_list
.loop:
lodsd
test eax, eax
jz .done
mov ecx, eax
mcall 75, 255, , socket_buf
pushd [socket_buf + SOCKET.state]
pushd [socket_buf + SOCKET.PID]
pushd [socket_buf + SOCKET.Number]
push str_sock
call [con_printf]
add esp, 4
jmp .loop
.done:
mcall 23, 50
jmp main
push 0
call [con_exit]
exit:
mcall -1
; data
title db 'Socket debugger', 0
str_sock db 'Socket=%d PID=%d state=%d', 10, 0
; import
align 4
@IMPORT:
library console, 'console.obj'
import console, \
con_start, 'START', \
con_init, 'con_init', \
con_cls, 'con_cls', \
con_exit, 'con_exit', \
con_printf, 'con_printf'
i_end:
socket_list rd 4096
socket_buf rd 4096
align 4
rb 4096 ; stack
mem: