15bd9c17dSSaurabh Gorecha /* 25bd9c17dSSaurabh Gorecha * Copyright (c) 2018-2020, The Linux Foundation. All rights reserved. 35bd9c17dSSaurabh Gorecha * 45bd9c17dSSaurabh Gorecha * SPDX-License-Identifier: BSD-3-Clause 55bd9c17dSSaurabh Gorecha */ 65bd9c17dSSaurabh Gorecha 75bd9c17dSSaurabh Gorecha #ifndef QTISECLIB_CB_INTERFACE_H 85bd9c17dSSaurabh Gorecha #define QTISECLIB_CB_INTERFACE_H 95bd9c17dSSaurabh Gorecha 105bd9c17dSSaurabh Gorecha #include <stdarg.h> 115bd9c17dSSaurabh Gorecha #include <stdbool.h> 125bd9c17dSSaurabh Gorecha #include <stddef.h> 135bd9c17dSSaurabh Gorecha #include <stdint.h> 145bd9c17dSSaurabh Gorecha 155bd9c17dSSaurabh Gorecha #include <qtiseclib_defs.h> 165bd9c17dSSaurabh Gorecha 175bd9c17dSSaurabh Gorecha /* Standard Library API's */ 185bd9c17dSSaurabh Gorecha void *qtiseclib_cb_memcpy(void *dst, const void *src, size_t len); 199ac093b6SSaurabh Gorecha int qtiseclib_cb_strcmp(const char *s1, const char *s2); 209ac093b6SSaurabh Gorecha void *qtiseclib_cb_memset(void *s, int c, size_t n); 219ac093b6SSaurabh Gorecha void *qtiseclib_cb_memmove(void *dest, const void *src, size_t n); 225bd9c17dSSaurabh Gorecha 235bd9c17dSSaurabh Gorecha #define QTISECLIB_CB_ERROR(...) qtiseclib_cb_log(QTISECLIB_LOG_LEVEL_ERROR, __VA_ARGS__) 245bd9c17dSSaurabh Gorecha #define QTISECLIB_CB_NOTICE(...) qtiseclib_cb_log(QTISECLIB_LOG_LEVEL_NOTICE, __VA_ARGS__) 255bd9c17dSSaurabh Gorecha #define QTISECLIB_CB_WARN(...) qtiseclib_cb_log(QTISECLIB_LOG_LEVEL_WARNING, __VA_ARGS__) 265bd9c17dSSaurabh Gorecha #define QTISECLIB_CB_INFO(...) qtiseclib_cb_log(QTISECLIB_LOG_LEVEL_INFO, __VA_ARGS__) 275bd9c17dSSaurabh Gorecha 285bd9c17dSSaurabh Gorecha void qtiseclib_cb_log(unsigned int loglvl, const char *fmt, ...); 295bd9c17dSSaurabh Gorecha 305bd9c17dSSaurabh Gorecha void qtiseclib_cb_spin_lock(qtiseclib_cb_spinlock_t *lock); 315bd9c17dSSaurabh Gorecha void qtiseclib_cb_spin_unlock(qtiseclib_cb_spinlock_t *lock); 325bd9c17dSSaurabh Gorecha 335bd9c17dSSaurabh Gorecha unsigned int qtiseclib_cb_plat_my_core_pos(void); 345bd9c17dSSaurabh Gorecha int qtiseclib_cb_plat_core_pos_by_mpidr(u_register_t mpidr); 355bd9c17dSSaurabh Gorecha unsigned int qtiseclib_cb_plat_my_cluster_pos(void); 365bd9c17dSSaurabh Gorecha 375bd9c17dSSaurabh Gorecha /* GIC platform wrappers */ 385bd9c17dSSaurabh Gorecha void qtiseclib_cb_gic_pcpu_init(void); 395bd9c17dSSaurabh Gorecha void qtiseclib_cb_ic_raise_sgi(int sgi_num, u_register_t target); 405bd9c17dSSaurabh Gorecha void qtiseclib_cb_set_spi_routing(unsigned int id, unsigned int irm, 415bd9c17dSSaurabh Gorecha u_register_t target); 425bd9c17dSSaurabh Gorecha /* Crash reporting api's wrappers */ 435bd9c17dSSaurabh Gorecha void qtiseclib_cb_switch_console_to_crash_state(void); 445bd9c17dSSaurabh Gorecha 455bd9c17dSSaurabh Gorecha void qtiseclib_cb_udelay(uint32_t usec); 465bd9c17dSSaurabh Gorecha 47*831b0e98SJimmy Brisson void qtiseclib_cb_console_flush(void); 489ac093b6SSaurabh Gorecha 495bd9c17dSSaurabh Gorecha #if QTI_SDI_BUILD 505bd9c17dSSaurabh Gorecha int qtiseclib_cb_mmap_remove_dynamic_region(uintptr_t base_va, size_t size); 515bd9c17dSSaurabh Gorecha int qtiseclib_cb_mmap_add_dynamic_region(unsigned long long base_pa, 525bd9c17dSSaurabh Gorecha size_t size, 535bd9c17dSSaurabh Gorecha qtiseclib_mmap_attr_t attr); 545bd9c17dSSaurabh Gorecha 555bd9c17dSSaurabh Gorecha void qtiseclib_cb_flush_dcache_all(void); 565bd9c17dSSaurabh Gorecha void qtiseclib_cb_get_ns_ctx(qtiseclib_dbg_a64_ctxt_regs_type *ns_ctx); 575bd9c17dSSaurabh Gorecha #endif 585bd9c17dSSaurabh Gorecha 595bd9c17dSSaurabh Gorecha #endif /* QTISECLIB_CB_INTERFACE_H */ 60