/*
 * Copyright (c) 2026, Chloe M.
 * Provided under the BSD-3 clause.
 *
 * Description: Machine core block
 * Author:      Chloe M.
 */

#ifndef _MACHINE_MCB_H_
#define _MACHINE_MCB_H_ 1

#include <ptdef.h>
#include <machine/tss.h>

/*
 * The machine core block contains MD processor information
 *
 * @LapicBase:      Local APIC MMIO base
 * @HasX2Apic:      Has an x2APIC unit
 * @LapicTmrFreq:   Local APIC timer frequency
 * @Tss:            Task state segment
 */
typedef struct {
    VOID *LapicBase;
    UCHAR HasX2Apic : 1;
    USIZE LapicTmrFreq;
    TSS_ENTRY *Tss;
} MCB;

#endif  /* !_MACHINE_MCB_H_ */
