OSDN Git Service

b4d23de0c6a8dc74554b0a24b6c71515c42c8eaf
[hos/hos-v4a.git] / aplfw / driver / tcpip / tcpip / tcpip_local.h
1 /** 
2  *  Hyper Operating System  Application Framework
3  *
4  * @file  tcpip_local.h
5  * @brief %jp{TCP/IP プロトコル}
6  *
7  * Copyright (C) 2006-2007 by Project HOS
8  * http://sourceforge.jp/projects/hos/
9  */
10
11
12 #ifndef __HOS__tcpip_local_h__
13 #define __HOS__tcpip_local_h__
14
15
16 #include "tcpip.h"
17 #include "system/file/chrfile.h"
18 #include "library/container/stmbuf/stmbuf.h"
19
20
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
27
28
29 #define TCPIPFILE_TYPE_TCP              6
30 #define TCPIPFILE_TYPE_UDP              17
31
32 #define TCPIPFILE_RECV_BUFSIZE  2048
33
34
35 typedef struct c_tcpipfile
36 {
37         C_CHRFILE                       ChrFile;                /* キャラクタ型ファイルオブジェクトを継承 */
38
39         char                            iType;
40         unsigned char           ubIpAddr[4];
41         unsigned short          uhPortNum;
42         SYSEVT_HANDLE           hEvtRecv;
43         
44         struct c_tcpipfile      *pNext;
45         struct c_tcpipfile      *pPrev;
46         
47         C_STREAMBUF                     RecvBuf;
48         unsigned char           ubRecvBuf[TCPIPFILE_RECV_BUFSIZE];
49         
50 } C_TCPIPFILE;
51
52
53
54 #ifdef __cplusplus
55 extern "C" {
56 #endif
57
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);
65
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パケット受信プロセス */
69
70
71 #ifdef __cplusplus
72 }
73 #endif
74
75
76 #endif  /* __HOS__tcpip_local_h__ */
77
78
79 /* endof file */