Changeset View
Changeset View
Standalone View
Standalone View
sys/dev/ipmi/ipmi_smbios.c
Show First 20 Lines • Show All 81 Lines • ▼ Show 20 Lines | |||||
typedef void (*smbios_callback_t)(struct smbios_structure_header *, void *); | typedef void (*smbios_callback_t)(struct smbios_structure_header *, void *); | ||||
static struct ipmi_get_info ipmi_info; | static struct ipmi_get_info ipmi_info; | ||||
static int ipmi_probed; | static int ipmi_probed; | ||||
static struct mtx ipmi_info_mtx; | static struct mtx ipmi_info_mtx; | ||||
MTX_SYSINIT(ipmi_info, &ipmi_info_mtx, "ipmi info", MTX_DEF); | MTX_SYSINIT(ipmi_info, &ipmi_info_mtx, "ipmi info", MTX_DEF); | ||||
static void ipmi_smbios_probe(struct ipmi_get_info *); | static void ipmi_smbios_probe(struct ipmi_get_info *); | ||||
static int smbios_cksum(struct smbios_eps *); | |||||
static void smbios_walk_table(uint8_t *, vm_size_t, smbios_callback_t, | static void smbios_walk_table(uint8_t *, vm_size_t, smbios_callback_t, | ||||
void *); | void *); | ||||
static void smbios_ipmi_info(struct smbios_structure_header *, void *); | static void smbios_ipmi_info(struct smbios_structure_header *, void *); | ||||
static void | static void | ||||
smbios_ipmi_info(struct smbios_structure_header *h, void *arg) | smbios_ipmi_info(struct smbios_structure_header *h, void *arg) | ||||
{ | { | ||||
struct ipmi_get_info *info; | struct ipmi_get_info *info; | ||||
▲ Show 20 Lines • Show All 132 Lines • ▼ Show 20 Lines | default: | ||||
/* The cached data is available. */ | /* The cached data is available. */ | ||||
break; | break; | ||||
} | } | ||||
bcopy(&ipmi_info, info, sizeof(ipmi_info)); | bcopy(&ipmi_info, info, sizeof(ipmi_info)); | ||||
mtx_unlock(&ipmi_info_mtx); | mtx_unlock(&ipmi_info_mtx); | ||||
return (info->iface_type != 0); | return (info->iface_type != 0); | ||||
} | |||||
static int | |||||
smbios_cksum(struct smbios_eps *e) | |||||
{ | |||||
u_int8_t *ptr; | |||||
u_int8_t cksum; | |||||
int i; | |||||
ptr = (u_int8_t *)e; | |||||
cksum = 0; | |||||
for (i = 0; i < e->length; i++) { | |||||
cksum += ptr[i]; | |||||
} | |||||
return (cksum); | |||||
} | } |