Optimise service provider handler look-up
With the increased use of chained service providers as a
way of extending a core service provider, a simple optimisation
is possible that reduces the average handler look-up time
when handling a call request. This change adds an opcode
range check such that the handler look-up for a service
provider is only performed if the opcode falls within
the opcode range handled by the service provider.
Signed-off-by: Julian Hall <julian.hall@arm.com>
Change-Id: I8c1e9c699349bd8bd2603c0834fbcd005caa36b3
diff --git a/components/service/common/provider/service_provider.h b/components/service/common/provider/service_provider.h
index a4f15e4..a0e853e 100644
--- a/components/service/common/provider/service_provider.h
+++ b/components/service/common/provider/service_provider.h
@@ -47,6 +47,8 @@
struct rpc_interface iface;
const struct service_handler *handlers;
size_t num_handlers;
+ uint32_t opcode_range_lo;
+ uint32_t opcode_range_hi;
struct rpc_interface *successor;
};