aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Mares <mj@ucw.cz>2024-02-18 01:35:59 +0100
committerMartin Mares <mj@ucw.cz>2024-02-18 01:35:59 +0100
commitd32e8a447c25199a7e205fd0e8fade04475a961b (patch)
treebb9b75f4477d5c3136692c1fc88e71d8c19905d9
parent4c93c5d3fa620cf5296d48528cba6971d15affce (diff)
downloadpciutils-d32e8a447c25199a7e205fd0e8fade04475a961b.tar.gz
Library: pci_define_param() returns a pointer to the parameter
This will allow overriding pci_param->malloced.
-rw-r--r--lib/internal.h2
-rw-r--r--lib/params.c5
2 files changed, 4 insertions, 3 deletions
diff --git a/lib/internal.h b/lib/internal.h
index 4c55739..64836b9 100644
--- a/lib/internal.h
+++ b/lib/internal.h
@@ -127,7 +127,7 @@ struct pci_property {
char *pci_set_property(struct pci_dev *d, u32 key, char *value);
/* params.c */
-void pci_define_param(struct pci_access *acc, char *param, char *val, char *help);
+struct pci_param *pci_define_param(struct pci_access *acc, char *param, char *val, char *help);
int pci_set_param_internal(struct pci_access *acc, char *param, char *val, int copy);
void pci_free_params(struct pci_access *acc);
diff --git a/lib/params.c b/lib/params.c
index ac756ad..9b4c2e2 100644
--- a/lib/params.c
+++ b/lib/params.c
@@ -25,7 +25,7 @@ pci_get_param(struct pci_access *acc, char *param)
return NULL;
}
-void
+struct pci_param *
pci_define_param(struct pci_access *acc, char *param, char *value, char *help)
{
struct pci_param *p, **pp;
@@ -37,7 +37,7 @@ pci_define_param(struct pci_access *acc, char *param, char *value, char *help)
{
if (strcmp(p->value, value) || strcmp(p->help, help))
acc->error("Parameter %s re-defined differently", param);
- return;
+ return p;
}
if (cmp > 0)
break;
@@ -50,6 +50,7 @@ pci_define_param(struct pci_access *acc, char *param, char *value, char *help)
p->value = value;
p->value_malloced = 0;
p->help = help;
+ return p;
}
int