zte's code,first commit

Change-Id: I9a04da59e459a9bc0d67f101f700d9d7dc8d681b
diff --git a/cp/ps/driver/inc/pub/drvs_ring.h b/cp/ps/driver/inc/pub/drvs_ring.h
new file mode 100644
index 0000000..4ac0d24
--- /dev/null
+++ b/cp/ps/driver/inc/pub/drvs_ring.h
@@ -0,0 +1,251 @@
+/*******************************************************************************

+ * Copyright (C) 2008, ZTE Corporation.

+ *

+ * File Name:    drvs_ring.h

+ * File Mark:

+ * Description:

+ * Others:

+ * Version:       V1.0

+ * Author:        qinxiao

+ * Date:          2009-09-03

+ * History 1:   created

+ *     Date:

+ *     Version:

+ *     Author:

+ *     Modification:

+  ********************************************************************************/

+#ifndef DRVS_RING_H

+#define DRVS_RING_H

+

+#ifdef __cplusplus

+   extern "C"

+   {

+#endif 

+

+/****************************************************************************

+* 	                        Include files

+****************************************************************************/

+

+/****************************************************************************

+* 	                         Macros

+****************************************************************************/

+

+/****************************************************************************

+* 	                         Types

+****************************************************************************/

+typedef struct _T_Hal_Ring

+{

+	UINT32 writePos;    /* offset from start of buffer where to write next */

+	UINT32 readPos;	    /* offset from start of buffer where to read next */

+	UINT32 bufSize;		/* size of ring in bytes */

+	UINT8 *pBuf;			/* pointer to start of buffer */

+}T_Hal_Ring;

+

+/****************************************************************************

+* 	                         Constants

+****************************************************************************/

+

+/****************************************************************************

+* 	                         Global  Variables

+****************************************************************************/

+

+/****************************************************************************

+* 	                         Function Prototypes

+****************************************************************************/

+/******************************************************************************

+ * Function:	hal_RingIsEmpty

+ * Description:		Åжϻ·Ðλº³åÊÇ·ñΪ¿Õ

+ * Parameters:

+ *   Input:

+ *			pRing - :»·Ðλº³åÖ¸Õë

+ *   Output:

+ *			None

+ * Returns:

+ *			¿Õ:TRUE; ·Ç¿Õ:FALSE

+ *

+ * Others:

+ ******************************************************************************/

+BOOL hal_RingIsEmpty( T_Hal_Ring *pRing);

+

+/******************************************************************************

+ * Function:	hal_RingIsFull

+ * Description:		Åжϻ·Ðλº³åÊÇ·ñÒÑÂú

+ * Parameters:

+ *   Input:

+ *			pRing -- »·Ðλº³åÖ¸Õë

+ *   Output:

+ *			None

+ * Returns:

+ *			Âú:TRUE; ·ÇÂú:FALSE

+ *

+ * Others:

+ ******************************************************************************/

+BOOL hal_RingIsFull(T_Hal_Ring *pRing);

+

+/******************************************************************************

+ * Function:	hal_RingCreate

+ * Description:		´´½¨»·Ðλº³å

+ * Parameters:

+ *   Input:

+ *			nbytes -- »·Ðλº³åµÄ´óС£¬µ¥Î»£º×Ö½Ú

+ *   Output:

+ *			None

+ * Returns:

+ *			³É¹¦£º»·Ðλº³åID; ʧ°Ü:hal_NULL

+ *

+ * Others:

+ ******************************************************************************/

+T_Hal_Ring *hal_RingCreate(UINT32 nBytes);

+

+/******************************************************************************

+ * Function:	hal_RingDelete

+ * Description:		ɾ³ý»·Ðλº³å

+ * Parameters:

+ *   Input:

+ *			pRing -- »·Ðλº³åÖ¸Õë

+ *   Output:

+ *			None

+ * Returns:

+ *			None

+ *

+ * Others:

+ ******************************************************************************/

+VOID hal_RingDelete(T_Hal_Ring * pRing);

+

+/******************************************************************************

+ * Function:	hal_RingRead

+ * Description:		¶ÁÈ¡»·Ðλº³å¶ÓÁеÄÊý¾Ý

+ * Parameters:

+ *   Input:

+ *			pRing -- »·Ðλº³åÖ¸Õë

+ *			pBuffer -- Êä³ö»º³åÖ¸Õë	  

+ *			maxbytes -- ÐèÒª¶ÁÈ¡µÄ×î´ó×Ö½ÚÊý

+ *   Output:

+ *			buffer -- Êä³ö»º³åÖ¸Õë	

+ * Returns:

+ *			ʵ¼Ê¶ÁÈ¡µÄ×Ö½ÚÊý

+ *

+ * Others: ·µ»ØÖµ¿ÉÄÜÓëÐèÒª¶ÁÈ¡µÄ×Ö½ÚÊý²»Ò»Ö¡£Èç¹û»º³åΪ¿Õ£¬Ôò·µ»Ø0.

+ ******************************************************************************/

+UINT32 hal_RingRead(T_Hal_Ring *pRing, UINT8 *pBuffer, UINT32 maxBytes);

+

+/******************************************************************************

+ * Function:	hal_RingWrite

+ * Description:	Ïò»·Ðλº³åдÈëÊý¾Ý

+ * Parameters:

+ *   Input:

+ *			pRing -- »·Ðλº³åÖ¸Õë

+ *			pBuffer -- Êä³ö»º³åÖ¸Õë	  

+ *			nBytes -- ´ýдÈëÊý¾ÝµÄ´óС

+ *   Output:

+ *			None

+ * Returns:

+ *			ʵ¼ÊдÈëµÄ×Ö½ÚÊý

+ *

+ * Others: ·µ»ØÖµ¿ÉÄÜÓëÐèҪдÈëµÄ×Ö½ÚÊý²»Ò»Ö¡£Èç¹û»º³åΪÂú£¬Ôò·µ»Ø0.

+ ******************************************************************************/

+UINT32 hal_RingWrite(T_Hal_Ring * pRing, UINT8 *pBuffer, UINT32 nBytes);

+

+/******************************************************************************

+ * Function:	hal_RingFreeBytes

+ * Description:	»ñÈ¡»·Ðλº³åÊ£Óà¿ÉÀûÓÃ×Ö½ÚÊý

+ * Parameters:

+ *   Input:

+ *			pRing -- »·Ðλº³åÖ¸Õë

+ *   Output:

+ *			None

+ * Returns:

+ *			Ê£Óà¿ÉÀûÓÿռä×Ö½ÚÊý

+ *

+ * Others: 

+ ******************************************************************************/

+UINT32 hal_RingFreeBytes(T_Hal_Ring *pRing);

+ 

+/******************************************************************************

+ * Function:	hal_RingUsedBytes

+ * Description:	»ñÈ¡»·Ðλº³åÒÑʹÓõÄ×Ö½ÚÊý

+ * Parameters:

+ *   Input:

+ *			pRing -- »·Ðλº³åÖ¸Õë

+ *   Output:

+ *			None

+ * Returns:

+ *			ÒÑʹÓõÄ×Ö½ÚÊý

+ *

+ * Others: 

+ ******************************************************************************/

+UINT32 hal_RingUsedBytes(T_Hal_Ring *pRing);

+ 

+/******************************************************************************

+ * Function:	hal_RingFlush

+ * Description:	Çå³ý»·Ðλº³åµÄËùÓÐÊý¾Ý

+ * Parameters:

+ *   Input:

+ *			pRing -- »·Ðλº³åÖ¸Õë

+ *   Output:

+ *			None

+ * Returns:

+ *          None

+ * Others: 

+ ******************************************************************************/

+VOID hal_RingFlush(T_Hal_Ring * pRing);

+#if 0

+/******************************************************************************

+ * Function:	hal_RingMoveAhead

+ * Description:	½«»·Ðλº³åµÄдָÕëÒÆ¶¯¼¸¸ö×Ö½Ú

+ * Parameters:

+ *   Input:

+ *			pRing -- »·Ðλº³åÖ¸Õë

+ *          nBytes -- ÐèÒªÒÆ¶¯µÄ×Ö½ÚÊý,ÕýÊýÏòÇ°ÒÆ¶¯£¬¸ºÊýÏòºóÒÆ¶¯£»

+ *                    ·¶Î§:-»·Ðλº³å×î´ó×Ö½ÚÊý-- +»·Ðλº³å×î´ó×Ö½ÚÊý

+ *   Output:

+ *			None

+ * Returns:

+ *          None

+ * Others: µ±Ð´Ö¸Õ볬³ö¶ÓÁÐ×î´ó³¤¶Èʱ£¬»á×Ô¶¯»·ÐÎ.

+ ******************************************************************************/

+VOID hal_RingMoveWritePos(T_Hal_Ring * pRing, SINT32 nBytes);

+ 

+/******************************************************************************

+ * Function:	hal_RingMoveAhead

+ * Description:	Ïò»·Ðλº³åµ±Ç°Ð´Ö¸ÕëµÄÆ«ÒÆ´¦£¬Ð´ÈëÒ»¸öÊý¾Ý

+ *              ²»Òƶ¯Ð´Ö¸Õë

+ * Parameters:

+ *   Input:

+ *			pRing -- »·Ðλº³åÖ¸Õë

+ *          byte:´ýдÈëµÄÊý¾Ý

+ *          offset -- Æ«ÒÆÁ¿, ÕýÊýÏòÇ°ÒÆ¶¯, ¸ºÊýÏòºóÒÆ¶¯;

+ *                    ·¶Î§:-»·Ðλº³å×î´ó×Ö½ÚÊý-- +»·Ðλº³å×î´ó×Ö½ÚÊý,

+ *   Output:

+ *			None

+ * Returns:

+ *          None

+ * Others: µ±Ð´Ö¸Õ볬³ö¶ÓÁÐ×î´ó³¤¶Èʱ£¬»á×Ô¶¯»·ÐÎ.

+ ******************************************************************************/

+VOID hal_RingPutAhead(T_Hal_Ring * pRing, UINT8 byte, SINT32 offset);

+

+/******************************************************************************

+ * Function:	hal_RingGetPossibleReadBlock

+ * Description:	»ñÈ¡»·Ðλº³å¿É¶ÁÈ¡µÄ×Ö½ÚÊýºÍÖ¸Õë

+ * Parameters:

+ *   Input:

+ *			pRing -- »·Ðλº³åÖ¸Õë

+ *   Output:

+ *			nBytes -- ¿É¶ÁÈ¡×Ö½ÚÊý

+ *          UINT8 * -- bufferÖ¸Õë

+ * Returns:

+ *			ÒÑʹÓõÄ×Ö½ÚÊý

+ *

+ * Others: 

+ ******************************************************************************/

+UINT8 *hal_RingGetPossibleReadBlock(T_Hal_Ring * pRing, UINT32 *nBytes);

+

+VOID hal_RingMoveReadPos(T_Hal_Ring * pRing, SINT32 nBytes);

+#endif

+

+#ifdef __cplusplus

+}

+#endif

+

+#endif

+