Как определить программно,какой в системе контроллер прерывания i8259A или же i82489 ?

Тема в разделе "WASM.WIN32", создана пользователем EvilsInterrupt, 9 апр 2006.

  1. EvilsInterrupt

    EvilsInterrupt Постигающий азы дзена

    Публикаций:
    0
    Регистрация:
    28 окт 2003
    Сообщения:
    2.428
    Адрес:
    Russia
    Вот ну никак непойму как это можно узнать?
     
  2. Pavia

    Pavia Well-Known Member

    Публикаций:
    0
    Регистрация:
    17 июн 2003
    Сообщения:
    2.409
    Адрес:
    Fryazino
    Взято у интел сам не проверял.

    #define INITIAL_APIC_ID_BITS 0xFF000000 // EBX[31:24] unique APIC ID

    // Returns the 8-bit unique Initial APIC ID for the processor this

    // code is actually running on. The default value returned is 0xFF if

    // Hyper-Threading Technology is not supported.

    unsigned char GetAPIC_ID (void)

    {

    unsigned int reg_ebx = 0;

    if (!HTSupported()) return (unsigned char) -1;

    __asm {

    mov eax, 1 // call cpuid with eax = 1

    cpuid

    mov reg_ebx, ebx // Has APIC ID info

    }

    return (unsigned char) ((reg_ebx & INITIAL_APIC_ID_BITS) >> 24);



    }
     
  3. Pavia

    Pavia Well-Known Member

    Публикаций:
    0
    Регистрация:
    17 июн 2003
    Сообщения:
    2.409
    Адрес:
    Fryazino
    ЕЩЕ

    mov eax, 1

    cpuid

    в edx БИТ 9 APIC—APIC on Chip