]>
git.ipfire.org Git - thirdparty/lldpd.git/blob - src/dmi.c
14aa895bdb29cd0e476fa1648a64039fe81ce8fa
2 * Copyright (c) 2009 Vincent Bernat <bernat@luffy.cx>
4 * Permission to use, copy, modify, and/or distribute this software for any
5 * purpose with or without fee is hereby granted, provided that the above
6 * copyright notice and this permission notice appear in all copies.
8 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
9 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
10 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
11 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
12 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
13 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
14 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
17 #define INCLUDE_LINUX_IF_H
22 /* Fill in inventory stuff:
23 - hardware version: /sys/class/dmi/id/product_version
24 - firmware version: /sys/class/dmi/id/bios_version
25 - software version: `uname -r`
26 - serial number: /sys/class/dmi/id/product_serial
27 - manufacturer: /sys/class/dmi/id/sys_vendor
28 - model: /sys/class/dmi/id/product_name
29 - asset: /sys/class/dmi/id/chassis_asset_tag
32 #if __i386__ || __amd64__
39 if ((dmi
= priv_open(file
)) < 0) {
40 LLOG_DEBUG("cannot get DMI file %s", file
);
43 memset(buffer
, 0, sizeof(buffer
));
44 if ((s
= read(dmi
, buffer
, sizeof(buffer
))) == -1) {
45 LLOG_DEBUG("cannot read DMI file %s", file
);
50 buffer
[sizeof(buffer
) - 1] = '\0';
51 if ((s
> 0) && (buffer
[s
-1] == '\n'))
54 return strdup(buffer
);
61 return dmi_get(SYSFS_CLASS_DMI
"product_version");
67 return dmi_get(SYSFS_CLASS_DMI
"bios_version");
73 return dmi_get(SYSFS_CLASS_DMI
"product_serial");
79 return dmi_get(SYSFS_CLASS_DMI
"sys_vendor");
85 return dmi_get(SYSFS_CLASS_DMI
"product_name");
91 return dmi_get(SYSFS_CLASS_DMI
"chassis_asset_tag");