Исправление запуска модулей на Astra Linux
This commit is contained in:
parent
d7d41481b8
commit
b0c33f7f2e
@ -1,3 +1,3 @@
|
||||
#define VERSION_MAJOR 0
|
||||
#define VERSION_MINOR 1
|
||||
#define VERSION_BUILD 502
|
||||
#define VERSION_BUILD 505
|
||||
|
@ -9,7 +9,7 @@ static inline void cpuid(uint32_t leaf, uint32_t *eax, uint32_t *ebx,
|
||||
: "a"(leaf));
|
||||
}
|
||||
|
||||
static void L1_cache_size( ) {
|
||||
static inline void L1_cache_size( ) {
|
||||
uint32_t eax, ebx, ecx, edx;
|
||||
cpuid(0x80000006, &eax, &ebx, &ecx, &edx);
|
||||
if ((edx & 0xFF) == 0) {
|
||||
@ -21,7 +21,7 @@ static void L1_cache_size( ) {
|
||||
ecx & 0xff, (ecx >> 12) & 0x07, (ecx >> 16) & 0xffff);
|
||||
}
|
||||
|
||||
static void L2_cache_size( ) {
|
||||
static inline void L2_cache_size( ) {
|
||||
uint32_t eax, ebx, ecx, edx;
|
||||
cpuid(0x80000006, &eax, &ebx, &ecx, &edx);
|
||||
if ((edx & 0xFF) == 0) {
|
||||
@ -33,7 +33,7 @@ static void L2_cache_size( ) {
|
||||
ecx & 0xff, (ecx >> 12) & 0x0F, (ecx >> 16) & 0xFFFF);
|
||||
}
|
||||
|
||||
static void L3_cache_size( ) {
|
||||
static inline void L3_cache_size( ) {
|
||||
uint32_t eax, ebx, ecx, edx;
|
||||
cpuid(0x80000006, &eax, &ebx, &ecx, &edx);
|
||||
if ((edx & 0xFF) == 0) {
|
||||
|
@ -15,8 +15,8 @@ static inline void outl(uint16_t port, uint32_t data) {
|
||||
asm volatile("outl %0, %1" : : "a"(data), "Nd"(port));
|
||||
}
|
||||
|
||||
static uint16_t pci_read_word(uint16_t bus, uint16_t slot, uint16_t func,
|
||||
uint16_t offset) {
|
||||
static inline uint16_t pci_read_word(uint16_t bus, uint16_t slot, uint16_t func,
|
||||
uint16_t offset) {
|
||||
uint64_t address;
|
||||
uint64_t lbus = (uint64_t)bus;
|
||||
uint64_t lslot = (uint64_t)slot;
|
||||
@ -29,30 +29,31 @@ static uint16_t pci_read_word(uint16_t bus, uint16_t slot, uint16_t func,
|
||||
return (tmp);
|
||||
}
|
||||
|
||||
static uint16_t get_vendor_id(uint16_t bus, uint16_t device,
|
||||
uint16_t function) {
|
||||
static inline uint16_t get_vendor_id(uint16_t bus, uint16_t device,
|
||||
uint16_t function) {
|
||||
uint32_t r0 = pci_read_word(bus, device, function, 0);
|
||||
return r0;
|
||||
}
|
||||
|
||||
static uint16_t get_device_id(uint16_t bus, uint16_t device,
|
||||
uint16_t function) {
|
||||
static inline uint16_t get_device_id(uint16_t bus, uint16_t device,
|
||||
uint16_t function) {
|
||||
uint32_t r0 = pci_read_word(bus, device, function, 2);
|
||||
return r0;
|
||||
}
|
||||
|
||||
static uint16_t get_class_id(uint16_t bus, uint16_t device, uint16_t function) {
|
||||
static inline uint16_t get_class_id(uint16_t bus, uint16_t device,
|
||||
uint16_t function) {
|
||||
uint32_t r0 = pci_read_word(bus, device, function, 0xA);
|
||||
return (r0 & ~0x00FF) >> 8;
|
||||
}
|
||||
|
||||
static uint16_t get_sub_class_id(uint16_t bus, uint16_t device,
|
||||
uint16_t function) {
|
||||
static inline uint16_t get_sub_class_id(uint16_t bus, uint16_t device,
|
||||
uint16_t function) {
|
||||
uint32_t r0 = pci_read_word(bus, device, function, 0xA);
|
||||
return (r0 & ~0xFF00);
|
||||
}
|
||||
|
||||
static void scan( ) {
|
||||
static inline void scan( ) {
|
||||
uint64_t devices = 0;
|
||||
for (uint32_t bus = 0; bus < 256; bus++) {
|
||||
for (uint32_t slot = 0; slot < 32; slot++) {
|
||||
|
@ -8,7 +8,7 @@ typedef struct {
|
||||
vendor_t vendor_list[] = { { "Intel", 0x8086 },
|
||||
{ "AMD", 0x1002 },
|
||||
{ "AMD", 0x1002 } };
|
||||
|
||||
|
||||
module_info_t init(env_t *env) {
|
||||
init_env(env);
|
||||
return (module_info_t){ .name = (char *)"[PCI][DATA]",
|
||||
|
Loading…
Reference in New Issue
Block a user