1*29492bb7SDavid van Moolenbroek /****************************************************************************** 2*29492bb7SDavid van Moolenbroek * 3*29492bb7SDavid van Moolenbroek * Name: acbuffer.h - Support for buffers returned by ACPI predefined names 4*29492bb7SDavid van Moolenbroek * 5*29492bb7SDavid van Moolenbroek *****************************************************************************/ 6*29492bb7SDavid van Moolenbroek 7*29492bb7SDavid van Moolenbroek /* 8*29492bb7SDavid van Moolenbroek * Copyright (C) 2000 - 2014, Intel Corp. 9*29492bb7SDavid van Moolenbroek * All rights reserved. 10*29492bb7SDavid van Moolenbroek * 11*29492bb7SDavid van Moolenbroek * Redistribution and use in source and binary forms, with or without 12*29492bb7SDavid van Moolenbroek * modification, are permitted provided that the following conditions 13*29492bb7SDavid van Moolenbroek * are met: 14*29492bb7SDavid van Moolenbroek * 1. Redistributions of source code must retain the above copyright 15*29492bb7SDavid van Moolenbroek * notice, this list of conditions, and the following disclaimer, 16*29492bb7SDavid van Moolenbroek * without modification. 17*29492bb7SDavid van Moolenbroek * 2. Redistributions in binary form must reproduce at minimum a disclaimer 18*29492bb7SDavid van Moolenbroek * substantially similar to the "NO WARRANTY" disclaimer below 19*29492bb7SDavid van Moolenbroek * ("Disclaimer") and any redistribution must be conditioned upon 20*29492bb7SDavid van Moolenbroek * including a substantially similar Disclaimer requirement for further 21*29492bb7SDavid van Moolenbroek * binary redistribution. 22*29492bb7SDavid van Moolenbroek * 3. Neither the names of the above-listed copyright holders nor the names 23*29492bb7SDavid van Moolenbroek * of any contributors may be used to endorse or promote products derived 24*29492bb7SDavid van Moolenbroek * from this software without specific prior written permission. 25*29492bb7SDavid van Moolenbroek * 26*29492bb7SDavid van Moolenbroek * Alternatively, this software may be distributed under the terms of the 27*29492bb7SDavid van Moolenbroek * GNU General Public License ("GPL") version 2 as published by the Free 28*29492bb7SDavid van Moolenbroek * Software Foundation. 29*29492bb7SDavid van Moolenbroek * 30*29492bb7SDavid van Moolenbroek * NO WARRANTY 31*29492bb7SDavid van Moolenbroek * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 32*29492bb7SDavid van Moolenbroek * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 33*29492bb7SDavid van Moolenbroek * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR 34*29492bb7SDavid van Moolenbroek * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 35*29492bb7SDavid van Moolenbroek * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 36*29492bb7SDavid van Moolenbroek * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 37*29492bb7SDavid van Moolenbroek * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 38*29492bb7SDavid van Moolenbroek * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 39*29492bb7SDavid van Moolenbroek * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 40*29492bb7SDavid van Moolenbroek * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 41*29492bb7SDavid van Moolenbroek * POSSIBILITY OF SUCH DAMAGES. 42*29492bb7SDavid van Moolenbroek */ 43*29492bb7SDavid van Moolenbroek 44*29492bb7SDavid van Moolenbroek #ifndef __ACBUFFER_H__ 45*29492bb7SDavid van Moolenbroek #define __ACBUFFER_H__ 46*29492bb7SDavid van Moolenbroek 47*29492bb7SDavid van Moolenbroek /* 48*29492bb7SDavid van Moolenbroek * Contains buffer structures for these predefined names: 49*29492bb7SDavid van Moolenbroek * _FDE, _GRT, _GTM, _PLD, _SRT 50*29492bb7SDavid van Moolenbroek */ 51*29492bb7SDavid van Moolenbroek 52*29492bb7SDavid van Moolenbroek /* 53*29492bb7SDavid van Moolenbroek * Note: C bitfields are not used for this reason: 54*29492bb7SDavid van Moolenbroek * 55*29492bb7SDavid van Moolenbroek * "Bitfields are great and easy to read, but unfortunately the C language 56*29492bb7SDavid van Moolenbroek * does not specify the layout of bitfields in memory, which means they are 57*29492bb7SDavid van Moolenbroek * essentially useless for dealing with packed data in on-disk formats or 58*29492bb7SDavid van Moolenbroek * binary wire protocols." (Or ACPI tables and buffers.) "If you ask me, 59*29492bb7SDavid van Moolenbroek * this decision was a design error in C. Ritchie could have picked an order 60*29492bb7SDavid van Moolenbroek * and stuck with it." Norman Ramsey. 61*29492bb7SDavid van Moolenbroek * See http://stackoverflow.com/a/1053662/41661 62*29492bb7SDavid van Moolenbroek */ 63*29492bb7SDavid van Moolenbroek 64*29492bb7SDavid van Moolenbroek 65*29492bb7SDavid van Moolenbroek /* _FDE return value */ 66*29492bb7SDavid van Moolenbroek 67*29492bb7SDavid van Moolenbroek typedef struct acpi_fde_info 68*29492bb7SDavid van Moolenbroek { 69*29492bb7SDavid van Moolenbroek UINT32 Floppy0; 70*29492bb7SDavid van Moolenbroek UINT32 Floppy1; 71*29492bb7SDavid van Moolenbroek UINT32 Floppy2; 72*29492bb7SDavid van Moolenbroek UINT32 Floppy3; 73*29492bb7SDavid van Moolenbroek UINT32 Tape; 74*29492bb7SDavid van Moolenbroek 75*29492bb7SDavid van Moolenbroek } ACPI_FDE_INFO; 76*29492bb7SDavid van Moolenbroek 77*29492bb7SDavid van Moolenbroek /* 78*29492bb7SDavid van Moolenbroek * _GRT return value 79*29492bb7SDavid van Moolenbroek * _SRT input value 80*29492bb7SDavid van Moolenbroek */ 81*29492bb7SDavid van Moolenbroek typedef struct acpi_grt_info 82*29492bb7SDavid van Moolenbroek { 83*29492bb7SDavid van Moolenbroek UINT16 Year; 84*29492bb7SDavid van Moolenbroek UINT8 Month; 85*29492bb7SDavid van Moolenbroek UINT8 Day; 86*29492bb7SDavid van Moolenbroek UINT8 Hour; 87*29492bb7SDavid van Moolenbroek UINT8 Minute; 88*29492bb7SDavid van Moolenbroek UINT8 Second; 89*29492bb7SDavid van Moolenbroek UINT8 Valid; 90*29492bb7SDavid van Moolenbroek UINT16 Milliseconds; 91*29492bb7SDavid van Moolenbroek UINT16 Timezone; 92*29492bb7SDavid van Moolenbroek UINT8 Daylight; 93*29492bb7SDavid van Moolenbroek UINT8 Reserved[3]; 94*29492bb7SDavid van Moolenbroek 95*29492bb7SDavid van Moolenbroek } ACPI_GRT_INFO; 96*29492bb7SDavid van Moolenbroek 97*29492bb7SDavid van Moolenbroek /* _GTM return value */ 98*29492bb7SDavid van Moolenbroek 99*29492bb7SDavid van Moolenbroek typedef struct acpi_gtm_info 100*29492bb7SDavid van Moolenbroek { 101*29492bb7SDavid van Moolenbroek UINT32 PioSpeed0; 102*29492bb7SDavid van Moolenbroek UINT32 DmaSpeed0; 103*29492bb7SDavid van Moolenbroek UINT32 PioSpeed1; 104*29492bb7SDavid van Moolenbroek UINT32 DmaSpeed1; 105*29492bb7SDavid van Moolenbroek UINT32 Flags; 106*29492bb7SDavid van Moolenbroek 107*29492bb7SDavid van Moolenbroek } ACPI_GTM_INFO; 108*29492bb7SDavid van Moolenbroek 109*29492bb7SDavid van Moolenbroek /* 110*29492bb7SDavid van Moolenbroek * Formatted _PLD return value. The minimum size is a package containing 111*29492bb7SDavid van Moolenbroek * one buffer. 112*29492bb7SDavid van Moolenbroek * Revision 1: Buffer is 16 bytes (128 bits) 113*29492bb7SDavid van Moolenbroek * Revision 2: Buffer is 20 bytes (160 bits) 114*29492bb7SDavid van Moolenbroek * 115*29492bb7SDavid van Moolenbroek * Note: This structure is returned from the AcpiDecodePldBuffer 116*29492bb7SDavid van Moolenbroek * interface. 117*29492bb7SDavid van Moolenbroek */ 118*29492bb7SDavid van Moolenbroek typedef struct acpi_pld_info 119*29492bb7SDavid van Moolenbroek { 120*29492bb7SDavid van Moolenbroek UINT8 Revision; 121*29492bb7SDavid van Moolenbroek UINT8 IgnoreColor; 122*29492bb7SDavid van Moolenbroek UINT8 Red; 123*29492bb7SDavid van Moolenbroek UINT8 Green; 124*29492bb7SDavid van Moolenbroek UINT8 Blue; 125*29492bb7SDavid van Moolenbroek UINT16 Width; 126*29492bb7SDavid van Moolenbroek UINT16 Height; 127*29492bb7SDavid van Moolenbroek UINT8 UserVisible; 128*29492bb7SDavid van Moolenbroek UINT8 Dock; 129*29492bb7SDavid van Moolenbroek UINT8 Lid; 130*29492bb7SDavid van Moolenbroek UINT8 Panel; 131*29492bb7SDavid van Moolenbroek UINT8 VerticalPosition; 132*29492bb7SDavid van Moolenbroek UINT8 HorizontalPosition; 133*29492bb7SDavid van Moolenbroek UINT8 Shape; 134*29492bb7SDavid van Moolenbroek UINT8 GroupOrientation; 135*29492bb7SDavid van Moolenbroek UINT8 GroupToken; 136*29492bb7SDavid van Moolenbroek UINT8 GroupPosition; 137*29492bb7SDavid van Moolenbroek UINT8 Bay; 138*29492bb7SDavid van Moolenbroek UINT8 Ejectable; 139*29492bb7SDavid van Moolenbroek UINT8 OspmEjectRequired; 140*29492bb7SDavid van Moolenbroek UINT8 CabinetNumber; 141*29492bb7SDavid van Moolenbroek UINT8 CardCageNumber; 142*29492bb7SDavid van Moolenbroek UINT8 Reference; 143*29492bb7SDavid van Moolenbroek UINT8 Rotation; 144*29492bb7SDavid van Moolenbroek UINT8 Order; 145*29492bb7SDavid van Moolenbroek UINT8 Reserved; 146*29492bb7SDavid van Moolenbroek UINT16 VerticalOffset; 147*29492bb7SDavid van Moolenbroek UINT16 HorizontalOffset; 148*29492bb7SDavid van Moolenbroek 149*29492bb7SDavid van Moolenbroek } ACPI_PLD_INFO; 150*29492bb7SDavid van Moolenbroek 151*29492bb7SDavid van Moolenbroek 152*29492bb7SDavid van Moolenbroek /* 153*29492bb7SDavid van Moolenbroek * Macros to: 154*29492bb7SDavid van Moolenbroek * 1) Convert a _PLD buffer to internal ACPI_PLD_INFO format - ACPI_PLD_GET* 155*29492bb7SDavid van Moolenbroek * (Used by AcpiDecodePldBuffer) 156*29492bb7SDavid van Moolenbroek * 2) Construct a _PLD buffer - ACPI_PLD_SET* 157*29492bb7SDavid van Moolenbroek * (Intended for BIOS use only) 158*29492bb7SDavid van Moolenbroek */ 159*29492bb7SDavid van Moolenbroek #define ACPI_PLD_REV1_BUFFER_SIZE 16 /* For Revision 1 of the buffer (From ACPI spec) */ 160*29492bb7SDavid van Moolenbroek #define ACPI_PLD_BUFFER_SIZE 20 /* For Revision 2 of the buffer (From ACPI spec) */ 161*29492bb7SDavid van Moolenbroek 162*29492bb7SDavid van Moolenbroek /* First 32-bit dword, bits 0:32 */ 163*29492bb7SDavid van Moolenbroek 164*29492bb7SDavid van Moolenbroek #define ACPI_PLD_GET_REVISION(dword) ACPI_GET_BITS (dword, 0, ACPI_7BIT_MASK) 165*29492bb7SDavid van Moolenbroek #define ACPI_PLD_SET_REVISION(dword,value) ACPI_SET_BITS (dword, 0, ACPI_7BIT_MASK, value) /* Offset 0, Len 7 */ 166*29492bb7SDavid van Moolenbroek 167*29492bb7SDavid van Moolenbroek #define ACPI_PLD_GET_IGNORE_COLOR(dword) ACPI_GET_BITS (dword, 7, ACPI_1BIT_MASK) 168*29492bb7SDavid van Moolenbroek #define ACPI_PLD_SET_IGNORE_COLOR(dword,value) ACPI_SET_BITS (dword, 7, ACPI_1BIT_MASK, value) /* Offset 7, Len 1 */ 169*29492bb7SDavid van Moolenbroek 170*29492bb7SDavid van Moolenbroek #define ACPI_PLD_GET_RED(dword) ACPI_GET_BITS (dword, 8, ACPI_8BIT_MASK) 171*29492bb7SDavid van Moolenbroek #define ACPI_PLD_SET_RED(dword,value) ACPI_SET_BITS (dword, 8, ACPI_8BIT_MASK, value) /* Offset 8, Len 8 */ 172*29492bb7SDavid van Moolenbroek 173*29492bb7SDavid van Moolenbroek #define ACPI_PLD_GET_GREEN(dword) ACPI_GET_BITS (dword, 16, ACPI_8BIT_MASK) 174*29492bb7SDavid van Moolenbroek #define ACPI_PLD_SET_GREEN(dword,value) ACPI_SET_BITS (dword, 16, ACPI_8BIT_MASK, value) /* Offset 16, Len 8 */ 175*29492bb7SDavid van Moolenbroek 176*29492bb7SDavid van Moolenbroek #define ACPI_PLD_GET_BLUE(dword) ACPI_GET_BITS (dword, 24, ACPI_8BIT_MASK) 177*29492bb7SDavid van Moolenbroek #define ACPI_PLD_SET_BLUE(dword,value) ACPI_SET_BITS (dword, 24, ACPI_8BIT_MASK, value) /* Offset 24, Len 8 */ 178*29492bb7SDavid van Moolenbroek 179*29492bb7SDavid van Moolenbroek /* Second 32-bit dword, bits 33:63 */ 180*29492bb7SDavid van Moolenbroek 181*29492bb7SDavid van Moolenbroek #define ACPI_PLD_GET_WIDTH(dword) ACPI_GET_BITS (dword, 0, ACPI_16BIT_MASK) 182*29492bb7SDavid van Moolenbroek #define ACPI_PLD_SET_WIDTH(dword,value) ACPI_SET_BITS (dword, 0, ACPI_16BIT_MASK, value) /* Offset 32+0=32, Len 16 */ 183*29492bb7SDavid van Moolenbroek 184*29492bb7SDavid van Moolenbroek #define ACPI_PLD_GET_HEIGHT(dword) ACPI_GET_BITS (dword, 16, ACPI_16BIT_MASK) 185*29492bb7SDavid van Moolenbroek #define ACPI_PLD_SET_HEIGHT(dword,value) ACPI_SET_BITS (dword, 16, ACPI_16BIT_MASK, value) /* Offset 32+16=48, Len 16 */ 186*29492bb7SDavid van Moolenbroek 187*29492bb7SDavid van Moolenbroek /* Third 32-bit dword, bits 64:95 */ 188*29492bb7SDavid van Moolenbroek 189*29492bb7SDavid van Moolenbroek #define ACPI_PLD_GET_USER_VISIBLE(dword) ACPI_GET_BITS (dword, 0, ACPI_1BIT_MASK) 190*29492bb7SDavid van Moolenbroek #define ACPI_PLD_SET_USER_VISIBLE(dword,value) ACPI_SET_BITS (dword, 0, ACPI_1BIT_MASK, value) /* Offset 64+0=64, Len 1 */ 191*29492bb7SDavid van Moolenbroek 192*29492bb7SDavid van Moolenbroek #define ACPI_PLD_GET_DOCK(dword) ACPI_GET_BITS (dword, 1, ACPI_1BIT_MASK) 193*29492bb7SDavid van Moolenbroek #define ACPI_PLD_SET_DOCK(dword,value) ACPI_SET_BITS (dword, 1, ACPI_1BIT_MASK, value) /* Offset 64+1=65, Len 1 */ 194*29492bb7SDavid van Moolenbroek 195*29492bb7SDavid van Moolenbroek #define ACPI_PLD_GET_LID(dword) ACPI_GET_BITS (dword, 2, ACPI_1BIT_MASK) 196*29492bb7SDavid van Moolenbroek #define ACPI_PLD_SET_LID(dword,value) ACPI_SET_BITS (dword, 2, ACPI_1BIT_MASK, value) /* Offset 64+2=66, Len 1 */ 197*29492bb7SDavid van Moolenbroek 198*29492bb7SDavid van Moolenbroek #define ACPI_PLD_GET_PANEL(dword) ACPI_GET_BITS (dword, 3, ACPI_3BIT_MASK) 199*29492bb7SDavid van Moolenbroek #define ACPI_PLD_SET_PANEL(dword,value) ACPI_SET_BITS (dword, 3, ACPI_3BIT_MASK, value) /* Offset 64+3=67, Len 3 */ 200*29492bb7SDavid van Moolenbroek 201*29492bb7SDavid van Moolenbroek #define ACPI_PLD_GET_VERTICAL(dword) ACPI_GET_BITS (dword, 6, ACPI_2BIT_MASK) 202*29492bb7SDavid van Moolenbroek #define ACPI_PLD_SET_VERTICAL(dword,value) ACPI_SET_BITS (dword, 6, ACPI_2BIT_MASK, value) /* Offset 64+6=70, Len 2 */ 203*29492bb7SDavid van Moolenbroek 204*29492bb7SDavid van Moolenbroek #define ACPI_PLD_GET_HORIZONTAL(dword) ACPI_GET_BITS (dword, 8, ACPI_2BIT_MASK) 205*29492bb7SDavid van Moolenbroek #define ACPI_PLD_SET_HORIZONTAL(dword,value) ACPI_SET_BITS (dword, 8, ACPI_2BIT_MASK, value) /* Offset 64+8=72, Len 2 */ 206*29492bb7SDavid van Moolenbroek 207*29492bb7SDavid van Moolenbroek #define ACPI_PLD_GET_SHAPE(dword) ACPI_GET_BITS (dword, 10, ACPI_4BIT_MASK) 208*29492bb7SDavid van Moolenbroek #define ACPI_PLD_SET_SHAPE(dword,value) ACPI_SET_BITS (dword, 10, ACPI_4BIT_MASK, value) /* Offset 64+10=74, Len 4 */ 209*29492bb7SDavid van Moolenbroek 210*29492bb7SDavid van Moolenbroek #define ACPI_PLD_GET_ORIENTATION(dword) ACPI_GET_BITS (dword, 14, ACPI_1BIT_MASK) 211*29492bb7SDavid van Moolenbroek #define ACPI_PLD_SET_ORIENTATION(dword,value) ACPI_SET_BITS (dword, 14, ACPI_1BIT_MASK, value) /* Offset 64+14=78, Len 1 */ 212*29492bb7SDavid van Moolenbroek 213*29492bb7SDavid van Moolenbroek #define ACPI_PLD_GET_TOKEN(dword) ACPI_GET_BITS (dword, 15, ACPI_8BIT_MASK) 214*29492bb7SDavid van Moolenbroek #define ACPI_PLD_SET_TOKEN(dword,value) ACPI_SET_BITS (dword, 15, ACPI_8BIT_MASK, value) /* Offset 64+15=79, Len 8 */ 215*29492bb7SDavid van Moolenbroek 216*29492bb7SDavid van Moolenbroek #define ACPI_PLD_GET_POSITION(dword) ACPI_GET_BITS (dword, 23, ACPI_8BIT_MASK) 217*29492bb7SDavid van Moolenbroek #define ACPI_PLD_SET_POSITION(dword,value) ACPI_SET_BITS (dword, 23, ACPI_8BIT_MASK, value) /* Offset 64+23=87, Len 8 */ 218*29492bb7SDavid van Moolenbroek 219*29492bb7SDavid van Moolenbroek #define ACPI_PLD_GET_BAY(dword) ACPI_GET_BITS (dword, 31, ACPI_1BIT_MASK) 220*29492bb7SDavid van Moolenbroek #define ACPI_PLD_SET_BAY(dword,value) ACPI_SET_BITS (dword, 31, ACPI_1BIT_MASK, value) /* Offset 64+31=95, Len 1 */ 221*29492bb7SDavid van Moolenbroek 222*29492bb7SDavid van Moolenbroek /* Fourth 32-bit dword, bits 96:127 */ 223*29492bb7SDavid van Moolenbroek 224*29492bb7SDavid van Moolenbroek #define ACPI_PLD_GET_EJECTABLE(dword) ACPI_GET_BITS (dword, 0, ACPI_1BIT_MASK) 225*29492bb7SDavid van Moolenbroek #define ACPI_PLD_SET_EJECTABLE(dword,value) ACPI_SET_BITS (dword, 0, ACPI_1BIT_MASK, value) /* Offset 96+0=96, Len 1 */ 226*29492bb7SDavid van Moolenbroek 227*29492bb7SDavid van Moolenbroek #define ACPI_PLD_GET_OSPM_EJECT(dword) ACPI_GET_BITS (dword, 1, ACPI_1BIT_MASK) 228*29492bb7SDavid van Moolenbroek #define ACPI_PLD_SET_OSPM_EJECT(dword,value) ACPI_SET_BITS (dword, 1, ACPI_1BIT_MASK, value) /* Offset 96+1=97, Len 1 */ 229*29492bb7SDavid van Moolenbroek 230*29492bb7SDavid van Moolenbroek #define ACPI_PLD_GET_CABINET(dword) ACPI_GET_BITS (dword, 2, ACPI_8BIT_MASK) 231*29492bb7SDavid van Moolenbroek #define ACPI_PLD_SET_CABINET(dword,value) ACPI_SET_BITS (dword, 2, ACPI_8BIT_MASK, value) /* Offset 96+2=98, Len 8 */ 232*29492bb7SDavid van Moolenbroek 233*29492bb7SDavid van Moolenbroek #define ACPI_PLD_GET_CARD_CAGE(dword) ACPI_GET_BITS (dword, 10, ACPI_8BIT_MASK) 234*29492bb7SDavid van Moolenbroek #define ACPI_PLD_SET_CARD_CAGE(dword,value) ACPI_SET_BITS (dword, 10, ACPI_8BIT_MASK, value) /* Offset 96+10=106, Len 8 */ 235*29492bb7SDavid van Moolenbroek 236*29492bb7SDavid van Moolenbroek #define ACPI_PLD_GET_REFERENCE(dword) ACPI_GET_BITS (dword, 18, ACPI_1BIT_MASK) 237*29492bb7SDavid van Moolenbroek #define ACPI_PLD_SET_REFERENCE(dword,value) ACPI_SET_BITS (dword, 18, ACPI_1BIT_MASK, value) /* Offset 96+18=114, Len 1 */ 238*29492bb7SDavid van Moolenbroek 239*29492bb7SDavid van Moolenbroek #define ACPI_PLD_GET_ROTATION(dword) ACPI_GET_BITS (dword, 19, ACPI_4BIT_MASK) 240*29492bb7SDavid van Moolenbroek #define ACPI_PLD_SET_ROTATION(dword,value) ACPI_SET_BITS (dword, 19, ACPI_4BIT_MASK, value) /* Offset 96+19=115, Len 4 */ 241*29492bb7SDavid van Moolenbroek 242*29492bb7SDavid van Moolenbroek #define ACPI_PLD_GET_ORDER(dword) ACPI_GET_BITS (dword, 23, ACPI_5BIT_MASK) 243*29492bb7SDavid van Moolenbroek #define ACPI_PLD_SET_ORDER(dword,value) ACPI_SET_BITS (dword, 23, ACPI_5BIT_MASK, value) /* Offset 96+23=119, Len 5 */ 244*29492bb7SDavid van Moolenbroek 245*29492bb7SDavid van Moolenbroek /* Fifth 32-bit dword, bits 128:159 (Revision 2 of _PLD only) */ 246*29492bb7SDavid van Moolenbroek 247*29492bb7SDavid van Moolenbroek #define ACPI_PLD_GET_VERT_OFFSET(dword) ACPI_GET_BITS (dword, 0, ACPI_16BIT_MASK) 248*29492bb7SDavid van Moolenbroek #define ACPI_PLD_SET_VERT_OFFSET(dword,value) ACPI_SET_BITS (dword, 0, ACPI_16BIT_MASK, value) /* Offset 128+0=128, Len 16 */ 249*29492bb7SDavid van Moolenbroek 250*29492bb7SDavid van Moolenbroek #define ACPI_PLD_GET_HORIZ_OFFSET(dword) ACPI_GET_BITS (dword, 16, ACPI_16BIT_MASK) 251*29492bb7SDavid van Moolenbroek #define ACPI_PLD_SET_HORIZ_OFFSET(dword,value) ACPI_SET_BITS (dword, 16, ACPI_16BIT_MASK, value) /* Offset 128+16=144, Len 16 */ 252*29492bb7SDavid van Moolenbroek 253*29492bb7SDavid van Moolenbroek 254*29492bb7SDavid van Moolenbroek #endif /* ACBUFFER_H */ 255