libsa: smbios_detect(): Return the entry point address

In particular, this allows the caller to know whether the detection was
successful.

Reviewed by:    imp, markj
MFC after:      2 weeks
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D49290

(cherry picked from commit 9dad0ba286807c4aa2886f13705fca2334bb4759)
This commit is contained in:
Olivier Certner 2025-03-05 11:27:50 +01:00
parent 9b8e1558c9
commit d19f1559d0
No known key found for this signature in database
GPG key ID: 8CA13040971E2627
2 changed files with 5 additions and 3 deletions

View file

@ -635,7 +635,7 @@ smbios_probe(const caddr_t addr)
}
}
void
caddr_t
smbios_detect(const caddr_t addr)
{
char buf[16];
@ -644,7 +644,7 @@ smbios_detect(const caddr_t addr)
smbios_probe(addr);
if (smbios.addr == NULL)
return;
return (NULL);
for (dmi = smbios.addr, i = 0; dmi != NULL &&
dmi < smbios.addr + smbios.length && i < smbios.count; i++)
@ -667,6 +667,8 @@ smbios_detect(const caddr_t addr)
sprintf(buf, "%u", smbios.populated_sockets);
setenv("smbios.socket.populated", buf, 1);
}
return (smbios.addr);
}
static int

View file

@ -26,7 +26,7 @@
#ifndef _SMBIOS_H_
#define _SMBIOS_H_
void smbios_detect(const caddr_t);
caddr_t smbios_detect(const caddr_t);
int smbios_match(const char *, const char *, const char *);
#endif /* _SMBIOS_H_ */