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;
42 SYSEVT_HANDLE hEvtRecv;
44 struct c_tcpipfile *pNext;
45 struct c_tcpipfile *pPrev;
48 unsigned char ubRecvBuf[TCPIPFILE_RECV_BUFSIZE];
58 HANDLE TcpIp_Open(C_DRVOBJ *pDrvObj, const char *pszPath, int iMode);
59 void TcpIp_Close(C_DRVOBJ *pDrvObj, C_FILEOBJ *pFileObj);
60 FILE_ERR TcpIp_IoControl(C_DRVOBJ *pDrvObj, C_FILEOBJ *pFileObj, int iFunc, void *pInBuf, FILE_SIZE InSize, const void *pOutBuf, FILE_SIZE OutSize);
61 FILE_POS TcpIp_Seek(C_DRVOBJ *pDrvObj, C_FILEOBJ *pFileObj, FILE_POS Offset, int iOrign);
62 FILE_SIZE TcpIp_Read(C_DRVOBJ *pDrvObj, C_FILEOBJ *pFileObj, void *pBuf, FILE_SIZE Size);
63 FILE_SIZE TcpIp_Write(C_DRVOBJ *pDrvObj, C_FILEOBJ *pFileObj, const void *pData, FILE_SIZE Size);
64 FILE_ERR TcpIp_Flush(C_DRVOBJ *pDrvObj, C_FILEOBJ *pFileObj);
66 int TcpIp_GetSendBuf(C_TCPIP *self, void **ppBuf); /* IPデータグラム送信バッファ取得 */
67 void TcpIp_SendBuf(C_TCPIP *self, void **ppBuf); /* IPデータグラムバッファ送信 */
68 void TcpIp_Recv(VPARAM Param); /* IPパケット受信プロセス */
76 #endif /* __HOS__tcpip_local_h__ */