49ecf8e3c00d705f2f67a9a522ff19c7eb2e7be3
[reactos.git] / reactos / drivers / network / tcpip / include / address.h
1 /*
2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: ReactOS TCP/IP protocol driver
4 * FILE: include/address.h
5 * PURPOSE: Address manipulation prototypes
6 */
7 #ifndef __ADDRESS_H
8 #define __ADDRESS_H
9
10 /*
11 * Initialize an IPv4 style address
12 * VOID AddrInitIPv4(
13 * PIP_ADDRESS IPAddress,
14 * IPv4_RAW_ADDRESS RawAddress)
15 */
16 #define AddrInitIPv4(IPAddress, RawAddress) \
17 { \
18 INIT_TAG((IPAddress), TAG('I','P','V','4')); \
19 (IPAddress)->Type = IP_ADDRESS_V4; \
20 (IPAddress)->Address.IPv4Address = (RawAddress); \
21 }
22
23 #if DBG
24
25 PCHAR A2S(
26 PIP_ADDRESS Address);
27
28 #endif /* DBG */
29
30 VOID IPAddressFree(
31 PVOID Object);
32
33 BOOLEAN AddrIsUnspecified(
34 PIP_ADDRESS Address);
35
36 NTSTATUS AddrGetAddress(
37 PTRANSPORT_ADDRESS AddrList,
38 PIP_ADDRESS Address,
39 PUSHORT Port);
40
41 NTSTATUS AddrBuildAddress(
42 PTRANSPORT_ADDRESS TdiAddress,
43 PIP_ADDRESS Address,
44 PUSHORT Port);
45
46 BOOLEAN AddrIsEqual(
47 PIP_ADDRESS Address1,
48 PIP_ADDRESS Address2);
49
50 INT AddrCompare(
51 PIP_ADDRESS Address1,
52 PIP_ADDRESS Address2);
53
54 BOOLEAN AddrIsEqualIPv4(
55 PIP_ADDRESS Address1,
56 IPv4_RAW_ADDRESS Address2);
57
58 PIP_INTERFACE AddrLocateInterface(
59 PIP_ADDRESS MatchAddress);
60
61 PADDRESS_FILE AddrSearchFirst(
62 PIP_ADDRESS Address,
63 USHORT Port,
64 USHORT Protocol,
65 PAF_SEARCH SearchContext);
66
67 PADDRESS_FILE AddrSearchNext(
68 PAF_SEARCH SearchContext);
69
70 unsigned long NTAPI inet_addr(const char*);
71
72 ULONG IPv4NToHl( ULONG Address );
73
74 UINT AddrCountPrefixBits( PIP_ADDRESS Netmask );
75
76 VOID AddrWidenAddress( PIP_ADDRESS Network, PIP_ADDRESS Source,
77 PIP_ADDRESS Netmask );
78
79 #endif /* __ADDRESS_H */
80
81 /* EOF */