mirror of
https://github.com/anrieff/libcpuid
synced 2024-12-16 16:35:45 +00:00
a2550463a9
- Expose intel_code_t and amd_code_t enums - they are no longer limited to just recog_{intel,amd}.c. - Add libcpuid_internal.h lists those enums and provides the, cpu_ident_internal() function, which is the same as cpu_identify(), but also has a third parameter - a internal_id_info_t structure, which holds detection internals. All of this is intended to be used in rdmsr, which needs to know specifics on what CPU it is running.
63 lines
2.1 KiB
C
63 lines
2.1 KiB
C
/*
|
|
* Copyright 2016 Veselin Georgiev,
|
|
* anrieffNOSPAM @ mgail_DOT.com (convert to gmail)
|
|
*
|
|
* Redistribution and use in source and binary forms, with or without
|
|
* modification, are permitted provided that the following conditions
|
|
* are met:
|
|
*
|
|
* 1. Redistributions of source code must retain the above copyright
|
|
* notice, this list of conditions and the following disclaimer.
|
|
* 2. Redistributions in binary form must reproduce the above copyright
|
|
* notice, this list of conditions and the following disclaimer in the
|
|
* documentation and/or other materials provided with the distribution.
|
|
*
|
|
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
|
|
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
|
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
|
* IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
|
|
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
|
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
|
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
|
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
|
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
*/
|
|
#ifndef __LIBCPUID_INTERNAL_H__
|
|
#define __LIBCPUID_INTERNAL_H__
|
|
/*
|
|
* This file contains internal undocumented declarations and function prototypes
|
|
* for the workings of the internal library infrastructure.
|
|
*/
|
|
|
|
enum _common_codes_t {
|
|
NA = 0,
|
|
NO_CODE,
|
|
};
|
|
|
|
#define CODE(x) x
|
|
#define CODE2(x, y) x = y
|
|
enum _amd_code_t {
|
|
#include "amd_code_t.h"
|
|
};
|
|
typedef enum _amd_code_t amd_code_t;
|
|
|
|
enum _intel_code_t {
|
|
#include "intel_code_t.h"
|
|
};
|
|
typedef enum _intel_code_t intel_code_t;
|
|
#undef CODE
|
|
#undef CODE2
|
|
|
|
struct internal_id_info_t {
|
|
union {
|
|
amd_code_t amd;
|
|
intel_code_t intel;
|
|
} code;
|
|
int score; // detection (matchtable) score
|
|
};
|
|
|
|
int cpu_ident_internal(struct cpu_raw_data_t* raw, struct cpu_id_t* data,
|
|
struct internal_id_info_t* internal);
|
|
|
|
#endif /* __LIBCPUID_INTERNAL_H__ */
|