2 * Hyper Operating System Application Framework
5 * @brief %jp{16550互換シリアル用デバイスドライバ}
7 * Copyright (C) 2006-2007 by Project HOS
8 * http://sourceforge.jp/projects/hos/
12 #ifndef __HOS__pc16550drv_h__
13 #define __HOS__pc16550drv_h__
16 #include "system/sysapi/sysapi.h"
17 #include "system/file/chrdrv.h"
18 #include "pc16550hal.h"
19 #include "library/container/streambuf/streambuf.h"
23 typedef struct c_pc16550drv
25 C_CHRDRV ChrDrv; /* キャラクタ型デバイスドライバを継承 */
27 C_PC16550HAL Pc16550Hal; /* ハードウェア制御クラス */
28 int iOpenCount; /* オープンカウンタ */
29 int iIntNum; /* 割込み番号 */
30 SYSEVT_HANDLE hEvtSend; /* 送信イベント */
31 SYSEVT_HANDLE hEvtRecv; /* 受信イベント */
32 SYSMTX_HANDLE hMtxSend; /* 送信排他制御ミューテックス */
33 SYSMTX_HANDLE hMtxRecv; /* 受信排他制御ミューテックス */
34 C_STREAMBUF StmBufRecv; /* 受信バッファ */
43 void Pc16550Drv_Create(C_PC16550DRV *self, void *pRegAddr, unsigned int uiRegStep, int iIntNum, long lSysClock, int iBufSize); /**< コンストラクタ */
44 void Pc16550Drv_Delete(C_DRVOBJ *pDrvObj);
51 #endif /* __HOS__pc16550drv_h__ */