move dhcp client from /subsys/system to /services
[reactos.git] / reactos / subsys / system / dhcp / include / rosdhcp.h
1 #ifndef ROSDHCP_H
2 #define ROSDHCP_H
3
4 #include <windows.h>
5 #define NTOS_MODE_USER
6 #include <ndk/ntndk.h>
7 #include <iprtrmib.h>
8 #include <iphlpapi.h>
9 #include <winsock2.h>
10 #include <dhcpcsdk.h>
11 #include <stdio.h>
12 #include <setjmp.h>
13 #include "stdint.h"
14 #include "predec.h"
15 #include <dhcp/rosdhcp_public.h>
16 #include "debug.h"
17 #define IFNAMSIZ MAX_INTERFACE_NAME_LEN
18 #undef interface /* wine/objbase.h -- Grrr */
19
20 #undef IGNORE
21 #undef ACCEPT
22 #undef PREFER
23 #define DHCP_DISCOVER_INTERVAL 15
24 #define DHCP_REBOOT_TIMEOUT 300
25 #define DHCP_PANIC_TIMEOUT DHCP_REBOOT_TIMEOUT * 3
26 #define DHCP_BACKOFF_MAX 300
27 #define _PATH_DHCLIENT_PID "\\systemroot\\system32\\drivers\\etc\\dhclient.pid"
28 #define RRF_RT_REG_SZ 2
29 typedef void *VOIDPTR;
30
31 typedef u_int32_t uintTIME;
32 #define TIME uintTIME
33 #include "dhcpd.h"
34
35 #if (_MSC_VER < 900) || defined(__STDC__)
36 #define inline
37 #else
38 #define inline __inline
39 #endif
40
41 #define INLINE inline
42
43 #define PROTO(x) x
44
45 typedef void (*handler_t) PROTO ((struct packet *));
46
47 typedef struct _DHCP_ADAPTER {
48 LIST_ENTRY ListEntry;
49 MIB_IFROW IfMib;
50 MIB_IPADDRROW IfAddr;
51 SOCKADDR Address;
52 ULONG NteContext,NteInstance;
53 struct interface_info DhclientInfo;
54 struct client_state DhclientState;
55 struct client_config DhclientConfig;
56 struct sockaddr_in ListenAddr;
57 unsigned int BindStatus;
58 unsigned char recv_buf[1];
59 } DHCP_ADAPTER, *PDHCP_ADAPTER;
60
61 typedef DWORD (*PipeSendFunc)( COMM_DHCP_REPLY *Reply );
62
63 #define random rand
64 #define srandom srand
65
66 void AdapterInit(VOID);
67 HANDLE PipeInit(VOID);
68 extern PDHCP_ADAPTER AdapterFindIndex( unsigned int AdapterIndex );
69 extern PDHCP_ADAPTER AdapterFindInfo( struct interface_info *info );
70 extern VOID ApiInit();
71 extern VOID ApiLock();
72 extern VOID ApiUnlock();
73 extern DWORD DSQueryHWInfo( PipeSendFunc Send, COMM_DHCP_REQ *Req );
74 extern DWORD DSLeaseIpAddress( PipeSendFunc Send, COMM_DHCP_REQ *Req );
75 extern DWORD DSRenewIpAddressLease( PipeSendFunc Send, COMM_DHCP_REQ *Req );
76 extern DWORD DSReleaseIpAddressLease( PipeSendFunc Send, COMM_DHCP_REQ *Req );
77 int warn( char *format, ... );
78 #endif/*ROSDHCP_H*/