コード例 #1
0
ファイル: tbfadt.c プロジェクト: mikess/illumos-gate
    char                    *Name;
    UINT8                   Address64;
    UINT8                   Address32;
    UINT8                   Length;
    UINT8                   DefaultLength;
    UINT8                   Type;

} ACPI_FADT_INFO;

#define ACPI_FADT_REQUIRED          1
#define ACPI_FADT_SEPARATE_LENGTH   2

static ACPI_FADT_INFO     FadtInfoTable[] =
{
    {   "Pm1aEventBlock",
        ACPI_FADT_OFFSET (XPm1aEventBlock),
        ACPI_FADT_OFFSET (Pm1aEventBlock),
        ACPI_FADT_OFFSET (Pm1EventLength),
        ACPI_PM1_REGISTER_WIDTH * 2,        /* Enable + Status register */
        ACPI_FADT_REQUIRED
    },

    {   "Pm1bEventBlock",
        ACPI_FADT_OFFSET (XPm1bEventBlock),
        ACPI_FADT_OFFSET (Pm1bEventBlock),
        ACPI_FADT_OFFSET (Pm1EventLength),
        ACPI_PM1_REGISTER_WIDTH * 2,        /* Enable + Status register */
        0
    },

    {   "Pm1aControlBlock",
コード例 #2
0
typedef struct acpi_fadt_info {
	char *name;
	u8 address64;
	u8 address32;
	u8 length;
	u8 default_length;
	u8 type;

} acpi_fadt_info;

#define ACPI_FADT_REQUIRED          1
#define ACPI_FADT_SEPARATE_LENGTH   2

static struct acpi_fadt_info fadt_info_table[] = {
	{"Pm1aEventBlock",
	 ACPI_FADT_OFFSET(xpm1a_event_block),
	 ACPI_FADT_OFFSET(pm1a_event_block),
	 ACPI_FADT_OFFSET(pm1_event_length),
	 ACPI_PM1_REGISTER_WIDTH * 2,	
	 ACPI_FADT_REQUIRED},

	{"Pm1bEventBlock",
	 ACPI_FADT_OFFSET(xpm1b_event_block),
	 ACPI_FADT_OFFSET(pm1b_event_block),
	 ACPI_FADT_OFFSET(pm1_event_length),
	 ACPI_PM1_REGISTER_WIDTH * 2,	
	 0},

	{"Pm1aControlBlock",
	 ACPI_FADT_OFFSET(xpm1a_control_block),
	 ACPI_FADT_OFFSET(pm1a_control_block),
コード例 #3
0
ファイル: utinit.c プロジェクト: andreiw/polaris
ACPI_STATUS
AcpiUtValidateFadt (
    void)
{

    /*
     * Verify Fixed ACPI Description Table fields,
     * but don't abort on any problems, just display error
     */
    if (AcpiGbl_FADT->Pm1EvtLen < 4)
    {
        AcpiUtFadtRegisterError ("PM1_EVT_LEN",
                        (UINT32) AcpiGbl_FADT->Pm1EvtLen,
                        ACPI_FADT_OFFSET (Pm1EvtLen));
    }

    if (!AcpiGbl_FADT->Pm1CntLen)
    {
        AcpiUtFadtRegisterError ("PM1_CNT_LEN", 0,
                        ACPI_FADT_OFFSET (Pm1CntLen));
    }

    if (!ACPI_VALID_ADDRESS (AcpiGbl_FADT->XPm1aEvtBlk.Address))
    {
        AcpiUtFadtRegisterError ("X_PM1a_EVT_BLK", 0,
                        ACPI_FADT_OFFSET (XPm1aEvtBlk.Address));
    }

    if (!ACPI_VALID_ADDRESS (AcpiGbl_FADT->XPm1aCntBlk.Address))
    {
        AcpiUtFadtRegisterError ("X_PM1a_CNT_BLK", 0,
                        ACPI_FADT_OFFSET (XPm1aCntBlk.Address));
    }

    if (!ACPI_VALID_ADDRESS (AcpiGbl_FADT->XPmTmrBlk.Address))
    {
        AcpiUtFadtRegisterError ("X_PM_TMR_BLK", 0,
                        ACPI_FADT_OFFSET (XPmTmrBlk.Address));
    }

    if ((ACPI_VALID_ADDRESS (AcpiGbl_FADT->XPm2CntBlk.Address) &&
        !AcpiGbl_FADT->Pm2CntLen))
    {
        AcpiUtFadtRegisterError ("PM2_CNT_LEN",
                        (UINT32) AcpiGbl_FADT->Pm2CntLen,
                        ACPI_FADT_OFFSET (Pm2CntLen));
    }

    if (AcpiGbl_FADT->PmTmLen < 4)
    {
        AcpiUtFadtRegisterError ("PM_TM_LEN",
                        (UINT32) AcpiGbl_FADT->PmTmLen,
                        ACPI_FADT_OFFSET (PmTmLen));
    }

    /* Length of GPE blocks must be a multiple of 2 */

    if (ACPI_VALID_ADDRESS (AcpiGbl_FADT->XGpe0Blk.Address) &&
        (AcpiGbl_FADT->Gpe0BlkLen & 1))
    {
        AcpiUtFadtRegisterError ("(x)GPE0_BLK_LEN",
                        (UINT32) AcpiGbl_FADT->Gpe0BlkLen,
                        ACPI_FADT_OFFSET (Gpe0BlkLen));
    }

    if (ACPI_VALID_ADDRESS (AcpiGbl_FADT->XGpe1Blk.Address) &&
        (AcpiGbl_FADT->Gpe1BlkLen & 1))
    {
        AcpiUtFadtRegisterError ("(x)GPE1_BLK_LEN",
                        (UINT32) AcpiGbl_FADT->Gpe1BlkLen,
                        ACPI_FADT_OFFSET (Gpe1BlkLen));
    }

    return (AE_OK);
}
コード例 #4
0
ファイル: utinit.c プロジェクト: Brainiarc7/ralink_sdk
acpi_status
acpi_ut_validate_fadt (
	void)
{

	/*
	 * Verify Fixed ACPI Description Table fields,
	 * but don't abort on any problems, just display error
	 */
	if (acpi_gbl_FADT->pm1_evt_len < 4) {
		acpi_ut_fadt_register_error ("PM1_EVT_LEN",
				  (u32) acpi_gbl_FADT->pm1_evt_len,
				  ACPI_FADT_OFFSET (pm1_evt_len));
	}

	if (!acpi_gbl_FADT->pm1_cnt_len) {
		acpi_ut_fadt_register_error ("PM1_CNT_LEN", 0,
				  ACPI_FADT_OFFSET (pm1_cnt_len));
	}

	if (!acpi_gbl_FADT->xpm1a_evt_blk.address) {
		acpi_ut_fadt_register_error ("X_PM1a_EVT_BLK", 0,
				  ACPI_FADT_OFFSET (xpm1a_evt_blk.address));
	}

	if (!acpi_gbl_FADT->xpm1a_cnt_blk.address) {
		acpi_ut_fadt_register_error ("X_PM1a_CNT_BLK", 0,
				  ACPI_FADT_OFFSET (xpm1a_cnt_blk.address));
	}

	if (!acpi_gbl_FADT->xpm_tmr_blk.address) {
		acpi_ut_fadt_register_error ("X_PM_TMR_BLK", 0,
				  ACPI_FADT_OFFSET (xpm_tmr_blk.address));
	}

	if ((acpi_gbl_FADT->xpm2_cnt_blk.address &&
		!acpi_gbl_FADT->pm2_cnt_len)) {
		acpi_ut_fadt_register_error ("PM2_CNT_LEN",
				  (u32) acpi_gbl_FADT->pm2_cnt_len,
				  ACPI_FADT_OFFSET (pm2_cnt_len));
	}

	if (acpi_gbl_FADT->pm_tm_len < 4) {
		acpi_ut_fadt_register_error ("PM_TM_LEN",
				  (u32) acpi_gbl_FADT->pm_tm_len,
				  ACPI_FADT_OFFSET (pm_tm_len));
	}

	/* Length of GPE blocks must be a multiple of 2 */

	if (acpi_gbl_FADT->xgpe0_blk.address &&
		(acpi_gbl_FADT->gpe0_blk_len & 1)) {
		acpi_ut_fadt_register_error ("(x)GPE0_BLK_LEN",
				  (u32) acpi_gbl_FADT->gpe0_blk_len,
				  ACPI_FADT_OFFSET (gpe0_blk_len));
	}

	if (acpi_gbl_FADT->xgpe1_blk.address &&
		(acpi_gbl_FADT->gpe1_blk_len & 1)) {
		acpi_ut_fadt_register_error ("(x)GPE1_BLK_LEN",
				  (u32) acpi_gbl_FADT->gpe1_blk_len,
				  ACPI_FADT_OFFSET (gpe1_blk_len));
	}

	return (AE_OK);
}
コード例 #5
0
ファイル: tbfadt.c プロジェクト: oza/FreeBSD-7.3-dyntick
typedef struct acpi_fadt_info
{
    char                    *Name;
    UINT8                   Target;
    UINT8                   Source;
    UINT8                   Length;
    UINT8                   Type;

} ACPI_FADT_INFO;

#define ACPI_FADT_REQUIRED          1
#define ACPI_FADT_SEPARATE_LENGTH   2

static ACPI_FADT_INFO     FadtInfoTable[] =
{
    {"Pm1aEventBlock",      ACPI_FADT_OFFSET (XPm1aEventBlock),
                            ACPI_FADT_OFFSET (Pm1aEventBlock),
                            ACPI_FADT_OFFSET (Pm1EventLength),      ACPI_FADT_REQUIRED},

    {"Pm1bEventBlock",      ACPI_FADT_OFFSET (XPm1bEventBlock),
                            ACPI_FADT_OFFSET (Pm1bEventBlock),
                            ACPI_FADT_OFFSET (Pm1EventLength),      0},

    {"Pm1aControlBlock",    ACPI_FADT_OFFSET (XPm1aControlBlock),
                            ACPI_FADT_OFFSET (Pm1aControlBlock),
                            ACPI_FADT_OFFSET (Pm1ControlLength),    ACPI_FADT_REQUIRED},

    {"Pm1bControlBlock",    ACPI_FADT_OFFSET (XPm1bControlBlock),
                            ACPI_FADT_OFFSET (Pm1bControlBlock),
                            ACPI_FADT_OFFSET (Pm1ControlLength),    0},
コード例 #6
0
ファイル: tbfadt.c プロジェクト: 0day-ci/xen
typedef struct acpi_fadt_info {
	char *name;
	u16 target;
	u16 source;
	u16 length;
	u8 type;

} acpi_fadt_info;

#define ACPI_FADT_OPTIONAL          0
#define ACPI_FADT_REQUIRED          1
#define ACPI_FADT_SEPARATE_LENGTH   2

static struct acpi_fadt_info __initdata fadt_info_table[] = {
	{"Pm1aEventBlock", ACPI_FADT_OFFSET(xpm1a_event_block),
	 ACPI_FADT_OFFSET(pm1a_event_block),
	 ACPI_FADT_OFFSET(pm1_event_length), ACPI_FADT_REQUIRED},

	{"Pm1bEventBlock", ACPI_FADT_OFFSET(xpm1b_event_block),
	 ACPI_FADT_OFFSET(pm1b_event_block),
	 ACPI_FADT_OFFSET(pm1_event_length), ACPI_FADT_OPTIONAL},

	{"Pm1aControlBlock", ACPI_FADT_OFFSET(xpm1a_control_block),
	 ACPI_FADT_OFFSET(pm1a_control_block),
	 ACPI_FADT_OFFSET(pm1_control_length), ACPI_FADT_REQUIRED},

	{"Pm1bControlBlock", ACPI_FADT_OFFSET(xpm1b_control_block),
	 ACPI_FADT_OFFSET(pm1b_control_block),
	 ACPI_FADT_OFFSET(pm1_control_length), ACPI_FADT_OPTIONAL},