名称
get_apic_id - BSP の APIC ID を取得する
書式
int
get_apic_id(
uint8_t * mmio_va,
uint32_t * apic_id);
引数
- mmio_va
- APIC ID を取得するカードの MMIO の仮想アドレス
- apic_id
- 取得した APIC ID を格納する領域へのポインタ
説明
引数 mmio_va で指定されたカードの BSP の APIC ID を取得する。
取得した APIC ID は引数 apic_id が示す領域に格納する。
実装には、どのプロセサの APIC ID を取得するのか明示されていないが、
カード指定のみでどれかと問われれば BSP しかないだろう。
戻り値
処理に成功した場合、引数 apic_id が示す領域に APIC ID を格納して、0 を返す。
そうでない場合、0 以外の値を返す。
とはいうものの、失敗するケースはない。
参照
実装
290 /*
291 DESCRIPTION:: gets APIC ID from scratch register 2
292 PARAMETERS::
293 [in]void *mmio_va - virtual address to access MMIO registers
294 [out]uint32_t *apic_id - apic id
295 RETURN_VALUE:: 0 if successful, non-zero if failure
296 */
297 int
298 get_apic_id(uint8_t *mmio_va, uint32_t *apic_id)
299 {
300 int status = 0;
301 uint32_t scratch2 = 0;
302
303 scratch2 = SBOX_READ(mmio_va, SBOX_SCRATCH2);
304 *apic_id = SCRATCH2_APIC_ID(scratch2);
305
306 return status;
307 }
最終更新:2012年11月18日 03:34