OSDN Git Service

97b9fe69b0eec326079421bb18b3d6f3ee46619a
[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         
43         struct c_tcpipfile      *pNext;
44         struct c_tcpipfile      *pPrev;
45         
46         C_STREAMBUF                     RecvBuf;
47         unsigned char           ubRecvBuf[TCPIPFILE_RECV_BUFSIZE];
48         
49 } C_TCPIPFILE;
50
51
52
53 #ifdef __cplusplus
54 extern "C" {
55 #endif
56
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);
64
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パケット受信プロセス */
68
69
70 #ifdef __cplusplus
71 }
72 #endif
73
74
75 #endif  /* __HOS__Tcpip_local_h__ */
76
77
78 /* endof file */