blob: 895006f7ab910f884b9c6795f11c1e4983767509 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
|
/*
* Copyright (C) 2004-2010 Freescale Semiconductor, Inc. All Rights Reserved.
*/
/*
* The code contained herein is licensed under the GNU General Public
* License. You may obtain a copy of the GNU General Public License
* Version 2 or later at the following locations:
*
* http://www.opensource.org/licenses/gpl-license.html
* http://www.gnu.org/copyleft/gpl.html
*/
/**
* @file sah_queue_manager.h
*
* @brief This file definitions for the Queue Manager.
* The Queue Manager manages additions and removal from the queue and updates
* the status of queue entries. It also calls sah_HW_* functions to interact
* with the hardware.
*
*/
#ifndef SAH_QUEUE_MANAGER_H
#define SAH_QUEUE_MANAGER_H
#include <sah_driver_common.h>
#include <sah_status_manager.h>
/*************************
* Queue Manager Functions
*************************/
fsl_shw_return_t sah_Queue_Manager_Init(void);
void sah_Queue_Manager_Close(void);
void sah_Queue_Manager_Reset_Entries(void);
void sah_Queue_Manager_Append_Entry(sah_Head_Desc *entry);
void sah_Queue_Manager_Remove_Entry(sah_Head_Desc *entry);
/*************************
* Queue Functions
*************************/
sah_Queue *sah_Queue_Construct(void);
void sah_Queue_Destroy(sah_Queue *this);
void sah_Queue_Append_Entry(sah_Queue *this, sah_Head_Desc *entry);
void sah_Queue_Remove_Entry(sah_Queue *this);
void sah_Queue_Remove_Any_Entry(sah_Queue *this, sah_Head_Desc *entry);
void sah_postprocess_queue(unsigned long reset_flag);
/*************************
* Misc Releated Functions
*************************/
int sah_blocking_mode(struct sah_Head_Desc *entry);
fsl_shw_return_t sah_convert_error_status(uint32_t error_status);
#endif /* SAH_QUEUE_MANAGER_H */
/* End of sah_queue_manager.h */
|