* Slap *some* sense into our header inclusions.
[reactos.git] / reactos / dll / win32 / dhcpcsvc / include / rosdhcp.h
1 #ifndef ROSDHCP_H
2 #define ROSDHCP_H
3
4 #define WIN32_NO_STATUS
5 #define _INC_WINDOWS
6 #define COM_NO_WINDOWS_H
7 #include <stdarg.h>
8 #include <windef.h>
9 #include <winbase.h>
10 #include <winreg.h>
11 #include <winsvc.h>
12 #include <winsock2.h>
13 #define NTOS_MODE_USER
14 #include <ndk/rtlfuncs.h>
15 //#include <iprtrmib.h>
16 //#include <iphlpapi.h>
17 #include <dhcpcsdk.h>
18 #include <dhcp/rosdhcp_public.h>
19 //#include <stdio.h>
20 //#include <time.h>
21 #include "debug.h"
22 #define IFNAMSIZ MAX_INTERFACE_NAME_LEN
23 #undef interface /* wine/objbase.h -- Grrr */
24
25 #undef IGNORE
26 #undef ACCEPT
27 #undef PREFER
28 #define DHCP_DISCOVER_INTERVAL 5
29 #define DHCP_REBOOT_TIMEOUT 10
30 #define DHCP_PANIC_TIMEOUT 20
31 #define DHCP_BACKOFF_MAX 300
32 #define DHCP_DEFAULT_LEASE_TIME 43200 /* 12 hours */
33 #define _PATH_DHCLIENT_PID "\\systemroot\\system32\\drivers\\etc\\dhclient.pid"
34 typedef void *VOIDPTR;
35 typedef unsigned char u_int8_t;
36 typedef unsigned short u_int16_t;
37 typedef unsigned int u_int32_t;
38 typedef char *caddr_t;
39
40 #ifndef _SSIZE_T_DEFINED
41 #define _SSIZE_T_DEFINED
42 #undef ssize_t
43 #ifdef _WIN64
44 #if defined(__GNUC__) && defined(__STRICT_ANSI__)
45 typedef int ssize_t __attribute__ ((mode (DI)));
46 #else
47 typedef __int64 ssize_t;
48 #endif
49 #else
50 typedef int ssize_t;
51 #endif
52 #endif
53
54 typedef u_int32_t uintTIME;
55 #define TIME uintTIME
56 #include "dhcpd.h"
57
58 #define INLINE inline
59 #define PROTO(x) x
60
61 typedef void (*handler_t) PROTO ((struct packet *));
62
63 struct iaddr;
64 struct interface_info;
65
66 typedef struct _DHCP_ADAPTER {
67 LIST_ENTRY ListEntry;
68 MIB_IFROW IfMib;
69 MIB_IPFORWARDROW RouterMib;
70 MIB_IPADDRROW IfAddr;
71 SOCKADDR Address;
72 ULONG NteContext,NteInstance;
73 struct interface_info DhclientInfo;
74 struct client_state DhclientState;
75 struct client_config DhclientConfig;
76 struct sockaddr_in ListenAddr;
77 unsigned int BindStatus;
78 unsigned char recv_buf[1];
79 } DHCP_ADAPTER, *PDHCP_ADAPTER;
80
81 typedef DWORD (*PipeSendFunc)( COMM_DHCP_REPLY *Reply );
82
83 #define random rand
84 #define srandom srand
85
86 void AdapterInit(VOID);
87 HANDLE StartAdapterDiscovery(VOID);
88 void AdapterStop(VOID);
89 extern PDHCP_ADAPTER AdapterGetFirst(VOID);
90 extern PDHCP_ADAPTER AdapterGetNext(PDHCP_ADAPTER);
91 extern PDHCP_ADAPTER AdapterFindIndex( unsigned int AdapterIndex );
92 extern PDHCP_ADAPTER AdapterFindInfo( struct interface_info *info );
93 extern PDHCP_ADAPTER AdapterFindByHardwareAddress( u_int8_t haddr[16], u_int8_t hlen );
94 extern HANDLE PipeInit(VOID);
95 extern VOID ApiInit(VOID);
96 extern VOID ApiFree(VOID);
97 extern VOID ApiLock(VOID);
98 extern VOID ApiUnlock(VOID);
99 extern DWORD DSQueryHWInfo( PipeSendFunc Send, COMM_DHCP_REQ *Req );
100 extern DWORD DSLeaseIpAddress( PipeSendFunc Send, COMM_DHCP_REQ *Req );
101 extern DWORD DSRenewIpAddressLease( PipeSendFunc Send, COMM_DHCP_REQ *Req );
102 extern DWORD DSReleaseIpAddressLease( PipeSendFunc Send, COMM_DHCP_REQ *Req );
103 extern DWORD DSStaticRefreshParams( PipeSendFunc Send, COMM_DHCP_REQ *Req );
104 extern DWORD DSGetAdapterInfo( PipeSendFunc Send, COMM_DHCP_REQ *Req );
105 extern int inet_aton(const char *s, struct in_addr *addr);
106 int warn( char *format, ... );
107 #endif/*ROSDHCP_H*/