From 8e4bff4cab0ddac6060645b0715210484d02ff40 Mon Sep 17 00:00:00 2001 From: Yuval Adam <_@yuv.al> Date: Wed, 30 Aug 2017 08:25:59 +0000 Subject: Initial file dump from open source release --- drivers/misc/gpsip/cgdriver/CgxDriverOs.h | 206 ++++++++++++++++++++++++++++++ 1 file changed, 206 insertions(+) create mode 100644 drivers/misc/gpsip/cgdriver/CgxDriverOs.h (limited to 'drivers/misc/gpsip/cgdriver/CgxDriverOs.h') diff --git a/drivers/misc/gpsip/cgdriver/CgxDriverOs.h b/drivers/misc/gpsip/cgdriver/CgxDriverOs.h new file mode 100644 index 00000000..9f0793ea --- /dev/null +++ b/drivers/misc/gpsip/cgdriver/CgxDriverOs.h @@ -0,0 +1,206 @@ +/****************************************************************************** + * LEGAL NOTICE * + * * + * USE OF THIS SOFTWARE (including any copy or compiled version thereof) AND * + * DOCUMENTATION IS SUBJECT TO THE SOFTWARE LICENSE AND RESTRICTIONS AND THE * + * WARRANTY DISLCAIMER SET FORTH IN LEGAL_NOTICE.TXT FILE. IF YOU DO NOT * + * FULLY ACCEPT THE TERMS, YOU MAY NOT INSTALL OR OTHERWISE USE THE SOFTWARE * + * OR DOCUMENTATION. * + * NOTWITHSTANDING ANYTHING TO THE CONTRARY IN THIS NOTICE, INSTALLING OR * + * OTHERISE USING THE SOFTWARE OR DOCUMENTATION INDICATES YOUR ACCEPTANCE OF * + * THE LICENSE TERMS AS STATED. * + * * + ******************************************************************************/ +/* Version: 1.8.9\3686 */ +/* Build : 13 */ +/* Date : 12/08/2012 */ + +/** + \file + \brief CellGuide CGsnap driver OS depended prototypes + \attention This file should not be modified. + If you think something is wrong here, please contact CellGuide + + \addtogroup CGX_DRIVER_OS_API + \@{ + +*/ + +#ifndef CGX_DRIVR_OS_H +#define CGX_DRIVR_OS_H + +#include "CgReturnCodes.h" + + + + + + +/** + Get driver allocated buffer and convert it for application + + \param[in] pSource Map pointer passed from application to the driver space + \param[in] aLength Length allocated (bytes) + + \return Mapped pointer + \retval NULL on error + +*/ +void *CgxDriverGetInternalBuff(void *pSource, U32 aLength); + + + +/** + Allocate a kernel buffer + + \param[in] pDriver Pointer to driver global structure + \param[in] aLength Length to allocate (bytes) + \param[out] apBuffer allocated buffer address + \param[in] aProcessID process id + + \return System wide return code +*/ +TCgReturnCode CgxDriverAllocInternalBuff(void *pDriver, U32 aLength, void **apBuffer, U32 aProcessID); + + + + +/** + Free a kernel buffer + + \param[in] pDriver Pointer to drivers global data + \param[in] aProcessId process id + + \return System wide return code +*/ +TCgReturnCode CgxDriverFreeInternalBuff(void *pDriver, U32 aProcessId); + + + + +/** + Copy Memory from User Space + + \param[in] to Target address (Kernel Space) + \param[in] fromuser Source address (User Space) + \param[in] n Length to copy + + + \return Number of bytes NOT copied (0=success) + +*/ +unsigned long CgxCopyFromUser( + void *to, + const void *fromuser, + unsigned long n ); + + + + + + +/** + Create transfer end signaling object. + the object will be used for blocking the application until transfer is finished. + + \param[in] pDriver Global driver structure pointer + + \return System wide return code + \retval ECgOk if data ready is 0 (low active) + +*/ +TCgReturnCode CgxDriverTransferEndCreate( + void *pDriver); + + +/** + Destroy transfer end signaling object. + + \param[in] pDriver Global driver structure pointer + + \return System wide return code + \retval ECgOk if data ready is 0 (low active) + +*/ +TCgReturnCode CgxDriverTransferEndDestroy( + void *pDriver); + + +/** + Signal transfer end object + + \param[in] pDriver Global driver structure pointer + + \return System wide return code + \retval ECgOk if data ready is 0 (low active) + +*/ +TCgReturnCode CgxDriverTransferEndSignal( + void *pDriver); + + +/** + Wait for transfer end object + \param pDriver Global driver structure pointer + \param aTimeoutMS timeout for the wait, in mili seconds. + if the object is not singled after this time, the function will + return with ECgTimeout error code. + \return System wide return code + \retval ECgOk if data ready is 0 (low active) +*/ +TCgReturnCode CgxDriverTransferEndWait( + void *pDriver, + U32 aTimeoutMS); + + + + +/** + Start data ready interrupt handle + + \param[in] pDriver Global driver structure pointer + + \return System wide return code + \retval ECgOk if data ready is 0 (low active) + +*/ +TCgReturnCode CgxDriverDataReadyInterruptHandlerStart( + void *pDriver); + + + +/** + Start general interrupt handler + + \param[in] pDriver Global driver structure pointer + + \return System wide return code + \retval ECgOk if data ready is 0 (low active) + +*/ +TCgReturnCode CgxDriverGpsInterruptHandlerStart( + void *pDriver); + + +/** + Initialize the driver. + + This function is called as a result of GPSenseEngine specific CGX_IOCTL_INIT request, + and is used to initialize the driver and hardware for the first time. + + \param pDriver Global driver structure pointer + + \return System wide return code + \retval ECgOk if data ready is 0 (low active) + +*/ +TCgReturnCode CgxDriverInit( + void *pDriver); + + + + +#endif +/** + \@} +*/ -- cgit v1.3.1