2 * Hyper Operating System Application Framework
5 * @brief %jp{Ether上にIPプロトコルを実装(つまりMAC層近辺)}
7 * Copyright (C) 2006-2007 by Project HOS
8 * http://sourceforge.jp/projects/hos/
14 #include "tcpip_local.h"
17 HANDLE TcpIp_Open(C_DRVOBJ *pDrvObj, const char *pszPath, int iMode)
23 self = (C_TCPIP *)pDrvObj;
25 /* create file descriptor */
26 if ( (pFile = SysMem_Alloc(sizeof(C_TCPIPFILE))) == NULL )
30 ChrFile_Create(&pFile->ChrFile, pDrvObj, NULL);
31 StreamBuf_Create(&pFile->RecvBuf, TCPIPFILE_RECV_BUFSIZE, pFile->ubRecvBuf);
32 pFile->hEvtRecv = SysEvt_Create();
35 if ( self->iOpenCount++ == 0 )
40 if ( strncmp(pszPath, "udp:", 4) == 0 )
43 pFile->iType = TCPIPFILE_TYPE_UDP;
44 pFile->uhPortNum = (unsigned short)atoi(&pszPath[4]);
47 if ( self->pUdpHead == NULL )
51 self->pUdpHead = pFile;
55 pFile->pNext = self->pUdpHead;
56 pFile->pPrev = pFile->pPrev;
57 pFile->pNext->pPrev = pFile;
58 pFile->pPrev->pNext = pFile;