100 lines
3.5 KiB
C
Executable File
100 lines
3.5 KiB
C
Executable File
/*
|
|
* Copyright (C) 2014 Samsung Electronics Co.Ltd
|
|
* http://www.samsung.com
|
|
*
|
|
* Shared Memory driver
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify it
|
|
* under the terms of the GNU General Public License as published by the
|
|
* Free Software Foundation; either version 2 of the License, or (at your
|
|
* option) any later version.
|
|
*/
|
|
#ifndef SHMEM_IPC_H
|
|
#define SHMEM_IPC_H
|
|
|
|
struct shdmem_info {
|
|
unsigned int base;
|
|
unsigned int size;
|
|
};
|
|
|
|
#if IS_ENABLED(CONFIG_SHM_IPC)
|
|
unsigned long shm_get_phys_base(void);
|
|
unsigned shm_get_phys_size(void);
|
|
unsigned shm_get_boot_size(void);
|
|
unsigned shm_get_ipc_rgn_offset(void);
|
|
unsigned shm_get_ipc_rgn_size(void);
|
|
unsigned shm_get_zmb_size(void);
|
|
unsigned shm_get_vss_base(void);
|
|
unsigned shm_get_vss_size(void);
|
|
unsigned shm_get_vparam_base(void);
|
|
unsigned shm_get_vparam_size(void);
|
|
unsigned shm_get_acpm_size(void);
|
|
unsigned shm_get_cp_size(void);
|
|
unsigned long shm_get_security_param2(unsigned long mode, u32 bl_size);
|
|
unsigned long shm_get_security_param3(unsigned long mode, u32 main_size);
|
|
|
|
void __iomem *shm_request_region(unsigned long sh_addr, unsigned size);
|
|
void __iomem *shm_get_boot_region(void);
|
|
void __iomem *shm_get_ipc_region(void);
|
|
void __iomem *shm_get_zmb_region(void);
|
|
void __iomem *shm_get_vss_region(void);
|
|
void __iomem *shm_get_acpm_region(void);
|
|
|
|
void shm_release_region(void *v_addr);
|
|
void shm_release_regions(void);
|
|
void clean_vss_magic_code(void);
|
|
int shm_get_use_cp_memory_map_flag(void);
|
|
|
|
#ifdef CONFIG_CP_RAM_LOGGING
|
|
unsigned long shm_get_cplog_base(void);
|
|
unsigned shm_get_cplog_size(void);
|
|
int shm_get_cplog_flag(void);
|
|
void __iomem *shm_get_cplog_region(void);
|
|
#endif
|
|
#else
|
|
static inline unsigned long shm_get_phys_base(void) { return 0; }
|
|
static inline unsigned shm_get_phys_size(void) { return 0; }
|
|
static inline unsigned shm_get_boot_size(void) { return 0; }
|
|
static inline unsigned shm_get_ipc_rgn_offset(void) { return 0; }
|
|
static inline unsigned shm_get_ipc_rgn_size(void) { return 0; }
|
|
static inline unsigned shm_get_zmb_size(void) { return 0; }
|
|
static inline unsigned shm_get_vss_base(void) { return 0; }
|
|
static inline unsigned shm_get_vss_size(void) { return 0; }
|
|
static inline unsigned shm_get_vparam_base(void) { return 0; }
|
|
static inline unsigned shm_get_vparam_size(void) { return 0; }
|
|
static inline unsigned shm_get_acpm_size(void) { return 0; }
|
|
static inline unsigned shm_get_cp_size(void) { return 0; }
|
|
static inline unsigned long shm_get_security_param2(unsigned long mode, u32 bl_size)
|
|
{
|
|
return 0;
|
|
}
|
|
static inline unsigned long shm_get_security_param3(unsigned long mode, u32 main_size)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
static inline void __iomem *shm_request_region(unsigned long sh_addr, unsigned size)
|
|
{
|
|
return 0;
|
|
}
|
|
static inline void __iomem *shm_get_boot_region(void) { return NULL; }
|
|
static inline void __iomem *shm_get_ipc_region(void) { return NULL; }
|
|
static inline void __iomem *shm_get_zmb_region(void) { return NULL; }
|
|
static inline void __iomem *shm_get_vss_region(void) { return NULL; }
|
|
static inline void __iomem *shm_get_acpm_region(void) { return NULL; }
|
|
|
|
static inline void shm_release_region(void *v_addr) {}
|
|
static inline void shm_release_regions(void) {}
|
|
static inline void clean_vss_magic_code(void) {}
|
|
static inline int shm_get_use_cp_memory_map_flag(void) { return 0; }
|
|
|
|
#ifdef CONFIG_CP_RAM_LOGGING
|
|
static inline unsigned long shm_get_cplog_base(void) { return 0; }
|
|
static inline unsigned shm_get_cplog_size(void) { return 0; }
|
|
static inline int shm_get_cplog_flag(void) { return 0; }
|
|
static inline void __iomem *shm_get_cplog_region(void) { return NULL; }
|
|
#endif
|
|
#endif
|
|
|
|
#endif
|