2 * Hyper Operating System Application Framework
5 * @brief %jp{TCP/IP プロトコル}
7 * Copyright (C) 2006-2007 by Project HOS
8 * http://sourceforge.jp/projects/hos/
12 #ifndef __HOS__tcpip_local_h__
13 #define __HOS__tcpip_local_h__
17 #include "system/file/chrfile.h"
18 #include "library/container/stmbuf/stmbuf.h"
21 #define TCP_FLAG_FIN 0x01
22 #define TCP_FLAG_SYN 0x02
23 #define TCP_FLAG_RST 0x04
24 #define TCP_FLAG_PSH 0x08
25 #define TCP_FLAG_ACK 0x10
26 #define TCP_FLAG_URG 0x20
29 #define TCPIPFILE_TYPE_TCP 6
30 #define TCPIPFILE_TYPE_UDP 17
32 #define TCPIPFILE_RECV_BUFSIZE 2048
35 typedef struct c_tcpipfile
37 C_CHRFILE ChrFile; /* キャラクタ型ファイルオブジェクトを継承 */
40 unsigned char ubIpAddr[4];
41 unsigned short uhPortNum;
43 struct c_tcpipfile *pNext;
44 struct c_tcpipfile *pPrev;
47 unsigned char ubRecvBuf[TCPIPFILE_RECV_BUFSIZE];
57 HANDLE Tcpip_Open(C_DRVOBJ *pDrvObj, const char *pszPath, int iMode);
58 void Tcpip_Close(C_DRVOBJ *pDrvObj, C_FILEOBJ *pFileObj);
59 FILE_ERR Tcpip_IoControl(C_DRVOBJ *pDrvObj, C_FILEOBJ *pFileObj, int iFunc, void *pInBuf, FILE_SIZE InSize, const void *pOutBuf, FILE_SIZE OutSize);
60 FILE_POS Tcpip_Seek(C_DRVOBJ *pDrvObj, C_FILEOBJ *pFileObj, FILE_POS Offset, int iOrign);
61 FILE_SIZE Tcpip_Read(C_DRVOBJ *pDrvObj, C_FILEOBJ *pFileObj, void *pBuf, FILE_SIZE Size);
62 FILE_SIZE Tcpip_Write(C_DRVOBJ *pDrvObj, C_FILEOBJ *pFileObj, const void *pData, FILE_SIZE Size);
63 FILE_ERR Tcpip_Flush(C_DRVOBJ *pDrvObj, C_FILEOBJ *pFileObj);
65 int Tcpip_GetSendBuf(C_TCPIP *self, void **ppBuf); /* IPデータグラム送信バッファ取得 */
66 void Tcpip_SendBuf(C_TCPIP *self, void **ppBuf); /* IPデータグラムバッファ送信 */
67 void Tcpip_Recv(VPARAM Param); /* IPパケット受信プロセス */
75 #endif /* __HOS__Tcpip_local_h__ */