From 43342414639d26071283aba30b7ac6f123dad0d5 Mon Sep 17 00:00:00 2001 From: Nathaniel Mitchell Date: Wed, 19 Aug 2020 16:49:19 -0700 Subject: [PATCH] Added function to check if a register defines all fields in input list Signed-off-by: Nathaniel Mitchell --- chipsec/chipset.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/chipsec/chipset.py b/chipsec/chipset.py index 4403437b..bd26a3ad 100644 --- a/chipsec/chipset.py +++ b/chipsec/chipset.py @@ -683,6 +683,8 @@ class Chipset: # reads/writes the value of the field (by name) of all configuration register instances (by register name) # register_has_field # checks if the register has specific field +# register_has_all_fields +# Checks if the register as all fields specified in list # print_register # prints configuration register # print_register_all @@ -937,6 +939,18 @@ class Chipset: return False return (field_name in reg_def['FIELDS']) + def register_has_all_fields(self, reg_name, field_list): + try: + self.get_register_def(reg_name) + except KeyError: + return False + ret = True + for field in field_list: + ret = ret and self.register_has_field(reg_name, field) + if not ret: + break + return ret + def _register_fields_str(self, reg_def, reg_val): reg_fields_str = '' if 'FIELDS' in reg_def: