6 #define WIN32_NO_STATUS
8 #define COM_NO_WINDOWS_H
13 #define NTOS_MODE_USER
14 #include <ndk/rtlfuncs.h>
16 #include <dhcp/rosdhcp_public.h>
20 #define IFNAMSIZ MAX_INTERFACE_NAME_LEN
21 #undef interface /* wine/objbase.h -- Grrr */
26 #define DHCP_DISCOVER_INTERVAL 5
27 #define DHCP_REBOOT_TIMEOUT 10
28 #define DHCP_PANIC_TIMEOUT 20
29 #define DHCP_BACKOFF_MAX 300
30 #define DHCP_DEFAULT_LEASE_TIME 43200 /* 12 hours */
31 #define _PATH_DHCLIENT_PID "\\systemroot\\system32\\drivers\\etc\\dhclient.pid"
32 typedef void *VOIDPTR
;
33 typedef unsigned char u_int8_t
;
34 typedef unsigned short u_int16_t
;
35 typedef unsigned int u_int32_t
;
36 typedef char *caddr_t
;
38 #ifndef _SSIZE_T_DEFINED
39 #define _SSIZE_T_DEFINED
42 #if defined(__GNUC__) && defined(__STRICT_ANSI__)
43 typedef int ssize_t
__attribute__ ((mode (DI
)));
45 typedef __int64 ssize_t
;
52 typedef u_int32_t uintTIME
;
59 typedef void (*handler_t
) PROTO ((struct packet
*));
62 struct interface_info
;
64 typedef struct _DHCP_ADAPTER
{
67 MIB_IPFORWARDROW RouterMib
;
70 ULONG NteContext
,NteInstance
;
71 struct interface_info DhclientInfo
;
72 struct client_state DhclientState
;
73 struct client_config DhclientConfig
;
74 struct sockaddr_in ListenAddr
;
75 unsigned int BindStatus
;
76 unsigned char recv_buf
[1];
77 } DHCP_ADAPTER
, *PDHCP_ADAPTER
;
79 typedef DWORD (*PipeSendFunc
)( COMM_DHCP_REPLY
*Reply
);
84 int init_client(void);
85 void stop_client(void);
87 void AdapterInit(VOID
);
88 HANDLE
StartAdapterDiscovery(VOID
);
89 void AdapterStop(VOID
);
90 extern PDHCP_ADAPTER
AdapterGetFirst(VOID
);
91 extern PDHCP_ADAPTER
AdapterGetNext(PDHCP_ADAPTER
);
92 extern PDHCP_ADAPTER
AdapterFindIndex( unsigned int AdapterIndex
);
93 extern PDHCP_ADAPTER
AdapterFindInfo( struct interface_info
*info
);
94 extern PDHCP_ADAPTER
AdapterFindByHardwareAddress( u_int8_t haddr
[16], u_int8_t hlen
);
95 extern HANDLE
PipeInit(VOID
);
96 extern VOID
ApiInit(VOID
);
97 extern VOID
ApiFree(VOID
);
98 extern VOID
ApiLock(VOID
);
99 extern VOID
ApiUnlock(VOID
);
100 extern DWORD
DSQueryHWInfo( PipeSendFunc Send
, COMM_DHCP_REQ
*Req
);
101 extern DWORD
DSLeaseIpAddress( PipeSendFunc Send
, COMM_DHCP_REQ
*Req
);
102 extern DWORD
DSRenewIpAddressLease( PipeSendFunc Send
, COMM_DHCP_REQ
*Req
);
103 extern DWORD
DSReleaseIpAddressLease( PipeSendFunc Send
, COMM_DHCP_REQ
*Req
);
104 extern DWORD
DSStaticRefreshParams( PipeSendFunc Send
, COMM_DHCP_REQ
*Req
);
105 extern DWORD
DSGetAdapterInfo( PipeSendFunc Send
, COMM_DHCP_REQ
*Req
);
106 extern int inet_aton(const char *s
, struct in_addr
*addr
);
107 int warn( char *format
, ... );
109 #endif /* ROSDHCP_H */