(define-sdl-func (* sdl-net-version-t) sdl-net-linked-version () "SDLNet_Linked_Version")
(define-sdl-func int sdl-net-init () "SDLNet_Init")
(define-sdl-func void sdl-net-quit () "SDLNet_Quit")
(define-sdl-func int sdl-net-resolve-host ((address (* ip-address)) (host string) (port uint16)) "SDLNet_ResolveHost")
(define-sdl-func string sdl-net-resolve-ip ((ip (* ip-address))) "SDLNet_ResolveIP")
(define-sdl-func int sdl-net-get-local-addresses ((addresses (* ip-address)) (maxcount int)) "SDLNet_GetLocalAddresses")
(define-sdl-func tcp-socket sdl-net-tcp-open ((ip (* ip-address))) "SDLNet_TCP_Open")
(define-sdl-func tcp-socket sdl-net-tcp-accept ((server tcp-socket)) "SDLNet_TCP_Accept")
(define-sdl-func (* ip-address) sdl-net-tcp-get-peer-address ((sock tcp-socket)) "SDLNet_TCP_GetPeerAddress")
(define-sdl-func int sdl-net-tcp-send ((sock tcp-socket) (data void*) (len int)) "SDLNet_TCP_Send")
(define-sdl-func int sdl-net-tcp-recv ((sock tcp-socket) (data void*) (maxlen int)) "SDLNet_TCP_Recv")
(define-sdl-func void sdl-net-tcp-close ((sock tcp-socket)) "SDLNet_TCP_Close")
(define-sdl-func (* udp-packet) sdl-net-alloc-packet ((size int)) "SDLNet_AllocPacket")
(define-sdl-func int sdl-net-resize-packet ((packet (* udp-packet)) (newsize int)) "SDLNet_ResizePacket")
(define-sdl-func void sdl-net-free-packet ((packet (* udp-packet))) "SDLNet_FreePacket")
(define-sdl-func (* udp-packet) sdl-net-alloc-packetv ((howmany int) (size int)) "SDLNet_AllocPacketV")
(define-sdl-func void sdl-net-free-packetv ((packetV (* udp-packet))) "SDLNet_FreePacketV")
(define-sdl-func udp-socket sdl-net-udp-open ((port uint16)) "SDLNet_UDP_Open")
(define-sdl-func void sdl-net-udp-set-packet-loss ((sock udp-socket) (percent int)) "SDLNet_UDP_SetPacketLoss")
(define-sdl-func int sdl-net-udp-bind ((sock udp-socket) (channel int) (address (* ip-address))) "SDLNet_UDP_Bind")
(define-sdl-func void sdl-net-udp-unbind ((sock udp-socket) (channel int)) "SDLNet_UDP_Unbind")
(define-sdl-func (* ip-address) sdl-net-udp-get-peer-address ((sock udp-socket) (channel int)) "SDLNet_UDP_GetPeerAddress")
(define-sdl-func int sdl-net-udp-sendv ((sock udp-socket) (packets (* udp-packet)) (npackets int)) "SDLNet_UDP_SendV")
(define-sdl-func int sdl-net-udp-send ((sock udp-socket) (channel int) (packet (* udp-packet))) "SDLNet_UDP_Send")
(define-sdl-func int sdl-net-udp-recvv ((sock udp-socket) (packets (* udp-packet))) "SDLNet_UDP_RecvV")
(define-sdl-func int sdl-net-udp-recv ((sock udp-socket) (packet (* udp-packet))) "SDLNet_UDP_Recv")
(define-sdl-func void sdl-net-udp-close ((sock udp-socket)) "SDLNet_UDP_Close")
(define-sdl-func sdl-net-socket-set-t sdl-net-alloc-socket-set ((maxsockets int)) "SDLNet_AllocSocketSet")
(define-sdl-func int sdl-net-add-socket ((set sdl-net-socket-set-t) (sock sdl-net-generic-socket-t)) "SDLNet_AddSocket")
(define-sdl-func int sdl-net-tcp-add-socket ((set sdl-net-socket-set-t) (sock tcp-socket)) "SDLNet_TCP_AddSocket")
(define-sdl-func int sdl-net-udp-add-socket ((set sdl-net-socket-set-t) (sock udp-socket)) "SDLNet_UDP_AddSocket")
(define-sdl-func int sdl-net-del-socket ((set sdl-net-socket-set-t) (sock sdl-net-generic-socket-t)) "SDLNet_DelSocket")
(define-sdl-func int sdl-net-tcp-del-socket ((set sdl-net-socket-set-t) (sock tcp-socket)) "SDLNet_TCP_DelSocket")
(define-sdl-func int sdl-net-udp-del-socket ((set sdl-net-socket-set-t) (sock udp-socket)) "SDLNet_UDP_DelSocket")
(define-sdl-func int sdl-net-check-sockets ((set sdl-net-socket-set-t) (timeout uint32)) "SDLNet_CheckSockets")
(define-sdl-func void sdl-net-free-socket-set ((set sdl-net-socket-set-t)) "SDLNet_FreeSocketSet")
(define-sdl-func void sdl-net-set-error ((fmt string)) "SDLNet_SetError")
(define-sdl-func string sdl-net-get-error () "SDLNet_GetError")
