zte's code,first commit

Change-Id: I9a04da59e459a9bc0d67f101f700d9d7dc8d681b
diff --git a/cp/ps/driver/src/public/inc/request_queue.h b/cp/ps/driver/src/public/inc/request_queue.h
new file mode 100644
index 0000000..357694a
--- /dev/null
+++ b/cp/ps/driver/src/public/inc/request_queue.h
@@ -0,0 +1,94 @@
+/*******************************************************************************

+ * Copyright (C) 2007, ZTE Corporation.

+ *

+ * File Name:request_queue.h

+ * File Mark:

+ * Description:

+ * Others:

+ * Version:       1.0

+ * Author:        geanfeng

+ * Date:          2013-09-25

+ * History 1:

+ *     Date:

+ *     Version:

+ *     Author:

+ *     Modification:

+ * History 2:

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

+

+#ifndef _REQUEST_QUEUE_H

+#define _REQUEST_QUEUE_H

+

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

+* 	                                        Include files

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

+#include "drvs_general.h"

+#include "ring_queue.h"

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

+* 	                                        Macros

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

+

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

+* 	                                        Types

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

+typedef enum _T_QUEUE_STATE{

+	QUEUE_IDLE,

+	QUEUE_SUBMITING,

+	QUEUE_SUSPEND,

+	QUEUE_WORKING,

+}T_QUEUE_STATE;

+

+

+typedef struct _T_Request_Queue T_Request_Queue;

+typedef struct _T_Request T_Request;

+

+typedef SINT32 (*queue_notify)(T_Request_Queue *);

+

+

+/*

+ * request state

+ */

+typedef struct _T_Request_Queue {

+	T_Ring_Queue *queue;

+	

+	T_QUEUE_STATE work_state;

+	T_QUEUE_STATE process_state;

+	

+	queue_notify notify_fn;

+	VOID *queue_data;

+}T_Request_Queue;

+

+/*

+ * request

+ */

+typedef struct _T_Request {	

+	VOID  *data;

+}T_Request;

+

+

+

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

+* 	                                        Constants

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

+

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

+* 	                                        Global  Variables

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

+

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

+* 	                                        Function Prototypes

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

+T_Request_Queue *requestQueue_Create(unsigned long req_count, unsigned long req_size, queue_notify notify_fn, VOID* queue_data);

+

+SINT32 requestQueue_SubmitRequest(T_Request_Queue *q, T_Request *req);

+

+SINT32 requestQueue_FetchRequest(T_Request_Queue *q, T_Request *req);

+

+SINT32 requestQueue_Suspend(T_Request_Queue *q);

+

+SINT32 requestQueue_Resume(T_Request_Queue *q);

+

+VOID requestQueue_Destroy(T_Request_Queue *q);

+

+#endif/*_REQUEST_QUEUE_H*/

+