57 lines
2.4 KiB
C
Executable file
57 lines
2.4 KiB
C
Executable file
/* SPDX-License-Identifier: GPL-2.0 */
|
|
/*
|
|
* Copyright (C) 2014-2019, Samsung Electronics.
|
|
*
|
|
* This software is licensed under the terms of the GNU General Public
|
|
* License version 2, as published by the Free Software Foundation, and
|
|
* may be copied, distributed, and modified under those terms.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
*/
|
|
|
|
#ifndef __SHMEM_IPC_H__
|
|
#define __SHMEM_IPC_H__
|
|
|
|
#define MAX_CP_NUM 2
|
|
|
|
#if IS_ENABLED(CONFIG_SHM_IPC)
|
|
int cp_shmem_get_mem_map_on_cp_flag(u32 cp_num);
|
|
void __iomem *cp_shmem_get_region(u32 cp, u32 idx);
|
|
void __iomem *cp_shmem_get_nc_region(unsigned long base, u32 size);
|
|
void cp_shmem_release_region(u32 cp, u32 idx);
|
|
void cp_shmem_release_rmem(u32 cp, u32 idx, u32 headroom);
|
|
unsigned long cp_shmem_get_base(u32 cp, u32 idx);
|
|
u32 cp_shmem_get_size(u32 cp, u32 idx);
|
|
|
|
/* Legacy functions */
|
|
unsigned long shm_get_msi_base(void);
|
|
void __iomem *shm_get_vss_region(void);
|
|
unsigned long shm_get_vss_base(void);
|
|
u32 shm_get_vss_size(void);
|
|
void __iomem *shm_get_vparam_region(void);
|
|
unsigned long shm_get_vparam_base(void);
|
|
u32 shm_get_vparam_size(void);
|
|
#else /* CONFIG_SHM_IPC */
|
|
static inline int cp_shmem_get_mem_map_on_cp_flag(u32 cp_num) { return 0; }
|
|
static inline void __iomem *cp_shmem_get_region(u32 cp, u32 idx) { return NULL; }
|
|
static inline void __iomem *cp_shmem_get_nc_region(unsigned long base, u32 size) { return NULL; }
|
|
static inline void cp_shmem_release_region(u32 cp, u32 idx) { return; }
|
|
static inline void cp_shmem_release_rmem(u32 cp, u32 idx, u32 headroom) { return; }
|
|
static inline unsigned long cp_shmem_get_base(u32 cp, u32 idx) { return 0; }
|
|
static inline u32 cp_shmem_get_size(u32 cp, u32 idx) { return 0; }
|
|
|
|
/* Legacy functions */
|
|
static inline unsigned long shm_get_msi_base(void) { return 0; }
|
|
static inline void __iomem *shm_get_vss_region(void) { return NULL;}
|
|
static inline unsigned long shm_get_vss_base(void) { return 0; }
|
|
static inline u32 shm_get_vss_size(void) { return 0; }
|
|
static inline void __iomem *shm_get_vparam_region(void) { return NULL; }
|
|
static inline unsigned long shm_get_vparam_base(void) { return 0; }
|
|
static inline u32 shm_get_vparam_size(void) { return 0; }
|
|
#endif /* CONFIG_SHM_IPC */
|
|
|
|
#endif /* __SHMEM_IPC_H__ */
|