summaryrefslogtreecommitdiff
path: root/common/extension.c
diff options
context:
space:
mode:
Diffstat (limited to 'common/extension.c')
-rw-r--r--common/extension.c21
1 files changed, 8 insertions, 13 deletions
diff --git a/common/extension.c b/common/extension.c
index d75bbbe4f3..fecb61ec9e 100644
--- a/common/extension.c
+++ b/common/extension.c
@@ -11,11 +11,7 @@
#define CPRINTS(format, args...) cprints(CC_EXTENSION, format, ## args)
-uint32_t extension_route_command(uint16_t command_code,
- void *buffer,
- size_t in_size,
- size_t *out_size,
- uint32_t flags)
+uint32_t extension_route_command(struct vendor_cmd_params *p)
{
struct extension_command *cmd_p;
struct extension_command *end_p;
@@ -27,8 +23,8 @@ uint32_t extension_route_command(uint16_t command_code,
#endif
/* Filter commands from USB */
- if (flags & VENDOR_CMD_FROM_USB) {
- switch (command_code) {
+ if (p->flags & VENDOR_CMD_FROM_USB) {
+ switch (p->code) {
#ifdef CR50_DEV
case VENDOR_CC_IMMEDIATE_RESET:
case VENDOR_CC_INVALIDATE_INACTIVE_RW:
@@ -54,7 +50,7 @@ uint32_t extension_route_command(uint16_t command_code,
* Cr50 firmware.
*/
if (board_id_is_mismatched()) {
- switch (command_code) {
+ switch (p->code) {
case EXTENSION_FW_UPGRADE:
case VENDOR_CC_REPORT_TPM_STATE:
case VENDOR_CC_TURN_UPDATE_ON:
@@ -71,15 +67,14 @@ uint32_t extension_route_command(uint16_t command_code,
cmd_p = (struct extension_command *)&__extension_cmds;
end_p = (struct extension_command *)&__extension_cmds_end;
while (cmd_p != end_p) {
- if (cmd_p->command_code == command_code)
- return cmd_p->handler(command_code, buffer,
- in_size, out_size);
+ if (cmd_p->command_code == p->code)
+ return cmd_p->handler(p);
cmd_p++;
}
ignore_cmd:
/* Command not found or not allowed */
- CPRINTS("%s: ignore %d: %s", __func__, command_code, why_ignore);
- *out_size = 0;
+ CPRINTS("%s: ignore %d: %s", __func__, p->code, why_ignore);
+ p->out_size = 0;
return VENDOR_RC_NO_SUCH_COMMAND;
}