@@ -17,11 +17,23 @@ struct secvar_storage_driver {
};
struct secvar_backend_driver {
- int (*pre_process)(void); // Perform any pre-processing stuff (e.g. determine secure boot state)
- int (*process)(void); // Process all updates
- int (*post_process)(void); // Perform any post-processing stuff (e.g. derive/update variables)
- int (*validate)(struct secvar *var); // Validate a single variable, return boolean
- const char *compatible; // String to use for compatible in secvar node
+ /* Perform any pre-processing stuff (e.g. determine secure boot state) */
+ int (*pre_process)(struct list_head *variable_bank,
+ struct list_head *update_bank);
+
+ /* Process all updates */
+ int (*process)(struct list_head *variable_bank,
+ struct list_head *update_bank);
+
+ /* Perform any post-processing stuff (e.g. derive/update variables)*/
+ int (*post_process)(struct list_head *variable_bank,
+ struct list_head *update_bank);
+
+ /* Validate a single variable, return boolean */
+ int (*validate)(struct secvar *var);
+
+ /* String to use for compatible in secvar node */
+ const char *compatible;
};
@@ -65,7 +65,7 @@ int secvar_main(struct secvar_storage_driver storage_driver,
secvar_set_status("okay");
if (secvar_backend.pre_process) {
- rc = secvar_backend.pre_process();
+ rc = secvar_backend.pre_process(&variable_bank, &update_bank);
if (rc) {
prlog(PR_ERR, "Error in backend pre_process = %d\n", rc);
/* Early failure state, lock the storage */
@@ -79,7 +79,7 @@ int secvar_main(struct secvar_storage_driver storage_driver,
goto soft_fail;
/* Process variable updates from the update bank. */
- rc = secvar_backend.process();
+ rc = secvar_backend.process(&variable_bank, &update_bank);
/* Create and set the update-status device tree property */
secvar_set_update_status(rc);
@@ -109,7 +109,7 @@ int secvar_main(struct secvar_storage_driver storage_driver,
secvar_storage.lockdown();
if (secvar_backend.post_process) {
- rc = secvar_backend.post_process();
+ rc = secvar_backend.post_process(&variable_bank, &update_bank);
if (rc) {
prlog(PR_ERR, "Error in backend post_process = %d\n", rc);
goto soft_fail;