diff options
Diffstat (limited to 'common/extension.c')
-rw-r--r-- | common/extension.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/common/extension.c b/common/extension.c index a588ce892e..d28bfad337 100644 --- a/common/extension.c +++ b/common/extension.c @@ -10,10 +10,10 @@ #define CPRINTF(format, args...) cprintf(CC_EXTENSION, format, ## args) -void extension_route_command(uint16_t command_code, - void *buffer, - size_t in_size, - size_t *out_size) +uint32_t extension_route_command(uint16_t command_code, + void *buffer, + size_t in_size, + size_t *out_size) { struct extension_command *cmd_p; struct extension_command *end_p; @@ -22,10 +22,9 @@ void extension_route_command(uint16_t command_code, end_p = (struct extension_command *)&__extension_cmds_end; while (cmd_p != end_p) { - if (cmd_p->command_code == command_code) { - cmd_p->handler(buffer, in_size, out_size); - return; - } + if (cmd_p->command_code == command_code) + return cmd_p->handler(command_code, buffer, + in_size, out_size); cmd_p++; } @@ -33,4 +32,5 @@ void extension_route_command(uint16_t command_code, /* This covers the case of the handler not found. */ *out_size = 0; + return VENDOR_RC_NO_SUCH_COMMAND; } |