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 */
32int ia_css_rmgr_init(void);
33
34/**
35 * @brief Uninitialize resource manager (host/common)
36 */
37void 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