#ifndef OSKITTCP_H
#define OSKITTCP_H
+#ifdef linux
+#include <netinet/in.h>
+#endif
+
+#ifndef _MSC_VER
#include <roscfg.h>
+#endif/*_MSC_VER*/
#ifdef KERNEL
#include <sys/param.h>
#include <sys/systm.h>
OSK_UINT FindType,
struct sockaddr *ReqAddr );
+typedef void *(*OSKITTCP_MALLOC)
+ ( void *ClientData,
+ OSK_UINT Bytes,
+ OSK_PCHAR File,
+ OSK_UINT Line );
+
+typedef void (*OSKITTCP_FREE)
+ ( void *ClientData,
+ void *data,
+ OSK_PCHAR File,
+ OSK_UINT Line );
+
+typedef int (*OSKITTCP_SLEEP)
+ ( void *ClientData, void *token, int priority, char *msg, int tmio );
+
+typedef void (*OSKITTCP_WAKEUP)( void *ClientData, void *token );
+
typedef struct _OSKITTCP_EVENT_HANDLERS {
void *ClientData;
OSKITTCP_SOCKET_STATE SocketState;
OSKITTCP_SEND_PACKET PacketSend;
OSKITTCP_FIND_INTERFACE FindInterface;
+ OSKITTCP_MALLOC TCPMalloc;
+ OSKITTCP_FREE TCPFree;
+ OSKITTCP_SLEEP Sleep;
+ OSKITTCP_WAKEUP Wakeup;
} OSKITTCP_EVENT_HANDLERS, *POSKITTCP_EVENT_HANDLERS;
extern OSKITTCP_EVENT_HANDLERS OtcpEvent;
extern void InitOskitTCP();
extern void DeinitOskitTCP();
-extern void TimerOskitTCP();
+extern void TimerOskitTCP( int FastTimer, int SlowTimer );
extern void OskitDumpBuffer( OSK_PCHAR Data, OSK_UINT Len );
+extern int OskitTCPShutdown( void *socket, int disconn_type );
extern int OskitTCPSocket( void *Connection, void **ConnectionContext,
int Af, int Type, int Proto );
extern void RegisterOskitTCPEventHandlers
( POSKITTCP_EVENT_HANDLERS EventHandlers );
extern void OskitTCPReceiveDatagram( OSK_PCHAR Data, OSK_UINT Len,
OSK_UINT IpHeaderLen );
-extern int OskitTCPReceive( void *socket,
+extern int OskitTCPReceive( void *socket,
void *Addr,
OSK_PCHAR Data,
OSK_UINT Len,
OSK_UINT *OutLen,
OSK_UINT Flags );
-extern int OskitTCPSend( void *socket,
+extern int OskitTCPSend( void *socket,
OSK_PCHAR Data,
OSK_UINT Len,
OSK_UINT *OutLen,
OSK_UINT Flags );
-extern int OskitTCPConnect( void *socket, void *connection,
+extern int OskitTCPConnect( void *socket, void *connection,
void *nam, OSK_UINT namelen );
extern int OskitTCPClose( void *socket );
extern int OskitTCPBind( void *socket, void *connection,
void *nam, OSK_UINT namelen );
+extern int OskitTCPAccept( void *socket, void **new_socket,
+ void *addr_out,
+ OSK_UINT addr_len,
+ OSK_UINT *out_addr_len,
+ OSK_UINT finish_accept );
+
extern int OskitTCPListen( void *socket, int backlog );
extern int OskitTCPRecv( void *connection,
OSK_UINT *OutLen,
OSK_UINT Flags );
-void OskitTCPGetAddress( void *socket,
+void OskitTCPGetAddress( void *socket,
OSK_UINT *LocalAddress,
OSK_UI16 *LocalPort,
OSK_UINT *RemoteAddress,
#undef errno
-#define malloc(x,...) fbsd_malloc(x,__FILE__,__LINE__)
-#define free(x,...) fbsd_free(x,__FILE__,__LINE__)
+void *fbsd_malloc( unsigned int bytes, ... );
+void fbsd_free( void *data, ... );
+#if 0
+#define malloc(x) fbsd_malloc(x,__FILE__,__LINE__)
+#define free(x) fbsd_free(x,__FILE__,__LINE__)
+#endif
+#define kern_malloc(x,y,z) kern_malloc_needs_definition(x,y,z)
+#define kern_free(x,y,z) kern_free_needs_definition(x,w,z)
/* Error codes */
#include <oskiterrno.h>