1 /* SPDX-License-Identifier: GPL-2.0 */
2 /*
3  * Support for Intel Camera Imaging ISP subsystem.
4  * Copyright (c) 2010 - 2015, Intel Corporation.
5  *
6  * This program is free software; you can redistribute it and/or modify it
7  * under the terms and conditions of the GNU General Public License,
8  * version 2, as published by the Free Software Foundation.
9  *
10  * This program is distributed in the hope it will be useful, but WITHOUT
11  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
13  * more details.
14  */
15 
16 #ifndef _IA_CSS_RMGR_H
17 #define _IA_CSS_RMGR_H
18 
19 #include <ia_css_err.h>
20 
21 #ifndef __INLINE_RMGR__
22 #define STORAGE_CLASS_RMGR_H extern
23 #define STORAGE_CLASS_RMGR_C
24 #else				/* __INLINE_RMGR__ */
25 #define STORAGE_CLASS_RMGR_H static inline
26 #define STORAGE_CLASS_RMGR_C static inline
27 #endif				/* __INLINE_RMGR__ */
28 
29 /**
30  * @brief Initialize resource manager (host/common)
31  */
32 int ia_css_rmgr_init(void);
33 
34 /**
35  * @brief Uninitialize resource manager (host/common)
36  */
37 void ia_css_rmgr_uninit(void);
38 
39 /*****************************************************************
40  * Interface definition - resource type (host/common)
41  *****************************************************************
42  *
43  * struct ia_css_rmgr_<type>_pool;
44  * struct ia_css_rmgr_<type>_handle;
45  *
46  * STORAGE_CLASS_RMGR_H void ia_css_rmgr_init_<type>(
47  *	struct ia_css_rmgr_<type>_pool *pool);
48  *
49  * STORAGE_CLASS_RMGR_H void ia_css_rmgr_uninit_<type>(
50  *	struct ia_css_rmgr_<type>_pool *pool);
51  *
52  * STORAGE_CLASS_RMGR_H void ia_css_rmgr_acq_<type>(
53  *	struct ia_css_rmgr_<type>_pool *pool,
54  *	struct ia_css_rmgr_<type>_handle **handle);
55  *
56  * STORAGE_CLASS_RMGR_H void ia_css_rmgr_rel_<type>(
57  *	struct ia_css_rmgr_<type>_pool *pool,
58  *	struct ia_css_rmgr_<type>_handle **handle);
59  *
60  *****************************************************************
61  * Interface definition - refcounting (host/common)
62  *****************************************************************
63  *
64  * void ia_css_rmgr_refcount_retain_<type>(
65  *	struct ia_css_rmgr_<type>_handle **handle);
66  *
67  * void ia_css_rmgr_refcount_release_<type>(
68  *	struct ia_css_rmgr_<type>_handle **handle);
69  */
70 
71 #include "ia_css_rmgr_vbuf.h"
72 
73 #endif	/* _IA_CSS_RMGR_H */
74