Update DEP-5 uri
[debian/omnibook.git] / info.c
1 /*
2  * info.c -- trivial informational features
3  * 
4  * This program is free software; you can redistribute it and/or modify it
5  * under the terms of the GNU General Public License as published by the
6  * Free Software Foundation; either version 2, or (at your option) any
7  * later version.
8  * 
9  * This program is distributed in the hope that it will be useful, but
10  * WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12  * General Public License for more details.
13  *
14  * Written by Soós Péter <sp@osb.hu>, 2002-2004
15  * Modified by Mathieu Bérard <mathieu.berard@crans.org>, 2006
16  */
17
18 #include "omnibook.h"
19
20 #include <linux/dmi.h>
21 #include <linux/version.h>
22
23 static int omnibook_version_read(char *buffer, struct omnibook_operation *io_op)
24 {
25         int len = 0;
26
27         len += sprintf(buffer + len, "%s\n", OMNIBOOK_MODULE_VERSION);
28
29         return len;
30 }
31
32 static int omnibook_dmi_read(char *buffer, struct omnibook_operation *io_op)
33 {
34         int len = 0;
35
36         len += sprintf(buffer + len, "BIOS Vendor:   %s\n", dmi_get_system_info(DMI_BIOS_VENDOR));
37         len += sprintf(buffer + len, "BIOS Version:  %s\n", dmi_get_system_info(DMI_BIOS_VERSION));
38         len += sprintf(buffer + len, "BIOS Release:  %s\n", dmi_get_system_info(DMI_BIOS_DATE));
39         len += sprintf(buffer + len, "System Vendor: %s\n", dmi_get_system_info(DMI_SYS_VENDOR));
40         len += sprintf(buffer + len, "Product Name:  %s\n", dmi_get_system_info(DMI_PRODUCT_NAME));
41         len +=
42             sprintf(buffer + len, "Version:       %s\n", dmi_get_system_info(DMI_PRODUCT_VERSION));
43 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,15))
44         len +=
45             sprintf(buffer + len, "Serial Number: %s\n", dmi_get_system_info(DMI_PRODUCT_SERIAL));
46 #endif
47         len += sprintf(buffer + len, "Board Vendor:  %s\n", dmi_get_system_info(DMI_BOARD_VENDOR));
48         len += sprintf(buffer + len, "Board Name:    %s\n", dmi_get_system_info(DMI_BOARD_VERSION));
49
50         return len;
51 }
52
53 static struct omnibook_feature __declared_feature version_driver = {
54         .name = "version",
55         .enabled = 1,
56         .read = omnibook_version_read,
57 };
58
59 static struct omnibook_feature __declared_feature dmi_driver = {
60         .name = "dmi",
61         .enabled = 1,
62         .read = omnibook_dmi_read,
63 };
64
65 module_param_named(dmi, dmi_driver.enabled, int, S_IRUGO);
66 MODULE_PARM_DESC(dmi, "Use 0 to disable, 1 to enable DMI informations display support");
67
68 /* End of file */