;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; ;; ;; Copyright (C) KolibriOS team 2010-2013. All rights reserved. ;; ;; Distributed under terms of the GNU General Public License ;; ;; ;; ;; socketdbg.asm - socket debug utility for KolibriOS ;; ;; ;; ;; Written by hidnplayr@kolibrios.org ;; ;; ;; ;; GNU GENERAL PUBLIC LICENSE ;; ;; Version 2, June 1991 ;; ;; ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 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: