Lines Matching defs:smc_fid
39 static bool get_handler_for_smc_fid(uint32_t smc_fid, rt_svc_handle_t *handler)
45 idx = get_unique_oen_from_smc_fid(smc_fid);
186 static u_register_t get_flags(uint32_t smc_fid, u_register_t scr_el3)
203 * smc_fid passed to the standard service dispatcher. A
207 flags |= smc_fid & MASK(FUNCID_SVE_HINT);
212 static void sync_handler(cpu_context_t *ctx, uint32_t smc_fid, u_register_t scr_el3)
221 if (EXTRACT(FUNCID_TYPE, smc_fid) == SMC_TYPE_FAST &&
222 EXTRACT(FUNCID_FC_RESERVED, smc_fid) != 0) {
226 smc_fid &= ~MASK(FUNCID_SVE_HINT);
229 if (!get_handler_for_smc_fid(smc_fid, &handler)) {
235 handler(smc_fid, x1, x2, x3, x4, NULL, ctx, get_flags(smc_fid, scr_el3));
240 uint32_t smc_fid = read_ctx_reg(get_gpregs_ctx(ctx), CTX_GPREG_X0);
247 if (exc_class == EC_AARCH32_SMC && EXTRACT(FUNCID_CC, smc_fid) != 0) {
250 return sync_handler(ctx, smc_fid, scr_el3);
252 int ret = handle_sysreg_trap(esr_el3, ctx, get_flags(smc_fid, scr_el3));
307 * Function to invoke the registered `handle` corresponding to the smc_fid in
310 uintptr_t handle_runtime_svc(uint32_t smc_fid,
320 if (!get_handler_for_smc_fid(smc_fid, &handler)) {
326 return handler(smc_fid, x1, x2, x3, x4, cookie, handle, flags);