Releasing debian version 5.00+dfsg-1.
[syslinux-debian/hramrach.git] / com32 / gplinclude / dmi / dmi_processor.h
blobdee76649add5d8adaf391232796650778841b302
1 /* ----------------------------------------------------------------------- *
3 * Copyright 2006 Erwan Velu - All Rights Reserved
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation, Inc., 53 Temple Place Ste 330,
8 * Boston MA 02111-1307, USA; either version 2 of the License, or
9 * (at your option) any later version; incorporated herein by reference.
11 * ----------------------------------------------------------------------- */
13 #ifndef DMI_PROCESSOR_H
14 #define DMI_PROCESSOR_H
16 #include "stdbool.h"
17 #include "string.h"
18 #define PROCESSOR_SOCKET_DESIGNATION_SIZE 65
19 #define PROCESSOR_TYPE_SIZE 32
20 #define PROCESSOR_FAMILY_SIZE 32
21 #define PROCESSOR_MANUFACTURER_SIZE 65
22 #define PROCESSOR_VERSION_SIZE 65
23 #define PROCESSOR_VOLTAGE_SIZE 16
24 #define PROCESSOR_STATUS_SIZE 16
25 #define PROCESSOR_UPGRADE_SIZE 16
26 #define PROCESSOR_CACHE_SIZE 16
27 #define PROCESSOR_SERIAL_SIZE 65
28 #define PROCESSOR_ASSET_TAG_SIZE 65
29 #define PROCESSOR_PART_NUMBER_SIZE 65
30 #define PROCESSOR_ID_SIZE 32
32 #define PROCESSOR_FLAGS_ELEMENTS 32
33 /* Intel AP-485 revision 28, table 5 */
34 extern const char *cpu_flags_strings[PROCESSOR_FLAGS_ELEMENTS];
36 /* this struct have PROCESSOR_FLAGS_ELEMENTS */
37 /* each bool is associated to the relevant message above */
38 typedef struct {
39 bool fpu;
40 bool vme;
41 bool de;
42 bool pse;
43 bool tsc;
44 bool msr;
45 bool pae;
46 bool mce;
47 bool cx8;
48 bool apic;
49 bool null_10;
50 bool sep;
51 bool mtrr;
52 bool pge;
53 bool mca;
54 bool cmov;
55 bool pat;
56 bool pse_36;
57 bool psn;
58 bool clfsh;
59 bool null_20;
60 bool ds;
61 bool acpi;
62 bool mmx;
63 bool fxsr;
64 bool sse;
65 bool sse2;
66 bool ss;
67 bool htt;
68 bool tm;
69 bool null_30;
70 bool pbe;
71 } __attribute__ ((__packed__)) s_dmi_cpu_flags;
73 typedef struct {
74 uint8_t type;
75 uint8_t family;
76 uint8_t model;
77 uint8_t stepping;
78 uint8_t minor_stepping;
79 } __attribute__ ((__packed__)) s_signature;
81 typedef struct {
82 char socket_designation[PROCESSOR_SOCKET_DESIGNATION_SIZE];
83 char type[PROCESSOR_TYPE_SIZE];
84 char family[PROCESSOR_FAMILY_SIZE];
85 char manufacturer[PROCESSOR_MANUFACTURER_SIZE];
86 char version[PROCESSOR_VERSION_SIZE];
87 uint16_t voltage_mv;
88 uint16_t external_clock;
89 uint16_t max_speed;
90 uint16_t current_speed;
91 char status[PROCESSOR_STATUS_SIZE];
92 char upgrade[PROCESSOR_UPGRADE_SIZE];
93 char cache1[PROCESSOR_CACHE_SIZE];
94 char cache2[PROCESSOR_CACHE_SIZE];
95 char cache3[PROCESSOR_CACHE_SIZE];
96 char serial[PROCESSOR_SERIAL_SIZE];
97 char asset_tag[PROCESSOR_ASSET_TAG_SIZE];
98 char part_number[PROCESSOR_PART_NUMBER_SIZE];
99 char id[PROCESSOR_ID_SIZE];
100 uint16_t core_count;
101 uint16_t core_enabled;
102 uint16_t thread_count;
103 s_dmi_cpu_flags cpu_flags;
104 s_signature signature;
105 /* The filled field have to be set to true when the dmitable implement that item */
106 bool filled;
107 } s_processor;
109 const char *dmi_processor_type(uint8_t code);
110 const char *dmi_processor_family(uint8_t code, char *manufacturer);
111 const char *dmi_processor_status(uint8_t code);
112 const char *dmi_processor_upgrade(uint8_t code);
113 void dmi_processor_cache(uint16_t code, const char *level, uint16_t ver,
114 char *cache);
115 #endif