⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 serialcsr.h

📁 关于S3C2442平台蓝牙模块驱动
💻 H
字号:
//
// Copyright (c) Cambridge Silicon Radio.  All rights reserved.
//
//
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
// PARTICULAR PURPOSE.
//
// Header for serial driver wrapper

// The following ifdef block is the standard way of creating macros which make exporting 
// from a DLL simpler. All files within this DLL are compiled with the SERIALCSR_EXPORTS
// symbol defined on the command line. this symbol should not be defined on any project
// that uses this DLL. This way any other project whose source files include this file see 
// SERIALCSR_API functions as being imported from a DLL, wheras this DLL sees symbols
// defined with this macro as being exported.
// Function Pointers
#ifdef SERIALCSR_EXPORTS
#define SERIALCSR_API __declspec(dllexport)
#else
#define SERIALCSR_API __declspec(dllimport)
#endif

// Standard constants
#undef  FALSE
#undef  TRUE
#undef  NULL
#define FALSE   0
#define TRUE    1
#define NULL    0

// Header not found
typedef struct _SERIAL_QUEUE_SIZE {
  ULONG  InSize;
  ULONG  OutSize;
} SERIAL_QUEUE_SIZE, *PSERIAL_QUEUE_SIZE;


// Typedef wrapped functions to ensure accurate use
	// Exported to API
typedef HANDLE (WINAPI *PFNCOM_Init)(ULONG);
typedef HANDLE (WINAPI *PFNCOM_Open)(HANDLE, DWORD, DWORD);
typedef BOOL   (WINAPI *PFNCOM_Close)(DWORD);
//typedef BOOL   (WINAPI *PFNCOM_Close)(HANDLE);
typedef BOOL   (WINAPI *PFNCOM_Deinit)(void);
typedef ULONG  (WINAPI *PFNCOM_Read)(HANDLE, PUCHAR, ULONG, PULONG);
typedef ULONG  (WINAPI *PFNCOM_Write)(HANDLE, PUCHAR, ULONG);
typedef ULONG  (WINAPI *PFNCOM_Seek)(HANDLE, LONG, DWORD);
typedef BOOL   (WINAPI *PFNCOM_Power)(HANDLE);
typedef BOOL   (WINAPI *PFNCOM_IOControl)(DWORD, DWORD, PBYTE, DWORD, PBYTE, DWORD, PDWORD);

	// Usually internal only 
    //- *** TEMP *** Commented are those BT.dll does not export
    //
//typedef VOID   (WINAPI *PFNSerialEventHandler)(ULONG);
//typedef DWORD  (WINAPI *PFNSerialDispatchThread)(PVOID);
typedef ULONG  (WINAPI *PFNSerialGetDroppedByteNumber)(HANDLE);
//typedef BOOL   (WINAPI *PFNWaitCommEvent)(ULONG, PULONG, LPOVERLAPPED);
//typedef VOID   (WINAPI *PFNEvaluateEventFlag)(PVOID, ULONG);
//typedef BOOL   (WINAPI *PFNProcessExiting)(ULONG);
//typedef BOOL   (WINAPI *PFNApplyDCB)(ULONG, DCB, BOOL);

/*
// Wrapped standard COM Port functions
SERIALCSR_API HANDLE COM_Init(ULONG Identifier);
SERIALCSR_API HANDLE COM_Open(HANDLE pContext, DWORD AccessCode, DWORD ShareMode);
SERIALCSR_API BOOL   COM_Close(DWORD pContext);
SERIALCSR_API BOOL   COM_Deinit(void);
SERIALCSR_API ULONG  COM_Read(HANDLE pContext, PUCHAR pTargetBuffer, 
							  ULONG BufferLength, PULONG pBytesRead);
SERIALCSR_API ULONG  COM_Write(HANDLE COM_Write, PUCHAR pSourceBytes,
				 			   ULONG NumberOfBytes);
SERIALCSR_API ULONG  COM_Seek(HANDLE pHead, LONG Position, DWORD Type);
SERIALCSR_API BOOL   COM_PowerUp(HANDLE pContext);
SERIALCSR_API BOOL   COM_PowerDown(HANDLE pContext);
SERIALCSR_API BOOL   COM_IOControl(DWORD dwOpenData, DWORD dwCode, PBYTE pBufIn, 
								   DWORD dwLenIn, PBYTE pBufOut, DWORD dwLenOut, 
							 	   PDWORD pdwActualOut);
*/
// Wrapped standard COM Port functions
// Wrapped standard COM Port functions
HANDLE
WINAPI 
CSR_Init(ULONG Identifier);

HANDLE
WINAPI
CSR_Open(HANDLE pContext, DWORD AccessCode, DWORD ShareMode);

BOOL
WINAPI
CSR_Close(DWORD pContext);
//COM_Close(HANDLE pContext);


BOOL
WINAPI
CSR_Deinit(void);
ULONG
WINAPI
CSR_Read(HANDLE pContext, PUCHAR pTargetBuffer, 
							  ULONG BufferLength, PULONG pBytesRead);
DWORD
WINAPI
CSR_Write(HANDLE COM_Write, PUCHAR pSourceBytes,
				 			   ULONG NumberOfBytes);
ULONG
WINAPI
CSR_Seek(HANDLE pHead, LONG Position, DWORD Type);
BOOL
WINAPI
CSR_PowerUp(HANDLE pContext);
BOOL
WINAPI
CSR_PowerDown(HANDLE pContext);
BOOL
WINAPI
CSR_IOControl(DWORD dwOpenData, DWORD dwCode, PBYTE pBufIn, 
								   DWORD dwLenIn, PBYTE pBufOut, DWORD dwLenOut, 
							 	   PDWORD pdwActualOut);
/*
  //  Exported to pdd
SERIALCSR_API VOID   SerialEventHandler(ULONG pSerialHead);
SERIALCSR_API DWORD  SerialDispatchThread(PVOID pContext);
SERIALCSR_API ULONG  SerialGetDroppedByteNumber(HANDLE pHead);
SERIALCSR_API BOOL   WaitCommEvent(ULONG pOpenHead, PULONG pfdwEventMask, LPOVERLAPPED Unused); 
//SERIALCSR_API VOID   EvaluateEventFlag(PVOID pHead, ULONG fdwEventMask);
SERIALCSR_API BOOL   ProcessExiting(ULONG pOpenHead);
SERIALCSR_API BOOL   ApplyDCB (ULONG pSerialHead, DCB *pDCB, BOOL fOpen);
*/

// Internal use
BOOL UpdatePersistentStore(HANDLE hResult);
BOOL GetLibraryPointers(void);
BOOL SetTestModeCMD(HANDLE hPort);
 
//jackey start
#pragma pack(1)
typedef struct _PSKEY_UPDATE {
  HANDLE PSKey;
  HANDLE PSKeyEvent;
  HANDLE pSerialHead;
  BOOL	 bBTPowerControl;
} PSKEY_UPDATE, *PPSKEY_UPDATE;
#pragma pack()
//jackey end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -