GNU Linux-libre 4.14.254-gnu1
[releases.git] / drivers / staging / media / atomisp / pci / atomisp2 / css2400 / runtime / rmgr / interface / ia_css_rmgr.h
1 #ifndef ISP2401
2 /*
3  * Support for Intel Camera Imaging ISP subsystem.
4  * Copyright (c) 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 #else
16 /**
17 Support for Intel Camera Imaging ISP subsystem.
18 Copyright (c) 2010 - 2015, Intel Corporation.
19
20 This program is free software; you can redistribute it and/or modify it
21 under the terms and conditions of the GNU General Public License,
22 version 2, as published by the Free Software Foundation.
23
24 This program is distributed in the hope it will be useful, but WITHOUT
25 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
26 FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
27 more details.
28 */
29 #endif
30
31 #ifndef _IA_CSS_RMGR_H
32 #define _IA_CSS_RMGR_H
33
34 #include "storage_class.h"
35 #include <ia_css_err.h>
36
37 #ifndef __INLINE_RMGR__
38 #define STORAGE_CLASS_RMGR_H STORAGE_CLASS_EXTERN
39 #define STORAGE_CLASS_RMGR_C
40 #else                           /* __INLINE_RMGR__ */
41 #define STORAGE_CLASS_RMGR_H STORAGE_CLASS_INLINE
42 #define STORAGE_CLASS_RMGR_C STORAGE_CLASS_INLINE
43 #endif                          /* __INLINE_RMGR__ */
44
45 /**
46  * @brief Initialize resource manager (host/common)
47  */
48 enum ia_css_err ia_css_rmgr_init(void);
49
50 /**
51  * @brief Uninitialize resource manager (host/common)
52  */
53 void ia_css_rmgr_uninit(void);
54
55 /*****************************************************************
56  * Interface definition - resource type (host/common)
57  *****************************************************************
58  *
59  * struct ia_css_rmgr_<type>_pool;
60  * struct ia_css_rmgr_<type>_handle;
61  *
62  * STORAGE_CLASS_RMGR_H void ia_css_rmgr_init_<type>(
63  *      struct ia_css_rmgr_<type>_pool *pool);
64  *
65  * STORAGE_CLASS_RMGR_H void ia_css_rmgr_uninit_<type>(
66  *      struct ia_css_rmgr_<type>_pool *pool);
67  *
68  * STORAGE_CLASS_RMGR_H void ia_css_rmgr_acq_<type>(
69  *      struct ia_css_rmgr_<type>_pool *pool,
70  *      struct ia_css_rmgr_<type>_handle **handle);
71  *
72  * STORAGE_CLASS_RMGR_H void ia_css_rmgr_rel_<type>(
73  *      struct ia_css_rmgr_<type>_pool *pool,
74  *      struct ia_css_rmgr_<type>_handle **handle);
75  *
76  *****************************************************************
77  * Interface definition - refcounting (host/common)
78  *****************************************************************
79  *
80  * void ia_css_rmgr_refcount_retain_<type>(
81  *      struct ia_css_rmgr_<type>_handle **handle);
82  *
83  * void ia_css_rmgr_refcount_release_<type>(
84  *      struct ia_css_rmgr_<type>_handle **handle);
85  */
86
87 #include "ia_css_rmgr_vbuf.h"
88
89 #endif  /* _IA_CSS_RMGR_H */