]> gitweb.factorcode.org Git - factor.git/blob - core/windows/winsock.factor
9eae34795f34e7e21d71e5a4bebab2059e04364a
[factor.git] / core / windows / winsock.factor
1 ! Copyright (C) 2006 Mackenzie Straight, Doug Coleman.
2
3 IN: win32-api
4 USING: alien arrays kernel ;
5
6 : <wsadata> ( -- byte-array )
7     HEX: 190 <byte-array> ;
8
9 : AF_INET 2 ; inline
10 : SOCK_STREAM 1 ; inline
11 : WSA_FLAG_OVERLAPPED 1 ; inline
12 : INADDR_ANY 0 ; inline
13 : INVALID_SOCKET -1 ; inline
14
15 BEGIN-STRUCT: sockaddr-in
16     FIELD: short family
17     FIELD: short port
18     FIELD: int addr
19     FIELD: char pad
20     FIELD: char pad
21     FIELD: char pad
22     FIELD: char pad
23     FIELD: char pad
24     FIELD: char pad
25     FIELD: char pad
26     FIELD: char pad
27 END-STRUCT
28
29 BEGIN-STRUCT: hostent
30     FIELD: char* name
31     FIELD: void* aliases
32     FIELD: short addrtype
33     FIELD: short length
34     FIELD: void* addr-list
35 END-STRUCT
36
37 : hostent-addr hostent-addr-list *void* *uint ;
38
39 LIBRARY: winsock
40
41 FUNCTION: int WSAStartup ( short version, void* out-data ) ;
42 FUNCTION: void* WSASocketA ( int af,
43                              int type,
44                              int protocol,
45                              void* protocol-info,
46                              void* g,
47                              int flags ) ;
48 : WSASocket WSASocketA ;
49
50 FUNCTION: ushort htons ( ushort n ) ;
51 FUNCTION: ushort ntohs ( ushort n ) ;
52 IN: win32-api-internals
53 FUNCTION: int bind ( void* socket, sockaddr-in* sockaddr, int len ) ;
54 FUNCTION: int listen ( void* socket, int backlog ) ;
55 FUNCTION: char* inet_ntoa ( int in-addr ) ;
56 IN: win32-api
57 : wsa-bind bind ;
58 : wsa-listen listen ;
59 : inet-ntoa inet_ntoa ;
60 FUNCTION: int WSAGetLastError ( ) ;
61 FUNCTION: hostent* gethostbyname ( char* name ) ;
62 FUNCTION: int connect ( void* socket, sockaddr-in* sockaddr, int addrlen ) ;
63
64 LIBRARY: mswsock
65
66 FUNCTION: bool AcceptEx ( void* listen, void* accept, void* out-buf, int recv-len, int addr-len, int remote-len, void* out-len, void* overlapped ) ;
67 FUNCTION: void GetAcceptExSockaddrs ( void* a, int b, int c, int d, void* e, void* f, void* g, void* h ) ;