1 diff -up acpica-unix2-20140424/source/compiler/aslcodegen.c.debian-big_endian acpica-unix2-20140424/source/compiler/aslcodegen.c
2 --- acpica-unix2-20140424/source/compiler/aslcodegen.c.debian-big_endian 2014-04-24 11:48:59.000000000 -0400
3 +++ acpica-unix2-20140424/source/compiler/aslcodegen.c 2014-06-06 20:43:34.711825238 -0400
4 @@ -246,16 +246,12 @@ CgWriteAmlOpcode (
11 - UINT8 OpcodeBytes[2];
25 /* We expect some DEFAULT_ARGs, just ignore them */
27 @@ -278,51 +265,52 @@ CgWriteAmlOpcode (
29 /* Special opcodes for within a field definition */
31 - Aml.Opcode = AML_FIELD_OFFSET_OP;
32 + AmlOpcode = AML_FIELD_OFFSET_OP;
35 case AML_INT_ACCESSFIELD_OP:
37 - Aml.Opcode = AML_FIELD_ACCESS_OP;
38 + AmlOpcode = AML_FIELD_ACCESS_OP;
41 case AML_INT_CONNECTION_OP:
43 - Aml.Opcode = AML_FIELD_CONNECTION_OP;
44 + AmlOpcode = AML_FIELD_CONNECTION_OP;
49 - Aml.Opcode = Op->Asl.AmlOpcode;
50 + AmlOpcode = Op->Asl.AmlOpcode;
58 case AML_PACKAGE_LENGTH:
60 /* Value is the length to be encoded (Used in field definitions) */
62 - PkgLen.Len = (UINT32) Op->Asl.Value.Integer;
63 + PkgLen = (UINT32) Op->Asl.Value.Integer;
68 /* Check for two-byte opcode */
70 - if (Aml.Opcode > 0x00FF)
71 + if (AmlOpcode > 0x00FF)
73 /* Write the high byte first */
75 - CgLocalWriteAmlData (Op, &Aml.OpcodeBytes[1], 1);
76 + Byte = ACPI_HIBYTE(AmlOpcode);
77 + CgLocalWriteAmlData (Op, &Byte, 1);
80 - CgLocalWriteAmlData (Op, &Aml.OpcodeBytes[0], 1);
81 + Byte = ACPI_LOBYTE(AmlOpcode);
82 + CgLocalWriteAmlData (Op, &Byte, 1);
84 /* Subtreelength doesn't include length of package length bytes */
86 - PkgLen.Len = Op->Asl.AmlSubtreeLength + Op->Asl.AmlPkgLenBytes;
87 + PkgLen = Op->Asl.AmlSubtreeLength + Op->Asl.AmlPkgLenBytes;
91 @@ -333,8 +322,8 @@ CgWriteAmlOpcode (
92 if (Op->Asl.AmlPkgLenBytes == 1)
94 /* Simplest case -- no bytes to follow, just write the count */
96 - CgLocalWriteAmlData (Op, &PkgLen.LenBytes[0], 1);
97 + Byte = ACPI_LOBYTE(PkgLen);
98 + CgLocalWriteAmlData (Op, &Byte, 1);
100 else if (Op->Asl.AmlPkgLenBytes != 0)
102 @@ -344,7 +333,7 @@ CgWriteAmlOpcode (
104 PkgLenFirstByte = (UINT8)
105 (((UINT32) (Op->Asl.AmlPkgLenBytes - 1) << 6) |
106 - (PkgLen.LenBytes[0] & 0x0F));
109 CgLocalWriteAmlData (Op, &PkgLenFirstByte, 1);
111 @@ -352,37 +341,44 @@ CgWriteAmlOpcode (
112 * Shift the length over by the 4 bits we just stuffed
118 /* Now we can write the remaining bytes - either 1, 2, or 3 bytes */
120 - for (i = 0; i < (UINT32) (Op->Asl.AmlPkgLenBytes - 1); i++)
121 + Byte = ACPI_LOBYTE(PkgLen);
122 + CgLocalWriteAmlData (Op, &Byte, 1);
123 + if (Op->Asl.AmlPkgLenBytes >= 3)
125 + Byte = ACPI_HIBYTE(PkgLen);
126 + CgLocalWriteAmlData (Op, &Byte, 1);
128 + if (Op->Asl.AmlPkgLenBytes >= 4)
130 - CgLocalWriteAmlData (Op, &PkgLen.LenBytes[i], 1);
131 + Byte = ACPI_LOBYTE(ACPI_HIWORD(PkgLen));
132 + CgLocalWriteAmlData (Op, &Byte, 1);
137 - switch (Aml.Opcode)
142 - CgLocalWriteAmlData (Op, &Op->Asl.Value.Integer, 1);
143 + Byte = (UINT8) Op->Asl.Value.Integer;
144 + CgLocalWriteAmlData (Op, &Byte, 1);
149 - CgLocalWriteAmlData (Op, &Op->Asl.Value.Integer, 2);
150 + ACPI_MOVE_64_TO_16(&Word, &Op->Asl.Value.Integer);
151 + CgLocalWriteAmlData (Op, &Word, 2);
156 - CgLocalWriteAmlData (Op, &Op->Asl.Value.Integer, 4);
157 + ACPI_MOVE_64_TO_32(&DWord, &Op->Asl.Value.Integer);
158 + CgLocalWriteAmlData (Op, &DWord, 4);
163 - CgLocalWriteAmlData (Op, &Op->Asl.Value.Integer, 8);
164 + ACPI_MOVE_64_TO_64(&QWord, &Op->Asl.Value.Integer);
165 + CgLocalWriteAmlData (Op, &QWord, 8);
169 @@ -416,6 +412,7 @@ CgWriteTableHeader (
170 ACPI_PARSE_OBJECT *Op)
172 ACPI_PARSE_OBJECT *Child;
177 @@ -452,7 +449,7 @@ CgWriteTableHeader (
180 Child = Child->Asl.Next;
181 - TableHeader.OemRevision = (UINT32) Child->Asl.Value.Integer;
182 + ACPI_MOVE_64_TO_32(&TableHeader.OemRevision, &Child->Asl.Value.Integer);
186 @@ -460,11 +457,12 @@ CgWriteTableHeader (
188 /* Compiler version */
190 - TableHeader.AslCompilerRevision = ASL_REVISION;
191 + DWord = ASL_REVISION;
192 + ACPI_MOVE_32_TO_32(&TableHeader.AslCompilerRevision, &DWord);
194 /* Table length. Checksum zero for now, will rewrite later */
196 - TableHeader.Length = Gbl_TableLength;
197 + ACPI_MOVE_32_TO_32(&TableHeader.Length, &Gbl_TableLength);
198 TableHeader.Checksum = 0;
200 CgLocalWriteAmlData (Op, &TableHeader, sizeof (ACPI_TABLE_HEADER));
201 @@ -528,7 +526,10 @@ CgWriteNode (
202 ACPI_PARSE_OBJECT *Op)
204 ASL_RESOURCE_NODE *Rnode;
211 /* Always check for DEFAULT_ARG and other "Noop" nodes */
212 /* TBD: this may not be the best place for this check */
213 @@ -546,13 +547,24 @@ CgWriteNode (
214 switch (Op->Asl.AmlOpcode)
216 case AML_RAW_DATA_BYTE:
217 + Byte = (UINT8) Op->Asl.Value.Integer;
218 + CgLocalWriteAmlData (Op, &Byte, 1);
221 case AML_RAW_DATA_WORD:
222 - case AML_RAW_DATA_DWORD:
223 - case AML_RAW_DATA_QWORD:
224 + ACPI_MOVE_64_TO_16(&Word, &Op->Asl.Value.Integer);
225 + CgLocalWriteAmlData (Op, &Word, 2);
228 - CgLocalWriteAmlData (Op, &Op->Asl.Value.Integer, Op->Asl.AmlLength);
229 + case AML_RAW_DATA_DWORD:
230 + ACPI_MOVE_64_TO_32(&DWord, &Op->Asl.Value.Integer);
231 + CgLocalWriteAmlData (Op, &DWord, 4);
234 + case AML_RAW_DATA_QWORD:
235 + ACPI_MOVE_64_TO_64(&QWord, &Op->Asl.Value.Integer);
236 + CgLocalWriteAmlData (Op, &QWord, 8);
239 case AML_RAW_DATA_BUFFER:
241 diff -up acpica-unix2-20140424/source/compiler/aslopcodes.c.debian-big_endian acpica-unix2-20140424/source/compiler/aslopcodes.c
242 --- acpica-unix2-20140424/source/compiler/aslopcodes.c.debian-big_endian 2014-04-24 11:48:59.000000000 -0400
243 +++ acpica-unix2-20140424/source/compiler/aslopcodes.c 2014-06-06 20:43:34.711825238 -0400
244 @@ -531,6 +479,7 @@ OpcDoUnicode (
247 UINT16 *UnicodeString;
249 ACPI_PARSE_OBJECT *BufferLengthOp;
252 @@ -557,7 +505,8 @@ OpcDoUnicode (
254 for (i = 0; i < Count; i++)
256 - UnicodeString[i] = (UINT16) AsciiString[i];
257 + UChar = (UINT16) AsciiString[i];
258 + ACPI_MOVE_16_TO_16(&UnicodeString[i], &UChar);
262 diff -up acpica-unix2-20140424/source/compiler/aslrestype1.c.debian-big_endian acpica-unix2-20140424/source/compiler/aslrestype1.c
263 --- acpica-unix2-20140424/source/compiler/aslrestype1.c.debian-big_endian 2014-04-24 11:49:00.000000000 -0400
264 +++ acpica-unix2-20140424/source/compiler/aslrestype1.c 2014-06-06 20:43:34.711825238 -0400
265 @@ -143,6 +148,11 @@ RsDoMemory24Descriptor (
266 ACPI_PARSE_OBJECT *LengthOp = NULL;
267 ASL_RESOURCE_NODE *Rnode;
268 UINT32 CurrentByteOffset;
269 + UINT16 Minimum = 0;
270 + UINT16 Maximum = 0;
271 + UINT16 AddressLength = 0;
272 + UINT16 Alignment = 0;
273 + UINT16 ResourceLength;
277 @@ -152,7 +153,8 @@ RsDoMemory24Descriptor (
279 Descriptor = Rnode->Buffer;
280 Descriptor->Memory24.DescriptorType = ACPI_RESOURCE_NAME_MEMORY24;
281 - Descriptor->Memory24.ResourceLength = 9;
282 + ResourceLength = 9;
283 + ACPI_MOVE_16_TO_16(&Descriptor->Memory24.ResourceLength, &ResourceLength);
285 /* Process all child initialization nodes */
287 @@ -169,7 +169,7 @@ RsDoMemory24Descriptor (
289 case 1: /* Min Address */
291 - Descriptor->Memory24.Minimum = (UINT16) InitializerOp->Asl.Value.Integer;
292 + Minimum = (UINT16) InitializerOp->Asl.Value.Integer;
293 RsCreateWordField (InitializerOp, ACPI_RESTAG_MINADDR,
294 CurrentByteOffset + ASL_RESDESC_OFFSET (Memory24.Minimum));
295 MinOp = InitializerOp;
296 @@ -177,7 +177,7 @@ RsDoMemory24Descriptor (
298 case 2: /* Max Address */
300 - Descriptor->Memory24.Maximum = (UINT16) InitializerOp->Asl.Value.Integer;
301 + Maximum = (UINT16) InitializerOp->Asl.Value.Integer;
302 RsCreateWordField (InitializerOp, ACPI_RESTAG_MAXADDR,
303 CurrentByteOffset + ASL_RESDESC_OFFSET (Memory24.Maximum));
304 MaxOp = InitializerOp;
305 @@ -185,14 +185,14 @@ RsDoMemory24Descriptor (
307 case 3: /* Alignment */
309 - Descriptor->Memory24.Alignment = (UINT16) InitializerOp->Asl.Value.Integer;
310 + Alignment = (UINT16) InitializerOp->Asl.Value.Integer;
311 RsCreateWordField (InitializerOp, ACPI_RESTAG_ALIGNMENT,
312 CurrentByteOffset + ASL_RESDESC_OFFSET (Memory24.Alignment));
317 - Descriptor->Memory24.AddressLength = (UINT16) InitializerOp->Asl.Value.Integer;
318 + AddressLength = (UINT16) InitializerOp->Asl.Value.Integer;
319 RsCreateWordField (InitializerOp, ACPI_RESTAG_LENGTH,
320 CurrentByteOffset + ASL_RESDESC_OFFSET (Memory24.AddressLength));
321 LengthOp = InitializerOp;
322 @@ -215,12 +220,17 @@ RsDoMemory24Descriptor (
323 /* Validate the Min/Max/Len/Align values (Alignment==0 means 64K) */
325 RsSmallAddressCheck (ACPI_RESOURCE_NAME_MEMORY24,
326 - Descriptor->Memory24.Minimum,
327 - Descriptor->Memory24.Maximum,
328 - Descriptor->Memory24.AddressLength,
329 - Descriptor->Memory24.Alignment,
334 MinOp, MaxOp, LengthOp, NULL, Info->DescriptorTypeOp);
336 + ACPI_MOVE_16_TO_16(&Descriptor->Memory24.Minimum, &Minimum);
337 + ACPI_MOVE_16_TO_16(&Descriptor->Memory24.Maximum, &Maximum);
338 + ACPI_MOVE_16_TO_16(&Descriptor->Memory24.AddressLength, &AddressLength);
339 + ACPI_MOVE_16_TO_16(&Descriptor->Memory24.Alignment, &Alignment);
344 @@ -249,6 +254,11 @@ RsDoMemory32Descriptor (
345 ACPI_PARSE_OBJECT *AlignOp = NULL;
346 ASL_RESOURCE_NODE *Rnode;
347 UINT32 CurrentByteOffset;
348 + UINT32 Minimum = 0;
349 + UINT32 Maximum = 0;
350 + UINT32 AddressLength = 0;
351 + UINT32 Alignment = 0;
352 + UINT16 ResourceLength;
356 @@ -258,7 +259,8 @@ RsDoMemory32Descriptor (
358 Descriptor = Rnode->Buffer;
359 Descriptor->Memory32.DescriptorType = ACPI_RESOURCE_NAME_MEMORY32;
360 - Descriptor->Memory32.ResourceLength = 17;
361 + ResourceLength = 17;
362 + ACPI_MOVE_16_TO_16(&Descriptor->Memory32.ResourceLength, &ResourceLength);
364 /* Process all child initialization nodes */
366 @@ -275,7 +275,7 @@ RsDoMemory32Descriptor (
368 case 1: /* Min Address */
370 - Descriptor->Memory32.Minimum = (UINT32) InitializerOp->Asl.Value.Integer;
371 + Minimum = (UINT32) InitializerOp->Asl.Value.Integer;
372 RsCreateDwordField (InitializerOp, ACPI_RESTAG_MINADDR,
373 CurrentByteOffset + ASL_RESDESC_OFFSET (Memory32.Minimum));
374 MinOp = InitializerOp;
375 @@ -283,7 +283,7 @@ RsDoMemory32Descriptor (
377 case 2: /* Max Address */
379 - Descriptor->Memory32.Maximum = (UINT32) InitializerOp->Asl.Value.Integer;
380 + Maximum = (UINT32) InitializerOp->Asl.Value.Integer;
381 RsCreateDwordField (InitializerOp, ACPI_RESTAG_MAXADDR,
382 CurrentByteOffset + ASL_RESDESC_OFFSET (Memory32.Maximum));
383 MaxOp = InitializerOp;
384 @@ -291,7 +291,7 @@ RsDoMemory32Descriptor (
386 case 3: /* Alignment */
388 - Descriptor->Memory32.Alignment = (UINT32) InitializerOp->Asl.Value.Integer;
389 + Alignment = (UINT32) InitializerOp->Asl.Value.Integer;
390 RsCreateDwordField (InitializerOp, ACPI_RESTAG_ALIGNMENT,
391 CurrentByteOffset + ASL_RESDESC_OFFSET (Memory32.Alignment));
392 AlignOp = InitializerOp;
393 @@ -299,7 +299,7 @@ RsDoMemory32Descriptor (
397 - Descriptor->Memory32.AddressLength = (UINT32) InitializerOp->Asl.Value.Integer;
398 + AddressLength = (UINT32) InitializerOp->Asl.Value.Integer;
399 RsCreateDwordField (InitializerOp, ACPI_RESTAG_LENGTH,
400 CurrentByteOffset + ASL_RESDESC_OFFSET (Memory32.AddressLength));
401 LengthOp = InitializerOp;
402 @@ -322,12 +327,17 @@ RsDoMemory32Descriptor (
403 /* Validate the Min/Max/Len/Align values */
405 RsSmallAddressCheck (ACPI_RESOURCE_NAME_MEMORY32,
406 - Descriptor->Memory32.Minimum,
407 - Descriptor->Memory32.Maximum,
408 - Descriptor->Memory32.AddressLength,
409 - Descriptor->Memory32.Alignment,
414 MinOp, MaxOp, LengthOp, AlignOp, Info->DescriptorTypeOp);
416 + ACPI_MOVE_32_TO_32(&Descriptor->Memory32.Minimum, &Minimum);
417 + ACPI_MOVE_32_TO_32(&Descriptor->Memory32.Maximum, &Maximum);
418 + ACPI_MOVE_32_TO_32(&Descriptor->Memory32.AddressLength, &AddressLength);
419 + ACPI_MOVE_32_TO_32(&Descriptor->Memory32.Alignment, &Alignment);
424 @@ -352,6 +353,7 @@ RsDoMemory32FixedDescriptor (
425 ACPI_PARSE_OBJECT *InitializerOp;
426 ASL_RESOURCE_NODE *Rnode;
427 UINT32 CurrentByteOffset;
428 + UINT16 ResourceLength;
432 @@ -361,7 +362,8 @@ RsDoMemory32FixedDescriptor (
434 Descriptor = Rnode->Buffer;
435 Descriptor->FixedMemory32.DescriptorType = ACPI_RESOURCE_NAME_FIXED_MEMORY32;
436 - Descriptor->FixedMemory32.ResourceLength = 9;
437 + ResourceLength = 9;
438 + ACPI_MOVE_16_TO_16(&Descriptor->FixedMemory32.ResourceLength, &ResourceLength);
440 /* Process all child initialization nodes */
442 @@ -378,14 +380,16 @@ RsDoMemory32FixedDescriptor (
444 case 1: /* Address */
446 - Descriptor->FixedMemory32.Address = (UINT32) InitializerOp->Asl.Value.Integer;
447 + ACPI_MOVE_64_TO_32(&Descriptor->FixedMemory32.Address,
448 + &InitializerOp->Asl.Value.Integer);
449 RsCreateDwordField (InitializerOp, ACPI_RESTAG_BASEADDRESS,
450 CurrentByteOffset + ASL_RESDESC_OFFSET (FixedMemory32.Address));
455 - Descriptor->FixedMemory32.AddressLength = (UINT32) InitializerOp->Asl.Value.Integer;
456 + ACPI_MOVE_64_TO_32(&Descriptor->FixedMemory32.AddressLength,
457 + &InitializerOp->Asl.Value.Integer);
458 RsCreateDwordField (InitializerOp, ACPI_RESTAG_LENGTH,
459 CurrentByteOffset + ASL_RESDESC_OFFSET (FixedMemory32.AddressLength));
461 diff -up acpica-unix2-20140424/source/compiler/aslrestype1i.c.debian-big_endian acpica-unix2-20140424/source/compiler/aslrestype1i.c
462 --- acpica-unix2-20140424/source/compiler/aslrestype1i.c.debian-big_endian 2014-04-24 11:49:00.000000000 -0400
463 +++ acpica-unix2-20140424/source/compiler/aslrestype1i.c 2014-06-06 20:43:34.711825238 -0400
464 @@ -198,6 +200,8 @@ RsDoFixedDmaDescriptor (
465 ACPI_PARSE_OBJECT *InitializerOp;
466 ASL_RESOURCE_NODE *Rnode;
467 UINT32 CurrentByteOffset;
468 + UINT16 RequestLines = 0;
469 + UINT16 Channels = 0;
473 @@ -217,14 +217,14 @@ RsDoFixedDmaDescriptor (
475 case 0: /* DMA Request Lines [WORD] (_DMA) */
477 - Descriptor->FixedDma.RequestLines = (UINT16) InitializerOp->Asl.Value.Integer;
478 + RequestLines = (UINT16) InitializerOp->Asl.Value.Integer;
479 RsCreateWordField (InitializerOp, ACPI_RESTAG_DMA,
480 CurrentByteOffset + ASL_RESDESC_OFFSET (FixedDma.RequestLines));
483 case 1: /* DMA Channel [WORD] (_TYP) */
485 - Descriptor->FixedDma.Channels = (UINT16) InitializerOp->Asl.Value.Integer;
486 + Channels = (UINT16) InitializerOp->Asl.Value.Integer;
487 RsCreateWordField (InitializerOp, ACPI_RESTAG_DMATYPE,
488 CurrentByteOffset + ASL_RESDESC_OFFSET (FixedDma.Channels));
490 @@ -249,6 +252,9 @@ RsDoFixedDmaDescriptor (
491 InitializerOp = RsCompleteNodeAndGetNext (InitializerOp);
494 + ACPI_MOVE_16_TO_16(&Descriptor->FixedDma.RequestLines, &RequestLines);
495 + ACPI_MOVE_16_TO_16(&Descriptor->FixedDma.Channels, &Channels);
500 @@ -274,6 +275,7 @@ RsDoFixedIoDescriptor (
501 ACPI_PARSE_OBJECT *AddressOp = NULL;
502 ASL_RESOURCE_NODE *Rnode;
503 UINT32 CurrentByteOffset;
504 + UINT16 Address = 0;
508 @@ -293,8 +292,7 @@ RsDoFixedIoDescriptor (
510 case 0: /* Base Address */
512 - Descriptor->FixedIo.Address =
513 - (UINT16) InitializerOp->Asl.Value.Integer;
514 + Address = (UINT16) InitializerOp->Asl.Value.Integer;
515 RsCreateWordField (InitializerOp, ACPI_RESTAG_BASEADDRESS,
516 CurrentByteOffset + ASL_RESDESC_OFFSET (FixedIo.Address));
517 AddressOp = InitializerOp;
518 @@ -324,11 +326,13 @@ RsDoFixedIoDescriptor (
522 - if (Descriptor->FixedIo.Address > 0x03FF)
523 + if (Address > 0x03FF)
525 AslError (ASL_WARNING, ASL_MSG_ISA_ADDRESS, AddressOp, NULL);
528 + ACPI_MOVE_16_TO_16(&Descriptor->FixedIo.Address, &Address);
533 @@ -357,6 +359,8 @@ RsDoIoDescriptor (
534 ACPI_PARSE_OBJECT *AlignOp = NULL;
535 ASL_RESOURCE_NODE *Rnode;
536 UINT32 CurrentByteOffset;
537 + UINT16 Minimum = 0;
538 + UINT16 Maximum = 0;
542 @@ -383,8 +382,7 @@ RsDoIoDescriptor (
544 case 1: /* Min Address */
546 - Descriptor->Io.Minimum =
547 - (UINT16) InitializerOp->Asl.Value.Integer;
548 + Minimum = (UINT16) InitializerOp->Asl.Value.Integer;
549 RsCreateWordField (InitializerOp, ACPI_RESTAG_MINADDR,
550 CurrentByteOffset + ASL_RESDESC_OFFSET (Io.Minimum));
551 MinOp = InitializerOp;
552 @@ -392,8 +391,7 @@ RsDoIoDescriptor (
554 case 2: /* Max Address */
556 - Descriptor->Io.Maximum =
557 - (UINT16) InitializerOp->Asl.Value.Integer;
558 + Maximum = (UINT16) InitializerOp->Asl.Value.Integer;
559 RsCreateWordField (InitializerOp, ACPI_RESTAG_MAXADDR,
560 CurrentByteOffset + ASL_RESDESC_OFFSET (Io.Maximum));
561 MaxOp = InitializerOp;
562 @@ -434,12 +437,15 @@ RsDoIoDescriptor (
563 /* Validate the Min/Max/Len/Align values */
565 RsSmallAddressCheck (ACPI_RESOURCE_NAME_IO,
566 - Descriptor->Io.Minimum,
567 - Descriptor->Io.Maximum,
570 Descriptor->Io.AddressLength,
571 Descriptor->Io.Alignment,
572 MinOp, MaxOp, LengthOp, AlignOp, Info->DescriptorTypeOp);
574 + ACPI_MOVE_16_TO_16(&Descriptor->Io.Minimum, &Minimum);
575 + ACPI_MOVE_16_TO_16(&Descriptor->Io.Maximum, &Maximum);
580 @@ -559,9 +559,9 @@ RsDoIrqDescriptor (
581 InitializerOp = RsCompleteNodeAndGetNext (InitializerOp);
584 - /* Now we can set the channel mask */
585 + /* Now we can set the interrupt mask */
587 - Descriptor->Irq.IrqMask = IrqMask;
588 + ACPI_MOVE_16_TO_16(&Descriptor->Irq.IrqMask, &IrqMask);
592 @@ -660,6 +660,6 @@ RsDoIrqNoFlagsDescriptor (
594 /* Now we can set the interrupt mask */
596 - Descriptor->Irq.IrqMask = IrqMask;
597 + ACPI_MOVE_16_TO_16(&Descriptor->Irq.IrqMask, &IrqMask);
600 diff -up acpica-unix2-20140424/source/compiler/aslrestype2.c.debian-big_endian acpica-unix2-20140424/source/compiler/aslrestype2.c
601 --- acpica-unix2-20140424/source/compiler/aslrestype2.c.debian-big_endian 2014-04-24 11:49:00.000000000 -0400
602 +++ acpica-unix2-20140424/source/compiler/aslrestype2.c 2014-06-06 20:43:34.711825238 -0400
603 @@ -76,6 +77,7 @@ RsDoGeneralRegisterDescriptor (
604 ACPI_PARSE_OBJECT *InitializerOp;
605 ASL_RESOURCE_NODE *Rnode;
606 UINT32 CurrentByteOffset;
607 + UINT16 ResourceLength;
611 @@ -85,7 +87,9 @@ RsDoGeneralRegisterDescriptor (
613 Descriptor = Rnode->Buffer;
614 Descriptor->GenericReg.DescriptorType = ACPI_RESOURCE_NAME_GENERIC_REGISTER;
615 - Descriptor->GenericReg.ResourceLength = 12;
616 + ResourceLength = 12;
617 + ACPI_MOVE_16_TO_16(&Descriptor->GenericReg.ResourceLength,
620 /* Process all child initialization nodes */
622 @@ -116,7 +117,8 @@ RsDoGeneralRegisterDescriptor (
624 case 3: /* Register Address */
626 - Descriptor->GenericReg.Address = InitializerOp->Asl.Value.Integer;
627 + ACPI_MOVE_64_TO_64(&Descriptor->GenericReg.Address,
628 + &InitializerOp->Asl.Value.Integer);
629 RsCreateQwordField (InitializerOp, ACPI_RESTAG_ADDRESS,
630 CurrentByteOffset + ASL_RESDESC_OFFSET (GenericReg.Address));
632 @@ -171,6 +172,7 @@ RsDoInterruptDescriptor (
633 AML_RESOURCE *Rover = NULL;
634 ACPI_PARSE_OBJECT *InitializerOp;
635 ASL_RESOURCE_NODE *Rnode;
636 + UINT16 ResourceLength = 0;
637 UINT16 StringLength = 0;
638 UINT32 OptionIndex = 0;
639 UINT32 CurrentByteOffset;
640 @@ -219,7 +219,7 @@ RsDoInterruptDescriptor (
641 * Initial descriptor length -- may be enlarged if there are
642 * optional fields present
644 - Descriptor->ExtendedIrq.ResourceLength = 2; /* Flags and table length byte */
645 + ResourceLength = 2; /* Flags and table length byte */
646 Descriptor->ExtendedIrq.InterruptCount = 0;
648 Rover = ACPI_CAST_PTR (AML_RESOURCE,
649 @@ -327,10 +328,11 @@ RsDoInterruptDescriptor (
651 /* Save the integer and move pointer to the next one */
653 - Rover->DwordItem = (UINT32) InitializerOp->Asl.Value.Integer;
654 + ACPI_MOVE_64_TO_32(&Rover->DwordItem,
655 + &InitializerOp->Asl.Value.Integer);
656 Rover = ACPI_ADD_PTR (AML_RESOURCE, &(Rover->DwordItem), 4);
657 Descriptor->ExtendedIrq.InterruptCount++;
658 - Descriptor->ExtendedIrq.ResourceLength += 4;
659 + ResourceLength += 4;
661 /* Case 7: First interrupt number in list */
663 @@ -366,7 +366,7 @@ RsDoInterruptDescriptor (
665 Rover->ByteItem = ResSourceIndex;
666 Rover = ACPI_ADD_PTR (AML_RESOURCE, &(Rover->ByteItem), 1);
667 - Descriptor->ExtendedIrq.ResourceLength += 1;
668 + ResourceLength += 1;
671 /* Add optional ResSource string if present */
672 @@ -378,13 +379,14 @@ RsDoInterruptDescriptor (
673 Rover = ACPI_ADD_PTR (
674 AML_RESOURCE, &(Rover->ByteItem), StringLength);
676 - Descriptor->ExtendedIrq.ResourceLength = (UINT16)
677 - (Descriptor->ExtendedIrq.ResourceLength + StringLength);
678 + ResourceLength = (UINT16) (ResourceLength + StringLength);
681 Rnode->BufferLength = (ASL_RESDESC_OFFSET (ExtendedIrq.Interrupts[0]) -
682 ASL_RESDESC_OFFSET (ExtendedIrq.DescriptorType))
683 + OptionIndex + StringLength;
684 + ACPI_MOVE_16_TO_16(&Descriptor->ExtendedIrq.ResourceLength,
689 @@ -432,7 +432,7 @@ RsDoVendorLargeDescriptor (
691 Descriptor = Rnode->Buffer;
692 Descriptor->VendorLarge.DescriptorType = ACPI_RESOURCE_NAME_VENDOR_LARGE;
693 - Descriptor->VendorLarge.ResourceLength = (UINT16) i;
694 + ACPI_MOVE_32_TO_16(&Descriptor->VendorLarge.ResourceLength, &i);
696 /* Point to end-of-descriptor for vendor data */
698 diff -up acpica-unix2-20140424/source/compiler/aslrestype2d.c.debian-big_endian acpica-unix2-20140424/source/compiler/aslrestype2d.c
699 --- acpica-unix2-20140424/source/compiler/aslrestype2d.c.debian-big_endian 2014-04-24 11:49:00.000000000 -0400
700 +++ acpica-unix2-20140424/source/compiler/aslrestype2d.c 2014-06-06 20:43:34.721825238 -0400
701 @@ -79,7 +85,13 @@ RsDoDwordIoDescriptor (
702 ACPI_PARSE_OBJECT *GranOp = NULL;
703 ASL_RESOURCE_NODE *Rnode;
704 UINT16 StringLength = 0;
705 + UINT16 ResourceLength = 0;
706 UINT32 OptionIndex = 0;
707 + UINT32 Minimum = 0;
708 + UINT32 Maximum = 0;
709 + UINT32 AddressLength = 0;
710 + UINT32 Granularity = 0;
711 + UINT32 TranslationOffset = 0;
712 UINT8 *OptionalFields;
713 UINT32 CurrentByteOffset;
715 @@ -102,8 +101,7 @@ RsDoDwordIoDescriptor (
716 * optional fields present
718 OptionalFields = ((UINT8 *) Descriptor) + sizeof (AML_RESOURCE_ADDRESS32);
719 - Descriptor->Address32.ResourceLength = (UINT16)
720 - (sizeof (AML_RESOURCE_ADDRESS32) -
721 + ResourceLength = (UINT16) (sizeof (AML_RESOURCE_ADDRESS32) -
722 sizeof (AML_RESOURCE_LARGE_HEADER));
724 /* Process all child initialization nodes */
725 @@ -147,8 +146,7 @@ RsDoDwordIoDescriptor (
727 case 5: /* Address Granularity */
729 - Descriptor->Address32.Granularity =
730 - (UINT32) InitializerOp->Asl.Value.Integer;
731 + Granularity = (UINT32) InitializerOp->Asl.Value.Integer;
732 RsCreateDwordField (InitializerOp, ACPI_RESTAG_GRANULARITY,
733 CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.Granularity));
734 GranOp = InitializerOp;
735 @@ -156,8 +155,7 @@ RsDoDwordIoDescriptor (
737 case 6: /* Address Min */
739 - Descriptor->Address32.Minimum =
740 - (UINT32) InitializerOp->Asl.Value.Integer;
741 + Minimum = (UINT32) InitializerOp->Asl.Value.Integer;
742 RsCreateDwordField (InitializerOp, ACPI_RESTAG_MINADDR,
743 CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.Minimum));
744 MinOp = InitializerOp;
745 @@ -165,8 +164,7 @@ RsDoDwordIoDescriptor (
747 case 7: /* Address Max */
749 - Descriptor->Address32.Maximum =
750 - (UINT32) InitializerOp->Asl.Value.Integer;
751 + Maximum = (UINT32) InitializerOp->Asl.Value.Integer;
752 RsCreateDwordField (InitializerOp, ACPI_RESTAG_MAXADDR,
753 CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.Maximum));
754 MaxOp = InitializerOp;
755 @@ -174,16 +172,14 @@ RsDoDwordIoDescriptor (
757 case 8: /* Translation Offset */
759 - Descriptor->Address32.TranslationOffset =
760 - (UINT32) InitializerOp->Asl.Value.Integer;
761 + TranslationOffset = (UINT32) InitializerOp->Asl.Value.Integer;
762 RsCreateDwordField (InitializerOp, ACPI_RESTAG_TRANSLATION,
763 CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.TranslationOffset));
766 case 9: /* Address Length */
768 - Descriptor->Address32.AddressLength =
769 - (UINT32) InitializerOp->Asl.Value.Integer;
770 + AddressLength = (UINT32) InitializerOp->Asl.Value.Integer;
771 RsCreateDwordField (InitializerOp, ACPI_RESTAG_LENGTH,
772 CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.AddressLength));
773 LengthOp = InitializerOp;
774 @@ -197,7 +197,7 @@ RsDoDwordIoDescriptor (
776 OptionalFields[0] = (UINT8) InitializerOp->Asl.Value.Integer;
778 - Descriptor->Address32.ResourceLength++;
780 ResSourceIndex = TRUE;
783 @@ -211,8 +210,7 @@ RsDoDwordIoDescriptor (
785 /* Found a valid ResourceSource */
787 - Descriptor->Address32.ResourceLength = (UINT16)
788 - (Descriptor->Address32.ResourceLength + StringLength);
789 + ResourceLength = (UINT16) (ResourceLength + StringLength);
792 &OptionalFields[OptionIndex],
793 @@ -272,13 +279,20 @@ RsDoDwordIoDescriptor (
794 /* Validate the Min/Max/Len/Gran values */
796 RsLargeAddressCheck (
797 - (UINT64) Descriptor->Address32.Minimum,
798 - (UINT64) Descriptor->Address32.Maximum,
799 - (UINT64) Descriptor->Address32.AddressLength,
800 - (UINT64) Descriptor->Address32.Granularity,
805 Descriptor->Address32.Flags,
806 MinOp, MaxOp, LengthOp, GranOp, Info->DescriptorTypeOp);
808 + ACPI_MOVE_16_TO_16(&Descriptor->Address32.ResourceLength, &ResourceLength);
809 + ACPI_MOVE_32_TO_32(&Descriptor->Address32.Minimum, &Minimum);
810 + ACPI_MOVE_32_TO_32(&Descriptor->Address32.Maximum, &Maximum);
811 + ACPI_MOVE_32_TO_32(&Descriptor->Address32.AddressLength, &AddressLength);
812 + ACPI_MOVE_32_TO_32(&Descriptor->Address32.Granularity, &Granularity);
813 + ACPI_MOVE_32_TO_32(&Descriptor->Address32.TranslationOffset, &TranslationOffset);
815 Rnode->BufferLength = sizeof (AML_RESOURCE_ADDRESS32) +
816 OptionIndex + StringLength;
818 @@ -310,7 +316,13 @@ RsDoDwordMemoryDescriptor (
819 ASL_RESOURCE_NODE *Rnode;
820 UINT8 *OptionalFields;
821 UINT16 StringLength = 0;
822 + UINT16 ResourceLength = 0;
823 UINT32 OptionIndex = 0;
824 + UINT32 Minimum = 0;
825 + UINT32 Maximum = 0;
826 + UINT32 AddressLength = 0;
827 + UINT32 Granularity = 0;
828 + UINT32 TranslationOffset = 0;
829 UINT32 CurrentByteOffset;
831 BOOLEAN ResSourceIndex = FALSE;
832 @@ -332,11 +330,9 @@ RsDoDwordMemoryDescriptor (
833 * optional fields present
835 OptionalFields = ((UINT8 *) Descriptor) + sizeof (AML_RESOURCE_ADDRESS32);
836 - Descriptor->Address32.ResourceLength = (UINT16)
837 - (sizeof (AML_RESOURCE_ADDRESS32) -
838 + ResourceLength = (UINT16) (sizeof (AML_RESOURCE_ADDRESS32) -
839 sizeof (AML_RESOURCE_LARGE_HEADER));
842 /* Process all child initialization nodes */
844 for (i = 0; InitializerOp; i++)
845 @@ -385,8 +384,7 @@ RsDoDwordMemoryDescriptor (
847 case 6: /* Address Granularity */
849 - Descriptor->Address32.Granularity =
850 - (UINT32) InitializerOp->Asl.Value.Integer;
851 + Granularity = (UINT32) InitializerOp->Asl.Value.Integer;
852 RsCreateDwordField (InitializerOp, ACPI_RESTAG_GRANULARITY,
853 CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.Granularity));
854 GranOp = InitializerOp;
855 @@ -394,8 +3926,7 @@ RsDoDwordMemoryDescriptor (
857 case 7: /* Min Address */
859 - Descriptor->Address32.Minimum =
860 - (UINT32) InitializerOp->Asl.Value.Integer;
861 + Minimum = (UINT32) InitializerOp->Asl.Value.Integer;
862 RsCreateDwordField (InitializerOp, ACPI_RESTAG_MINADDR,
863 CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.Minimum));
864 MinOp = InitializerOp;
865 @@ -403,8 +402,7 @@ RsDoDwordMemoryDescriptor (
867 case 8: /* Max Address */
869 - Descriptor->Address32.Maximum =
870 - (UINT32) InitializerOp->Asl.Value.Integer;
871 + Maximum = (UINT32) InitializerOp->Asl.Value.Integer;
872 RsCreateDwordField (InitializerOp, ACPI_RESTAG_MAXADDR,
873 CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.Maximum));
874 MaxOp = InitializerOp;
875 @@ -412,16 +410,14 @@ RsDoDwordMemoryDescriptor (
877 case 9: /* Translation Offset */
879 - Descriptor->Address32.TranslationOffset =
880 - (UINT32) InitializerOp->Asl.Value.Integer;
881 + TranslationOffset = (UINT32) InitializerOp->Asl.Value.Integer;
882 RsCreateDwordField (InitializerOp, ACPI_RESTAG_TRANSLATION,
883 CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.TranslationOffset));
886 case 10: /* Address Length */
888 - Descriptor->Address32.AddressLength =
889 - (UINT32) InitializerOp->Asl.Value.Integer;
890 + AddressLength = (UINT32) InitializerOp->Asl.Value.Integer;
891 RsCreateDwordField (InitializerOp, ACPI_RESTAG_LENGTH,
892 CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.AddressLength));
893 LengthOp = InitializerOp;
894 @@ -433,7 +433,7 @@ RsDoDwordMemoryDescriptor (
896 OptionalFields[0] = (UINT8) InitializerOp->Asl.Value.Integer;
898 - Descriptor->Address32.ResourceLength++;
900 ResSourceIndex = TRUE;
903 @@ -445,8 +445,8 @@ RsDoDwordMemoryDescriptor (
907 - Descriptor->Address32.ResourceLength = (UINT16)
908 - (Descriptor->Address32.ResourceLength + StringLength);
910 + ResourceLength = (UINT16) (ResourceLength + StringLength);
913 &OptionalFields[OptionIndex],
914 @@ -507,13 +514,20 @@ RsDoDwordMemoryDescriptor (
915 /* Validate the Min/Max/Len/Gran values */
917 RsLargeAddressCheck (
918 - (UINT64) Descriptor->Address32.Minimum,
919 - (UINT64) Descriptor->Address32.Maximum,
920 - (UINT64) Descriptor->Address32.AddressLength,
921 - (UINT64) Descriptor->Address32.Granularity,
926 Descriptor->Address32.Flags,
927 MinOp, MaxOp, LengthOp, GranOp, Info->DescriptorTypeOp);
929 + ACPI_MOVE_16_TO_16(&Descriptor->Address32.ResourceLength, &ResourceLength);
930 + ACPI_MOVE_32_TO_32(&Descriptor->Address32.Minimum, &Minimum);
931 + ACPI_MOVE_32_TO_32(&Descriptor->Address32.Maximum, &Maximum);
932 + ACPI_MOVE_32_TO_32(&Descriptor->Address32.AddressLength, &AddressLength);
933 + ACPI_MOVE_32_TO_32(&Descriptor->Address32.Granularity, &Granularity);
934 + ACPI_MOVE_32_TO_32(&Descriptor->Address32.TranslationOffset, &TranslationOffset);
936 Rnode->BufferLength = sizeof (AML_RESOURCE_ADDRESS32) +
937 OptionIndex + StringLength;
939 @@ -545,7 +551,13 @@ RsDoDwordSpaceDescriptor (
940 ASL_RESOURCE_NODE *Rnode;
941 UINT8 *OptionalFields;
942 UINT16 StringLength = 0;
943 + UINT16 ResourceLength = 0;
944 UINT32 OptionIndex = 0;
945 + UINT32 Minimum = 0;
946 + UINT32 Maximum = 0;
947 + UINT32 AddressLength = 0;
948 + UINT32 Granularity = 0;
949 + UINT32 TranslationOffset = 0;
950 UINT32 CurrentByteOffset;
952 BOOLEAN ResSourceIndex = FALSE;
953 @@ -566,8 +565,7 @@ RsDoDwordSpaceDescriptor (
954 * optional fields present
956 OptionalFields = ((UINT8 *) Descriptor) + sizeof (AML_RESOURCE_ADDRESS32);
957 - Descriptor->Address32.ResourceLength = (UINT16)
958 - (sizeof (AML_RESOURCE_ADDRESS32) -
959 + ResourceLength = (UINT16) (sizeof (AML_RESOURCE_ADDRESS32) -
960 sizeof (AML_RESOURCE_LARGE_HEADER));
962 /* Process all child initialization nodes */
963 @@ -616,8 +615,7 @@ RsDoDwordSpaceDescriptor (
965 case 6: /* Address Granularity */
967 - Descriptor->Address32.Granularity =
968 - (UINT32) InitializerOp->Asl.Value.Integer;
969 + Granularity = (UINT32) InitializerOp->Asl.Value.Integer;
970 RsCreateDwordField (InitializerOp, ACPI_RESTAG_GRANULARITY,
971 CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.Granularity));
972 GranOp = InitializerOp;
973 @@ -625,8 +624,7 @@ RsDoDwordSpaceDescriptor (
975 case 7: /* Min Address */
977 - Descriptor->Address32.Minimum =
978 - (UINT32) InitializerOp->Asl.Value.Integer;
979 + Minimum = (UINT32) InitializerOp->Asl.Value.Integer;
980 RsCreateDwordField (InitializerOp, ACPI_RESTAG_MINADDR,
981 CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.Minimum));
982 MinOp = InitializerOp;
983 @@ -634,8 +633,7 @@ RsDoDwordSpaceDescriptor (
985 case 8: /* Max Address */
987 - Descriptor->Address32.Maximum =
988 - (UINT32) InitializerOp->Asl.Value.Integer;
989 + Maximum = (UINT32) InitializerOp->Asl.Value.Integer;
990 RsCreateDwordField (InitializerOp, ACPI_RESTAG_MAXADDR,
991 CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.Maximum));
992 MaxOp = InitializerOp;
993 @@ -643,16 +641,14 @@ RsDoDwordSpaceDescriptor (
995 case 9: /* Translation Offset */
997 - Descriptor->Address32.TranslationOffset =
998 - (UINT32) InitializerOp->Asl.Value.Integer;
999 + TranslationOffset = (UINT32) InitializerOp->Asl.Value.Integer;
1000 RsCreateDwordField (InitializerOp, ACPI_RESTAG_TRANSLATION,
1001 CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.TranslationOffset));
1004 case 10: /* Address Length */
1006 - Descriptor->Address32.AddressLength =
1007 - (UINT32) InitializerOp->Asl.Value.Integer;
1008 + AddressLength = (UINT32) InitializerOp->Asl.Value.Integer;
1009 RsCreateDwordField (InitializerOp, ACPI_RESTAG_LENGTH,
1010 CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.AddressLength));
1011 LengthOp = InitializerOp;
1012 @@ -664,7 +664,7 @@ RsDoDwordSpaceDescriptor (
1014 OptionalFields[0] = (UINT8) InitializerOp->Asl.Value.Integer;
1016 - Descriptor->Address32.ResourceLength++;
1018 ResSourceIndex = TRUE;
1021 @@ -676,8 +675,7 @@ RsDoDwordSpaceDescriptor (
1025 - Descriptor->Address32.ResourceLength = (UINT16)
1026 - (Descriptor->Address32.ResourceLength + StringLength);
1027 + ResourceLength = (UINT16) (ResourceLength + StringLength);
1030 &OptionalFields[OptionIndex],
1031 @@ -724,13 +731,20 @@ RsDoDwordSpaceDescriptor (
1032 /* Validate the Min/Max/Len/Gran values */
1034 RsLargeAddressCheck (
1035 - (UINT64) Descriptor->Address32.Minimum,
1036 - (UINT64) Descriptor->Address32.Maximum,
1037 - (UINT64) Descriptor->Address32.AddressLength,
1038 - (UINT64) Descriptor->Address32.Granularity,
1043 Descriptor->Address32.Flags,
1044 MinOp, MaxOp, LengthOp, GranOp, Info->DescriptorTypeOp);
1046 + ACPI_MOVE_16_TO_16(&Descriptor->Address32.ResourceLength, &ResourceLength);
1047 + ACPI_MOVE_32_TO_32(&Descriptor->Address32.Minimum, &Minimum);
1048 + ACPI_MOVE_32_TO_32(&Descriptor->Address32.Maximum, &Maximum);
1049 + ACPI_MOVE_32_TO_32(&Descriptor->Address32.AddressLength, &AddressLength);
1050 + ACPI_MOVE_32_TO_32(&Descriptor->Address32.Granularity, &Granularity);
1051 + ACPI_MOVE_32_TO_32(&Descriptor->Address32.TranslationOffset, &TranslationOffset);
1053 Rnode->BufferLength = sizeof (AML_RESOURCE_ADDRESS32) +
1054 OptionIndex + StringLength;
1056 diff -up acpica-unix2-20140424/source/compiler/aslrestype2e.c.debian-big_endian acpica-unix2-20140424/source/compiler/aslrestype2e.c
1057 --- acpica-unix2-20140424/source/compiler/aslrestype2e.c.debian-big_endian 2014-04-24 11:49:00.000000000 -0400
1058 +++ acpica-unix2-20140424/source/compiler/aslrestype2e.c 2014-06-06 20:43:34.721825238 -0400
1059 @@ -78,6 +85,13 @@ RsDoExtendedIoDescriptor (
1060 ACPI_PARSE_OBJECT *GranOp = NULL;
1061 ASL_RESOURCE_NODE *Rnode;
1062 UINT16 StringLength = 0;
1063 + UINT16 ResourceLength = 0;
1064 + UINT64 Minimum = 0;
1065 + UINT64 Maximum = 0;
1066 + UINT64 AddressLength = 0;
1067 + UINT64 Granularity = 0;
1068 + UINT64 TranslationOffset = 0;
1069 + UINT64 TypeSpecific = 0;
1070 UINT32 CurrentByteOffset;
1073 @@ -94,9 +95,10 @@ RsDoExtendedIoDescriptor (
1074 Descriptor->ExtAddress64.ResourceType = ACPI_ADDRESS_TYPE_IO_RANGE;
1075 Descriptor->ExtAddress64.RevisionID = AML_RESOURCE_EXTENDED_ADDRESS_REVISION;
1077 - Descriptor->ExtAddress64.ResourceLength = (UINT16)
1078 - (sizeof (AML_RESOURCE_EXTENDED_ADDRESS64) -
1079 + ResourceLength = (UINT16) (sizeof (AML_RESOURCE_EXTENDED_ADDRESS64) -
1080 sizeof (AML_RESOURCE_LARGE_HEADER));
1081 + ACPI_MOVE_16_TO_16(&Descriptor->ExtAddress64.ResourceLength,
1084 /* Process all child initialization nodes */
1086 @@ -139,7 +139,7 @@ RsDoExtendedIoDescriptor (
1088 case 5: /* Address Granularity */
1090 - Descriptor->ExtAddress64.Granularity = InitializerOp->Asl.Value.Integer;
1091 + Granularity = InitializerOp->Asl.Value.Integer;
1092 RsCreateQwordField (InitializerOp, ACPI_RESTAG_GRANULARITY,
1093 CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.Granularity));
1094 GranOp = InitializerOp;
1095 @@ -147,7 +147,7 @@ RsDoExtendedIoDescriptor (
1097 case 6: /* Address Min */
1099 - Descriptor->ExtAddress64.Minimum = InitializerOp->Asl.Value.Integer;
1100 + Minimum = InitializerOp->Asl.Value.Integer;
1101 RsCreateQwordField (InitializerOp, ACPI_RESTAG_MINADDR,
1102 CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.Minimum));
1103 MinOp = InitializerOp;
1104 @@ -155,7 +155,7 @@ RsDoExtendedIoDescriptor (
1106 case 7: /* Address Max */
1108 - Descriptor->ExtAddress64.Maximum = InitializerOp->Asl.Value.Integer;
1109 + Maximum = InitializerOp->Asl.Value.Integer;
1110 RsCreateQwordField (InitializerOp, ACPI_RESTAG_MAXADDR,
1111 CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.Maximum));
1112 MaxOp = InitializerOp;
1113 @@ -163,14 +163,14 @@ RsDoExtendedIoDescriptor (
1115 case 8: /* Translation Offset */
1117 - Descriptor->ExtAddress64.TranslationOffset = InitializerOp->Asl.Value.Integer;
1118 + TranslationOffset = InitializerOp->Asl.Value.Integer;
1119 RsCreateQwordField (InitializerOp, ACPI_RESTAG_TRANSLATION,
1120 CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.TranslationOffset));
1123 case 9: /* Address Length */
1125 - Descriptor->ExtAddress64.AddressLength = InitializerOp->Asl.Value.Integer;
1126 + AddressLength = InitializerOp->Asl.Value.Integer;
1127 RsCreateQwordField (InitializerOp, ACPI_RESTAG_LENGTH,
1128 CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.AddressLength));
1129 LengthOp = InitializerOp;
1130 @@ -178,7 +178,7 @@ RsDoExtendedIoDescriptor (
1132 case 10: /* Type-Specific Attributes */
1134 - Descriptor->ExtAddress64.TypeSpecific = InitializerOp->Asl.Value.Integer;
1135 + TypeSpecific = InitializerOp->Asl.Value.Integer;
1136 RsCreateQwordField (InitializerOp, ACPI_RESTAG_TYPESPECIFICATTRIBUTES,
1137 CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.TypeSpecific));
1139 @@ -214,13 +221,20 @@ RsDoExtendedIoDescriptor (
1140 /* Validate the Min/Max/Len/Gran values */
1142 RsLargeAddressCheck (
1143 - Descriptor->ExtAddress64.Minimum,
1144 - Descriptor->ExtAddress64.Maximum,
1145 - Descriptor->ExtAddress64.AddressLength,
1146 - Descriptor->ExtAddress64.Granularity,
1151 Descriptor->ExtAddress64.Flags,
1152 MinOp, MaxOp, LengthOp, GranOp, Info->DescriptorTypeOp);
1154 + ACPI_MOVE_64_TO_64(&Descriptor->ExtAddress64.Minimum, &Minimum);
1155 + ACPI_MOVE_64_TO_64(&Descriptor->ExtAddress64.Maximum, &Maximum);
1156 + ACPI_MOVE_64_TO_64(&Descriptor->ExtAddress64.AddressLength, &AddressLength);
1157 + ACPI_MOVE_64_TO_64(&Descriptor->ExtAddress64.Granularity, &Granularity);
1158 + ACPI_MOVE_64_TO_64(&Descriptor->ExtAddress64.TranslationOffset, &TranslationOffset);
1159 + ACPI_MOVE_64_TO_64(&Descriptor->ExtAddress64.TypeSpecific, &TypeSpecific);
1161 Rnode->BufferLength = sizeof (AML_RESOURCE_EXTENDED_ADDRESS64) +
1165 @@ -254,6 +270,13 @@ RsDoExtendedMemoryDescriptor (
1166 ACPI_PARSE_OBJECT *GranOp = NULL;
1167 ASL_RESOURCE_NODE *Rnode;
1168 UINT16 StringLength = 0;
1169 + UINT16 ResourceLength = 0;
1170 + UINT64 Minimum = 0;
1171 + UINT64 Maximum = 0;
1172 + UINT64 AddressLength = 0;
1173 + UINT64 Granularity = 0;
1174 + UINT64 TranslationOffset = 0;
1175 + UINT64 TypeSpecific = 0;
1176 UINT32 CurrentByteOffset;
1179 @@ -268,9 +291,10 @@ RsDoExtendedMemoryDescriptor (
1180 Descriptor->ExtAddress64.ResourceType = ACPI_ADDRESS_TYPE_MEMORY_RANGE;
1181 Descriptor->ExtAddress64.RevisionID = AML_RESOURCE_EXTENDED_ADDRESS_REVISION;
1183 - Descriptor->ExtAddress64.ResourceLength = (UINT16)
1184 - (sizeof (AML_RESOURCE_EXTENDED_ADDRESS64) -
1185 + ResourceLength = (UINT16) (sizeof (AML_RESOURCE_EXTENDED_ADDRESS64) -
1186 sizeof (AML_RESOURCE_LARGE_HEADER));
1187 + ACPI_MOVE_16_TO_16(&Descriptor->ExtAddress64.ResourceLength,
1190 /* Process all child initialization nodes */
1192 @@ -320,7 +344,7 @@ RsDoExtendedMemoryDescriptor (
1194 case 6: /* Address Granularity */
1196 - Descriptor->ExtAddress64.Granularity = InitializerOp->Asl.Value.Integer;
1197 + Granularity = InitializerOp->Asl.Value.Integer;
1198 RsCreateQwordField (InitializerOp, ACPI_RESTAG_GRANULARITY,
1199 CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.Granularity));
1200 GranOp = InitializerOp;
1201 @@ -328,7 +352,7 @@ RsDoExtendedMemoryDescriptor (
1203 case 7: /* Min Address */
1205 - Descriptor->ExtAddress64.Minimum = InitializerOp->Asl.Value.Integer;
1206 + Minimum = InitializerOp->Asl.Value.Integer;
1207 RsCreateQwordField (InitializerOp, ACPI_RESTAG_MINADDR,
1208 CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.Minimum));
1209 MinOp = InitializerOp;
1210 @@ -336,7 +360,7 @@ RsDoExtendedMemoryDescriptor (
1212 case 8: /* Max Address */
1214 - Descriptor->ExtAddress64.Maximum = InitializerOp->Asl.Value.Integer;
1215 + Maximum = InitializerOp->Asl.Value.Integer;
1216 RsCreateQwordField (InitializerOp, ACPI_RESTAG_MAXADDR,
1217 CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.Maximum));
1218 MaxOp = InitializerOp;
1219 @@ -344,14 +368,14 @@ RsDoExtendedMemoryDescriptor (
1221 case 9: /* Translation Offset */
1223 - Descriptor->ExtAddress64.TranslationOffset = InitializerOp->Asl.Value.Integer;
1224 + TranslationOffset = InitializerOp->Asl.Value.Integer;
1225 RsCreateQwordField (InitializerOp, ACPI_RESTAG_TRANSLATION,
1226 CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.TranslationOffset));
1229 case 10: /* Address Length */
1231 - Descriptor->ExtAddress64.AddressLength = InitializerOp->Asl.Value.Integer;
1232 + AddressLength = InitializerOp->Asl.Value.Integer;
1233 RsCreateQwordField (InitializerOp, ACPI_RESTAG_LENGTH,
1234 CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.AddressLength));
1235 LengthOp = InitializerOp;
1236 @@ -359,7 +383,7 @@ RsDoExtendedMemoryDescriptor (
1238 case 11: /* Type-Specific Attributes */
1240 - Descriptor->ExtAddress64.TypeSpecific = InitializerOp->Asl.Value.Integer;
1241 + TypeSpecific = InitializerOp->Asl.Value.Integer;
1242 RsCreateQwordField (InitializerOp, ACPI_RESTAG_TYPESPECIFICATTRIBUTES,
1243 CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.TypeSpecific));
1245 @@ -396,13 +420,20 @@ RsDoExtendedMemoryDescriptor (
1246 /* Validate the Min/Max/Len/Gran values */
1248 RsLargeAddressCheck (
1249 - Descriptor->ExtAddress64.Minimum,
1250 - Descriptor->ExtAddress64.Maximum,
1251 - Descriptor->ExtAddress64.AddressLength,
1252 - Descriptor->ExtAddress64.Granularity,
1257 Descriptor->ExtAddress64.Flags,
1258 MinOp, MaxOp, LengthOp, GranOp, Op);
1260 + ACPI_MOVE_64_TO_64(&Descriptor->ExtAddress64.Minimum, &Minimum);
1261 + ACPI_MOVE_64_TO_64(&Descriptor->ExtAddress64.Maximum, &Maximum);
1262 + ACPI_MOVE_64_TO_64(&Descriptor->ExtAddress64.AddressLength, &AddressLength);
1263 + ACPI_MOVE_64_TO_64(&Descriptor->ExtAddress64.Granularity, &Granularity);
1264 + ACPI_MOVE_64_TO_64(&Descriptor->ExtAddress64.TranslationOffset, &TranslationOffset);
1265 + ACPI_MOVE_64_TO_64(&Descriptor->ExtAddress64.TypeSpecific, &TypeSpecific);
1267 Rnode->BufferLength = sizeof (AML_RESOURCE_EXTENDED_ADDRESS64) + StringLength;
1270 @@ -435,6 +466,13 @@ RsDoExtendedSpaceDescriptor (
1271 ACPI_PARSE_OBJECT *GranOp = NULL;
1272 ASL_RESOURCE_NODE *Rnode;
1273 UINT16 StringLength = 0;
1274 + UINT16 ResourceLength = 0;
1275 + UINT64 Minimum = 0;
1276 + UINT64 Maximum = 0;
1277 + UINT64 AddressLength = 0;
1278 + UINT64 Granularity = 0;
1279 + UINT64 TranslationOffset = 0;
1280 + UINT64 TypeSpecific = 0;
1284 @@ -448,9 +486,10 @@ RsDoExtendedSpaceDescriptor (
1285 Descriptor->ExtAddress64.DescriptorType = ACPI_RESOURCE_NAME_EXTENDED_ADDRESS64;
1286 Descriptor->ExtAddress64.RevisionID = AML_RESOURCE_EXTENDED_ADDRESS_REVISION;
1288 - Descriptor->ExtAddress64.ResourceLength = (UINT16)
1289 - (sizeof (AML_RESOURCE_EXTENDED_ADDRESS64) -
1290 + ResourceLength = (UINT16) (sizeof (AML_RESOURCE_EXTENDED_ADDRESS64) -
1291 sizeof (AML_RESOURCE_LARGE_HEADER));
1292 + ACPI_MOVE_16_TO_16(&Descriptor->ExtAddress64.ResourceLength,
1295 /* Process all child initialization nodes */
1297 @@ -498,7 +537,7 @@ RsDoExtendedSpaceDescriptor (
1299 case 6: /* Address Granularity */
1301 - Descriptor->ExtAddress64.Granularity = InitializerOp->Asl.Value.Integer;
1302 + Granularity = InitializerOp->Asl.Value.Integer;
1303 RsCreateQwordField (InitializerOp, ACPI_RESTAG_GRANULARITY,
1304 CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.Granularity));
1305 GranOp = InitializerOp;
1306 @@ -506,7 +545,7 @@ RsDoExtendedSpaceDescriptor (
1308 case 7: /* Min Address */
1310 - Descriptor->ExtAddress64.Minimum = InitializerOp->Asl.Value.Integer;
1311 + Minimum = InitializerOp->Asl.Value.Integer;
1312 RsCreateQwordField (InitializerOp, ACPI_RESTAG_MINADDR,
1313 CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.Minimum));
1314 MinOp = InitializerOp;
1315 @@ -514,7 +553,7 @@ RsDoExtendedSpaceDescriptor (
1317 case 8: /* Max Address */
1319 - Descriptor->ExtAddress64.Maximum = InitializerOp->Asl.Value.Integer;
1320 + Maximum = InitializerOp->Asl.Value.Integer;
1321 RsCreateQwordField (InitializerOp, ACPI_RESTAG_MAXADDR,
1322 CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.Maximum));
1323 MaxOp = InitializerOp;
1324 @@ -522,14 +561,14 @@ RsDoExtendedSpaceDescriptor (
1326 case 9: /* Translation Offset */
1328 - Descriptor->ExtAddress64.TranslationOffset = InitializerOp->Asl.Value.Integer;
1329 + TranslationOffset = InitializerOp->Asl.Value.Integer;
1330 RsCreateQwordField (InitializerOp, ACPI_RESTAG_TRANSLATION,
1331 CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.TranslationOffset));
1334 case 10: /* Address Length */
1336 - Descriptor->ExtAddress64.AddressLength = InitializerOp->Asl.Value.Integer;
1337 + AddressLength = InitializerOp->Asl.Value.Integer;
1338 RsCreateQwordField (InitializerOp, ACPI_RESTAG_LENGTH,
1339 CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.AddressLength));
1340 LengthOp = InitializerOp;
1341 @@ -537,7 +576,7 @@ RsDoExtendedSpaceDescriptor (
1343 case 11: /* Type-Specific Attributes */
1345 - Descriptor->ExtAddress64.TypeSpecific = InitializerOp->Asl.Value.Integer;
1346 + TypeSpecific = InitializerOp->Asl.Value.Integer;
1347 RsCreateQwordField (InitializerOp, ACPI_RESTAG_TYPESPECIFICATTRIBUTES,
1348 CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.TypeSpecific));
1350 @@ -559,13 +598,20 @@ RsDoExtendedSpaceDescriptor (
1351 /* Validate the Min/Max/Len/Gran values */
1353 RsLargeAddressCheck (
1354 - Descriptor->ExtAddress64.Minimum,
1355 - Descriptor->ExtAddress64.Maximum,
1356 - Descriptor->ExtAddress64.AddressLength,
1357 - Descriptor->ExtAddress64.Granularity,
1362 Descriptor->ExtAddress64.Flags,
1363 MinOp, MaxOp, LengthOp, GranOp, Op);
1365 + ACPI_MOVE_64_TO_64(&Descriptor->ExtAddress64.Minimum, &Minimum);
1366 + ACPI_MOVE_64_TO_64(&Descriptor->ExtAddress64.Maximum, &Maximum);
1367 + ACPI_MOVE_64_TO_64(&Descriptor->ExtAddress64.AddressLength, &AddressLength);
1368 + ACPI_MOVE_64_TO_64(&Descriptor->ExtAddress64.Granularity, &Granularity);
1369 + ACPI_MOVE_64_TO_64(&Descriptor->ExtAddress64.TranslationOffset, &TranslationOffset);
1370 + ACPI_MOVE_64_TO_64(&Descriptor->ExtAddress64.TypeSpecific, &TypeSpecific);
1372 Rnode->BufferLength = sizeof (AML_RESOURCE_EXTENDED_ADDRESS64) + StringLength;
1375 diff -up acpica-unix2-20140424/source/compiler/aslrestype2q.c.debian-big_endian acpica-unix2-20140424/source/compiler/aslrestype2q.c
1376 --- acpica-unix2-20140424/source/compiler/aslrestype2q.c.debian-big_endian 2014-04-24 11:49:00.000000000 -0400
1377 +++ acpica-unix2-20140424/source/compiler/aslrestype2q.c 2014-06-06 20:43:34.721825238 -0400
1378 @@ -80,7 +86,13 @@ RsDoQwordIoDescriptor (
1379 ASL_RESOURCE_NODE *Rnode;
1380 UINT8 *OptionalFields;
1381 UINT16 StringLength = 0;
1382 + UINT16 ResourceLength = 0;
1383 UINT32 OptionIndex = 0;
1384 + UINT64 Minimum = 0;
1385 + UINT64 Maximum = 0;
1386 + UINT64 AddressLength = 0;
1387 + UINT64 Granularity = 0;
1388 + UINT64 TranslationOffset = 0;
1389 UINT32 CurrentByteOffset;
1391 BOOLEAN ResSourceIndex = FALSE;
1392 @@ -102,8 +101,7 @@ RsDoQwordIoDescriptor (
1393 * optional fields present
1395 OptionalFields = ((UINT8 *) Descriptor) + sizeof (AML_RESOURCE_ADDRESS64);
1396 - Descriptor->Address64.ResourceLength = (UINT16)
1397 - (sizeof (AML_RESOURCE_ADDRESS64) -
1398 + ResourceLength = (UINT16) (sizeof (AML_RESOURCE_ADDRESS64) -
1399 sizeof (AML_RESOURCE_LARGE_HEADER));
1401 /* Process all child initialization nodes */
1402 @@ -147,7 +147,7 @@ RsDoQwordIoDescriptor (
1404 case 5: /* Address Granularity */
1406 - Descriptor->Address64.Granularity = InitializerOp->Asl.Value.Integer;
1407 + Granularity = InitializerOp->Asl.Value.Integer;
1408 RsCreateQwordField (InitializerOp, ACPI_RESTAG_GRANULARITY,
1409 CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.Granularity));
1410 GranOp = InitializerOp;
1411 @@ -155,7 +155,7 @@ RsDoQwordIoDescriptor (
1413 case 6: /* Address Min */
1415 - Descriptor->Address64.Minimum = InitializerOp->Asl.Value.Integer;
1416 + Minimum = InitializerOp->Asl.Value.Integer;
1417 RsCreateQwordField (InitializerOp, ACPI_RESTAG_MINADDR,
1418 CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.Minimum));
1419 MinOp = InitializerOp;
1420 @@ -163,7 +163,7 @@ RsDoQwordIoDescriptor (
1422 case 7: /* Address Max */
1424 - Descriptor->Address64.Maximum = InitializerOp->Asl.Value.Integer;
1425 + Maximum = InitializerOp->Asl.Value.Integer;
1426 RsCreateQwordField (InitializerOp, ACPI_RESTAG_MAXADDR,
1427 CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.Maximum));
1428 MaxOp = InitializerOp;
1429 @@ -171,14 +171,14 @@ RsDoQwordIoDescriptor (
1431 case 8: /* Translation Offset */
1433 - Descriptor->Address64.TranslationOffset = InitializerOp->Asl.Value.Integer;
1434 + TranslationOffset = InitializerOp->Asl.Value.Integer;
1435 RsCreateByteField (InitializerOp, ACPI_RESTAG_TRANSLATION,
1436 CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.TranslationOffset));
1439 case 9: /* Address Length */
1441 - Descriptor->Address64.AddressLength = InitializerOp->Asl.Value.Integer;
1442 + AddressLength = InitializerOp->Asl.Value.Integer;
1443 RsCreateQwordField (InitializerOp, ACPI_RESTAG_LENGTH,
1444 CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.AddressLength));
1445 LengthOp = InitializerOp;
1446 @@ -190,7 +190,7 @@ RsDoQwordIoDescriptor (
1448 OptionalFields[0] = (UINT8) InitializerOp->Asl.Value.Integer;
1450 - Descriptor->Address64.ResourceLength++;
1452 ResSourceIndex = TRUE;
1455 @@ -202,8 +201,7 @@ RsDoQwordIoDescriptor (
1459 - Descriptor->Address64.ResourceLength = (UINT16)
1460 - (Descriptor->Address64.ResourceLength + StringLength);
1461 + ResourceLength = (UINT16) (ResourceLength + StringLength);
1464 &OptionalFields[OptionIndex],
1465 @@ -263,13 +270,20 @@ RsDoQwordIoDescriptor (
1466 /* Validate the Min/Max/Len/Gran values */
1468 RsLargeAddressCheck (
1469 - Descriptor->Address64.Minimum,
1470 - Descriptor->Address64.Maximum,
1471 - Descriptor->Address64.AddressLength,
1472 - Descriptor->Address64.Granularity,
1477 Descriptor->Address64.Flags,
1478 MinOp, MaxOp, LengthOp, GranOp, Info->DescriptorTypeOp);
1480 + ACPI_MOVE_16_TO_16(&Descriptor->Address64.ResourceLength, &ResourceLength);
1481 + ACPI_MOVE_64_TO_64(&Descriptor->Address64.Minimum, &Minimum);
1482 + ACPI_MOVE_64_TO_64(&Descriptor->Address64.Maximum, &Maximum);
1483 + ACPI_MOVE_64_TO_64(&Descriptor->Address64.AddressLength, &AddressLength);
1484 + ACPI_MOVE_64_TO_64(&Descriptor->Address64.Granularity, &Granularity);
1485 + ACPI_MOVE_64_TO_64(&Descriptor->Address64.TranslationOffset, &TranslationOffset);
1487 Rnode->BufferLength = sizeof (AML_RESOURCE_ADDRESS64) +
1488 OptionIndex + StringLength;
1490 @@ -301,7 +307,13 @@ RsDoQwordMemoryDescriptor (
1491 ASL_RESOURCE_NODE *Rnode;
1492 UINT8 *OptionalFields;
1493 UINT16 StringLength = 0;
1494 + UINT16 ResourceLength = 0;
1495 UINT32 OptionIndex = 0;
1496 + UINT64 Minimum = 0;
1497 + UINT64 Maximum = 0;
1498 + UINT64 AddressLength = 0;
1499 + UINT64 Granularity = 0;
1500 + UINT64 TranslationOffset = 0;
1501 UINT32 CurrentByteOffset;
1503 BOOLEAN ResSourceIndex = FALSE;
1504 @@ -323,8 +322,7 @@ RsDoQwordMemoryDescriptor (
1505 * optional fields present
1507 OptionalFields = ((UINT8 *) Descriptor) + sizeof (AML_RESOURCE_ADDRESS64);
1508 - Descriptor->Address64.ResourceLength = (UINT16)
1509 - (sizeof (AML_RESOURCE_ADDRESS64) -
1510 + ResourceLength = (UINT16) (sizeof (AML_RESOURCE_ADDRESS64) -
1511 sizeof (AML_RESOURCE_LARGE_HEADER));
1513 /* Process all child initialization nodes */
1514 @@ -375,7 +375,7 @@ RsDoQwordMemoryDescriptor (
1516 case 6: /* Address Granularity */
1518 - Descriptor->Address64.Granularity = InitializerOp->Asl.Value.Integer;
1519 + Granularity = InitializerOp->Asl.Value.Integer;
1520 RsCreateQwordField (InitializerOp, ACPI_RESTAG_GRANULARITY,
1521 CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.Granularity));
1522 GranOp = InitializerOp;
1523 @@ -383,7 +383,7 @@ RsDoQwordMemoryDescriptor (
1525 case 7: /* Min Address */
1527 - Descriptor->Address64.Minimum = InitializerOp->Asl.Value.Integer;
1528 + Minimum = InitializerOp->Asl.Value.Integer;
1529 RsCreateQwordField (InitializerOp, ACPI_RESTAG_MINADDR,
1530 CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.Minimum));
1531 MinOp = InitializerOp;
1532 @@ -391,7 +391,7 @@ RsDoQwordMemoryDescriptor (
1534 case 8: /* Max Address */
1536 - Descriptor->Address64.Maximum = InitializerOp->Asl.Value.Integer;
1537 + Maximum = InitializerOp->Asl.Value.Integer;
1538 RsCreateQwordField (InitializerOp, ACPI_RESTAG_MAXADDR,
1539 CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.Maximum));
1540 MaxOp = InitializerOp;
1541 @@ -399,14 +399,14 @@ RsDoQwordMemoryDescriptor (
1543 case 9: /* Translation Offset */
1545 - Descriptor->Address64.TranslationOffset = InitializerOp->Asl.Value.Integer;
1546 + TranslationOffset = InitializerOp->Asl.Value.Integer;
1547 RsCreateQwordField (InitializerOp, ACPI_RESTAG_TRANSLATION,
1548 CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.TranslationOffset));
1551 case 10: /* Address Length */
1553 - Descriptor->Address64.AddressLength = InitializerOp->Asl.Value.Integer;
1554 + AddressLength = InitializerOp->Asl.Value.Integer;
1555 RsCreateQwordField (InitializerOp, ACPI_RESTAG_LENGTH,
1556 CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.AddressLength));
1557 LengthOp = InitializerOp;
1558 @@ -418,7 +418,7 @@ RsDoQwordMemoryDescriptor (
1560 OptionalFields[0] = (UINT8) InitializerOp->Asl.Value.Integer;
1562 - Descriptor->Address64.ResourceLength++;
1564 ResSourceIndex = TRUE;
1567 @@ -430,8 +429,7 @@ RsDoQwordMemoryDescriptor (
1571 - Descriptor->Address64.ResourceLength = (UINT16)
1572 - (Descriptor->Address64.ResourceLength + StringLength);
1573 + ResourceLength = (UINT16) (ResourceLength + StringLength);
1576 &OptionalFields[OptionIndex],
1577 @@ -492,13 +499,20 @@ RsDoQwordMemoryDescriptor (
1578 /* Validate the Min/Max/Len/Gran values */
1580 RsLargeAddressCheck (
1581 - Descriptor->Address64.Minimum,
1582 - Descriptor->Address64.Maximum,
1583 - Descriptor->Address64.AddressLength,
1584 - Descriptor->Address64.Granularity,
1589 Descriptor->Address64.Flags,
1590 MinOp, MaxOp, LengthOp, GranOp, Info->DescriptorTypeOp);
1592 + ACPI_MOVE_16_TO_16(&Descriptor->Address64.ResourceLength, &ResourceLength);
1593 + ACPI_MOVE_64_TO_64(&Descriptor->Address64.Minimum, &Minimum);
1594 + ACPI_MOVE_64_TO_64(&Descriptor->Address64.Maximum, &Maximum);
1595 + ACPI_MOVE_64_TO_64(&Descriptor->Address64.AddressLength, &AddressLength);
1596 + ACPI_MOVE_64_TO_64(&Descriptor->Address64.Granularity, &Granularity);
1597 + ACPI_MOVE_64_TO_64(&Descriptor->Address64.TranslationOffset, &TranslationOffset);
1599 Rnode->BufferLength = sizeof (AML_RESOURCE_ADDRESS64) +
1600 OptionIndex + StringLength;
1602 @@ -530,9 +536,15 @@ RsDoQwordSpaceDescriptor (
1603 ASL_RESOURCE_NODE *Rnode;
1604 UINT8 *OptionalFields;
1605 UINT16 StringLength = 0;
1606 + UINT16 ResourceLength = 0;
1607 UINT32 OptionIndex = 0;
1608 UINT32 CurrentByteOffset;
1610 + UINT64 Minimum = 0;
1611 + UINT64 Maximum = 0;
1612 + UINT64 AddressLength = 0;
1613 + UINT64 Granularity = 0;
1614 + UINT64 TranslationOffset = 0;
1615 BOOLEAN ResSourceIndex = FALSE;
1618 @@ -551,8 +550,7 @@ RsDoQwordSpaceDescriptor (
1619 * optional fields present
1621 OptionalFields = ((UINT8 *) Descriptor) + sizeof (AML_RESOURCE_ADDRESS64);
1622 - Descriptor->Address64.ResourceLength = (UINT16)
1623 - (sizeof (AML_RESOURCE_ADDRESS64) -
1624 + ResourceLength = (UINT16) (sizeof (AML_RESOURCE_ADDRESS64) -
1625 sizeof (AML_RESOURCE_LARGE_HEADER));
1627 /* Process all child initialization nodes */
1628 @@ -601,7 +601,7 @@ RsDoQwordSpaceDescriptor (
1630 case 6: /* Address Granularity */
1632 - Descriptor->Address64.Granularity = InitializerOp->Asl.Value.Integer;
1633 + Granularity = InitializerOp->Asl.Value.Integer;
1634 RsCreateQwordField (InitializerOp, ACPI_RESTAG_GRANULARITY,
1635 CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.Granularity));
1636 GranOp = InitializerOp;
1637 @@ -609,7 +609,7 @@ RsDoQwordSpaceDescriptor (
1639 case 7: /* Min Address */
1641 - Descriptor->Address64.Minimum = InitializerOp->Asl.Value.Integer;
1642 + Minimum = InitializerOp->Asl.Value.Integer;
1643 RsCreateQwordField (InitializerOp, ACPI_RESTAG_MINADDR,
1644 CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.Minimum));
1645 MinOp = InitializerOp;
1646 @@ -617,7 +617,7 @@ RsDoQwordSpaceDescriptor (
1648 case 8: /* Max Address */
1650 - Descriptor->Address64.Maximum = InitializerOp->Asl.Value.Integer;
1651 + Maximum = InitializerOp->Asl.Value.Integer;
1652 RsCreateQwordField (InitializerOp, ACPI_RESTAG_MAXADDR,
1653 CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.Maximum));
1654 MaxOp = InitializerOp;
1655 @@ -625,14 +625,14 @@ RsDoQwordSpaceDescriptor (
1657 case 9: /* Translation Offset */
1659 - Descriptor->Address64.TranslationOffset = InitializerOp->Asl.Value.Integer;
1660 + TranslationOffset = InitializerOp->Asl.Value.Integer;
1661 RsCreateQwordField (InitializerOp, ACPI_RESTAG_TRANSLATION,
1662 CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.TranslationOffset));
1665 case 10: /* Address Length */
1667 - Descriptor->Address64.AddressLength = InitializerOp->Asl.Value.Integer;
1668 + AddressLength = InitializerOp->Asl.Value.Integer;
1669 RsCreateQwordField (InitializerOp, ACPI_RESTAG_LENGTH,
1670 CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.AddressLength));
1671 LengthOp = InitializerOp;
1672 @@ -644,7 +644,7 @@ RsDoQwordSpaceDescriptor (
1674 OptionalFields[0] = (UINT8) InitializerOp->Asl.Value.Integer;
1676 - Descriptor->Address64.ResourceLength++;
1678 ResSourceIndex = TRUE;
1681 @@ -656,8 +655,7 @@ RsDoQwordSpaceDescriptor (
1685 - Descriptor->Address64.ResourceLength = (UINT16)
1686 - (Descriptor->Address64.ResourceLength + StringLength);
1687 + ResourceLength = (UINT16) (ResourceLength + StringLength);
1690 &OptionalFields[OptionIndex],
1691 @@ -703,13 +710,20 @@ RsDoQwordSpaceDescriptor (
1692 /* Validate the Min/Max/Len/Gran values */
1694 RsLargeAddressCheck (
1695 - Descriptor->Address64.Minimum,
1696 - Descriptor->Address64.Maximum,
1697 - Descriptor->Address64.AddressLength,
1698 - Descriptor->Address64.Granularity,
1703 Descriptor->Address64.Flags,
1704 MinOp, MaxOp, LengthOp, GranOp, Info->DescriptorTypeOp);
1706 + ACPI_MOVE_16_TO_16(&Descriptor->Address64.ResourceLength, &ResourceLength);
1707 + ACPI_MOVE_64_TO_64(&Descriptor->Address64.Minimum, &Minimum);
1708 + ACPI_MOVE_64_TO_64(&Descriptor->Address64.Maximum, &Maximum);
1709 + ACPI_MOVE_64_TO_64(&Descriptor->Address64.AddressLength, &AddressLength);
1710 + ACPI_MOVE_64_TO_64(&Descriptor->Address64.Granularity, &Granularity);
1711 + ACPI_MOVE_64_TO_64(&Descriptor->Address64.TranslationOffset, &TranslationOffset);
1713 Rnode->BufferLength = sizeof (AML_RESOURCE_ADDRESS64) +
1714 OptionIndex + StringLength;
1716 diff -up acpica-unix2-20140424/source/compiler/aslrestype2s.c.debian-big_endian acpica-unix2-20140424/source/compiler/aslrestype2s.c
1717 --- acpica-unix2-20140424/source/compiler/aslrestype2s.c.debian-big_endian 2014-04-24 11:49:00.000000000 -0400
1718 +++ acpica-unix2-20140424/source/compiler/aslrestype2s.c 2014-06-06 20:43:34.721825238 -0400
1719 @@ -290,6 +293,9 @@ RsDoGpioIntDescriptor (
1720 UINT16 VendorLength;
1721 UINT16 InterruptLength;
1722 UINT16 DescriptorSize;
1723 + UINT16 IntFlags = 0;
1724 + UINT16 DebounceTimeout = 0;
1726 UINT32 CurrentByteOffset;
1727 UINT32 PinCount = 0;
1729 @@ -349,21 +349,21 @@ RsDoGpioIntDescriptor (
1731 case 0: /* Interrupt Mode - edge/level [Flag] (_MOD) */
1733 - RsSetFlagBits16 (&Descriptor->Gpio.IntFlags, InitializerOp, 0, 0);
1734 + RsSetFlagBits16 (&IntFlags, InitializerOp, 0, 0);
1735 RsCreateBitField (InitializerOp, ACPI_RESTAG_MODE,
1736 CurrentByteOffset + ASL_RESDESC_OFFSET (Gpio.IntFlags), 0);
1739 case 1: /* Interrupt Polarity - Active high/low [Flags] (_POL) */
1741 - RsSetFlagBits16 (&Descriptor->Gpio.IntFlags, InitializerOp, 1, 0);
1742 + RsSetFlagBits16 (&IntFlags, InitializerOp, 1, 0);
1743 RsCreateMultiBitField (InitializerOp, ACPI_RESTAG_POLARITY,
1744 CurrentByteOffset + ASL_RESDESC_OFFSET (Gpio.IntFlags), 1, 2);
1747 case 2: /* Share Type - Default: exclusive (0) [Flags] (_SHR) */
1749 - RsSetFlagBits16 (&Descriptor->Gpio.IntFlags, InitializerOp, 3, 0);
1750 + RsSetFlagBits16 (&IntFlags, InitializerOp, 3, 0);
1751 RsCreateMultiBitField (InitializerOp, ACPI_RESTAG_INTERRUPTSHARE,
1752 CurrentByteOffset + ASL_RESDESC_OFFSET (Gpio.IntFlags), 3, 2);
1754 @@ -377,7 +377,7 @@ RsDoGpioIntDescriptor (
1756 case 4: /* Debounce Timeout [WORD] (_DBT) */
1758 - Descriptor->Gpio.DebounceTimeout = (UINT16) InitializerOp->Asl.Value.Integer;
1759 + DebounceTimeout = (UINT16) InitializerOp->Asl.Value.Integer;
1760 RsCreateWordField (InitializerOp, ACPI_RESTAG_DEBOUNCETIME,
1761 CurrentByteOffset + ASL_RESDESC_OFFSET (Gpio.DebounceTimeout));
1763 @@ -403,7 +403,7 @@ RsDoGpioIntDescriptor (
1765 case 7: /* Resource Usage (consumer/producer) */
1767 - RsSetFlagBits16 (&Descriptor->Gpio.Flags, InitializerOp, 0, 1);
1768 + RsSetFlagBits16 (&Flags, InitializerOp, 0, 1);
1771 case 8: /* Resource Tag (Descriptor Name) */
1772 @@ -468,6 +472,10 @@ RsDoGpioIntDescriptor (
1773 InitializerOp = RsCompleteNodeAndGetNext (InitializerOp);
1776 + ACPI_MOVE_16_TO_16(&Descriptor->Gpio.IntFlags, &IntFlags);
1777 + ACPI_MOVE_16_TO_16(&Descriptor->Gpio.DebounceTimeout, &DebounceTimeout);
1778 + ACPI_MOVE_16_TO_16(&Descriptor->Gpio.Flags, &Flags);
1780 MpSaveGpioInfo (Info->MappingOp, Descriptor, PinCount, PinList, ResourceSource);
1783 @@ -500,6 +504,10 @@ RsDoGpioIoDescriptor (
1784 UINT16 VendorLength;
1785 UINT16 InterruptLength;
1786 UINT16 DescriptorSize;
1787 + UINT16 IntFlags = 0;
1788 + UINT16 DebounceTimeout = 0;
1789 + UINT16 DriveStrength = 0;
1791 UINT32 CurrentByteOffset;
1792 UINT32 PinCount = 0;
1794 @@ -560,7 +560,7 @@ RsDoGpioIoDescriptor (
1796 case 0: /* Share Type [Flags] (_SHR) */
1798 - RsSetFlagBits16 (&Descriptor->Gpio.IntFlags, InitializerOp, 3, 0);
1799 + RsSetFlagBits16 (&IntFlags, InitializerOp, 3, 0);
1800 RsCreateBitField (InitializerOp, ACPI_RESTAG_INTERRUPTSHARE,
1801 CurrentByteOffset + ASL_RESDESC_OFFSET (Gpio.IntFlags), 3);
1803 @@ -574,21 +574,21 @@ RsDoGpioIoDescriptor (
1805 case 2: /* Debounce Timeout [WORD] (_DBT) */
1807 - Descriptor->Gpio.DebounceTimeout = (UINT16) InitializerOp->Asl.Value.Integer;
1808 + DebounceTimeout = (UINT16) InitializerOp->Asl.Value.Integer;
1809 RsCreateWordField (InitializerOp, ACPI_RESTAG_DEBOUNCETIME,
1810 CurrentByteOffset + ASL_RESDESC_OFFSET (Gpio.DebounceTimeout));
1813 case 3: /* Drive Strength [WORD] (_DRS) */
1815 - Descriptor->Gpio.DriveStrength = (UINT16) InitializerOp->Asl.Value.Integer;
1816 + DriveStrength = (UINT16) InitializerOp->Asl.Value.Integer;
1817 RsCreateWordField (InitializerOp, ACPI_RESTAG_DRIVESTRENGTH,
1818 CurrentByteOffset + ASL_RESDESC_OFFSET (Gpio.DriveStrength));
1821 case 4: /* I/O Restriction [Flag] (_IOR) */
1823 - RsSetFlagBits16 (&Descriptor->Gpio.IntFlags, InitializerOp, 0, 0);
1824 + RsSetFlagBits16 (&IntFlags, InitializerOp, 0, 0);
1825 RsCreateMultiBitField (InitializerOp, ACPI_RESTAG_IORESTRICTION,
1826 CurrentByteOffset + ASL_RESDESC_OFFSET (Gpio.IntFlags), 0, 2);
1828 @@ -614,7 +614,7 @@ RsDoGpioIoDescriptor (
1830 case 7: /* Resource Usage (consumer/producer) */
1832 - RsSetFlagBits16 (&Descriptor->Gpio.Flags, InitializerOp, 0, 1);
1833 + RsSetFlagBits16 (&Flags, InitializerOp, 0, 1);
1836 case 8: /* Resource Tag (Descriptor Name) */
1837 @@ -678,6 +683,11 @@ RsDoGpioIoDescriptor (
1838 InitializerOp = RsCompleteNodeAndGetNext (InitializerOp);
1841 + ACPI_MOVE_16_TO_16(&Descriptor->Gpio.IntFlags, &IntFlags);
1842 + ACPI_MOVE_16_TO_16(&Descriptor->Gpio.DebounceTimeout, &DebounceTimeout);
1843 + ACPI_MOVE_16_TO_16(&Descriptor->Gpio.DriveStrength, &DriveStrength);
1844 + ACPI_MOVE_16_TO_16(&Descriptor->Gpio.Flags, &Flags);
1846 MpSaveGpioInfo (Info->MappingOp, Descriptor, PinCount, PinList, ResourceSource);
1849 @@ -707,6 +710,9 @@ RsDoI2cSerialBusDescriptor (
1850 UINT16 ResSourceLength;
1851 UINT16 VendorLength;
1852 UINT16 DescriptorSize;
1853 + UINT16 SlaveAddress = 0;
1854 + UINT32 ConnectionSpeed = 0;
1855 + UINT16 TypeSpecificFlags = 0;
1856 UINT32 CurrentByteOffset;
1859 @@ -756,7 +756,7 @@ RsDoI2cSerialBusDescriptor (
1861 case 0: /* Slave Address [WORD] (_ADR) */
1863 - Descriptor->I2cSerialBus.SlaveAddress = (UINT16) InitializerOp->Asl.Value.Integer;
1864 + SlaveAddress = (UINT16) InitializerOp->Asl.Value.Integer;
1865 RsCreateWordField (InitializerOp, ACPI_RESTAG_ADDRESS,
1866 CurrentByteOffset + ASL_RESDESC_OFFSET (I2cSerialBus.SlaveAddress));
1868 @@ -770,14 +770,14 @@ RsDoI2cSerialBusDescriptor (
1870 case 2: /* Connection Speed [DWORD] (_SPE) */
1872 - Descriptor->I2cSerialBus.ConnectionSpeed = (UINT32) InitializerOp->Asl.Value.Integer;
1873 + ConnectionSpeed = (UINT32) InitializerOp->Asl.Value.Integer;
1874 RsCreateDwordField (InitializerOp, ACPI_RESTAG_SPEED,
1875 CurrentByteOffset + ASL_RESDESC_OFFSET (I2cSerialBus.ConnectionSpeed));
1878 case 3: /* Addressing Mode [Flag] (_MOD) */
1880 - RsSetFlagBits16 (&Descriptor->I2cSerialBus.TypeSpecificFlags, InitializerOp, 0, 0);
1881 + RsSetFlagBits16 (&TypeSpecificFlags, InitializerOp, 0, 0);
1882 RsCreateBitField (InitializerOp, ACPI_RESTAG_MODE,
1883 CurrentByteOffset + ASL_RESDESC_OFFSET (I2cSerialBus.TypeSpecificFlags), 0);
1885 @@ -825,6 +828,9 @@ RsDoI2cSerialBusDescriptor (
1886 InitializerOp = RsCompleteNodeAndGetNext (InitializerOp);
1889 + ACPI_MOVE_16_TO_16(&Descriptor->I2cSerialBus.SlaveAddress, &SlaveAddress);
1890 + ACPI_MOVE_32_TO_32(&Descriptor->I2cSerialBus.ConnectionSpeed, &ConnectionSpeed);
1891 + ACPI_MOVE_16_TO_16(&Descriptor->I2cSerialBus.TypeSpecificFlags, &TypeSpecificFlags);
1892 MpSaveSerialInfo (Info->MappingOp, Descriptor, ResourceSource);
1895 @@ -854,6 +857,9 @@ RsDoSpiSerialBusDescriptor (
1896 UINT16 ResSourceLength;
1897 UINT16 VendorLength;
1898 UINT16 DescriptorSize;
1899 + UINT16 DeviceSelection = 0;
1900 + UINT32 ConnectionSpeed = 0;
1901 + UINT16 TypeSpecificFlags = 0;
1902 UINT32 CurrentByteOffset;
1905 @@ -903,21 +903,21 @@ RsDoSpiSerialBusDescriptor (
1907 case 0: /* Device Selection [WORD] (_ADR) */
1909 - Descriptor->SpiSerialBus.DeviceSelection = (UINT16) InitializerOp->Asl.Value.Integer;
1910 + DeviceSelection = (UINT16) InitializerOp->Asl.Value.Integer;
1911 RsCreateWordField (InitializerOp, ACPI_RESTAG_ADDRESS,
1912 CurrentByteOffset + ASL_RESDESC_OFFSET (SpiSerialBus.DeviceSelection));
1915 case 1: /* Device Polarity [Flag] (_DPL) */
1917 - RsSetFlagBits16 (&Descriptor->SpiSerialBus.TypeSpecificFlags, InitializerOp, 1, 0);
1918 + RsSetFlagBits16 (&TypeSpecificFlags, InitializerOp, 1, 0);
1919 RsCreateBitField (InitializerOp, ACPI_RESTAG_DEVICEPOLARITY,
1920 CurrentByteOffset + ASL_RESDESC_OFFSET (SpiSerialBus.TypeSpecificFlags), 1);
1923 case 2: /* Wire Mode [Flag] (_MOD) */
1925 - RsSetFlagBits16 (&Descriptor->SpiSerialBus.TypeSpecificFlags, InitializerOp, 0, 0);
1926 + RsSetFlagBits16 (&TypeSpecificFlags, InitializerOp, 0, 0);
1927 RsCreateBitField (InitializerOp, ACPI_RESTAG_MODE,
1928 CurrentByteOffset + ASL_RESDESC_OFFSET (SpiSerialBus.TypeSpecificFlags), 0);
1930 @@ -938,7 +938,7 @@ RsDoSpiSerialBusDescriptor (
1932 case 5: /* Connection Speed [DWORD] (_SPE) */
1934 - Descriptor->SpiSerialBus.ConnectionSpeed = (UINT32) InitializerOp->Asl.Value.Integer;
1935 + ConnectionSpeed = (UINT32) InitializerOp->Asl.Value.Integer;
1936 RsCreateDwordField (InitializerOp, ACPI_RESTAG_SPEED,
1937 CurrentByteOffset + ASL_RESDESC_OFFSET (SpiSerialBus.ConnectionSpeed));
1939 @@ -1000,6 +1004,10 @@ RsDoSpiSerialBusDescriptor (
1940 InitializerOp = RsCompleteNodeAndGetNext (InitializerOp);
1943 + ACPI_MOVE_16_TO_16(&Descriptor->SpiSerialBus.DeviceSelection, &DeviceSelection);
1944 + ACPI_MOVE_32_TO_32(&Descriptor->SpiSerialBus.ConnectionSpeed, &ConnectionSpeed);
1945 + ACPI_MOVE_16_TO_16(&Descriptor->SpiSerialBus.TypeSpecificFlags, &TypeSpecificFlags);
1947 MpSaveSerialInfo (Info->MappingOp, Descriptor, ResourceSource);
1950 @@ -1029,6 +1033,10 @@ RsDoUartSerialBusDescriptor (
1951 UINT16 ResSourceLength;
1952 UINT16 VendorLength;
1953 UINT16 DescriptorSize;
1954 + UINT32 DefaultBaudRate = 0;
1955 + UINT16 TypeSpecificFlags = 0;
1956 + UINT16 RxFifoSize = 0;
1957 + UINT16 TxFifoSize = 0;
1958 UINT32 CurrentByteOffset;
1961 @@ -1078,21 +1078,21 @@ RsDoUartSerialBusDescriptor (
1963 case 0: /* Connection Speed (Baud Rate) [DWORD] (_SPE) */
1965 - Descriptor->UartSerialBus.DefaultBaudRate = (UINT32) InitializerOp->Asl.Value.Integer;
1966 + DefaultBaudRate = (UINT32) InitializerOp->Asl.Value.Integer;
1967 RsCreateDwordField (InitializerOp, ACPI_RESTAG_SPEED,
1968 CurrentByteOffset + ASL_RESDESC_OFFSET (UartSerialBus.DefaultBaudRate));
1971 case 1: /* Bits Per Byte [Flags] (_LEN) */
1973 - RsSetFlagBits16 (&Descriptor->UartSerialBus.TypeSpecificFlags, InitializerOp, 4, 3);
1974 + RsSetFlagBits16 (&TypeSpecificFlags, InitializerOp, 4, 3);
1975 RsCreateMultiBitField (InitializerOp, ACPI_RESTAG_LENGTH,
1976 CurrentByteOffset + ASL_RESDESC_OFFSET (UartSerialBus.TypeSpecificFlags), 4, 3);
1979 case 2: /* Stop Bits [Flags] (_STB) */
1981 - RsSetFlagBits16 (&Descriptor->UartSerialBus.TypeSpecificFlags, InitializerOp, 2, 1);
1982 + RsSetFlagBits16 (&TypeSpecificFlags, InitializerOp, 2, 1);
1983 RsCreateMultiBitField (InitializerOp, ACPI_RESTAG_STOPBITS,
1984 CurrentByteOffset + ASL_RESDESC_OFFSET (UartSerialBus.TypeSpecificFlags), 2, 2);
1986 @@ -1106,7 +1106,7 @@ RsDoUartSerialBusDescriptor (
1988 case 4: /* Endianness [Flag] (_END) */
1990 - RsSetFlagBits16 (&Descriptor->UartSerialBus.TypeSpecificFlags, InitializerOp, 7, 0);
1991 + RsSetFlagBits16 (&TypeSpecificFlags, InitializerOp, 7, 0);
1992 RsCreateBitField (InitializerOp, ACPI_RESTAG_ENDIANNESS,
1993 CurrentByteOffset + ASL_RESDESC_OFFSET (UartSerialBus.TypeSpecificFlags), 7);
1995 @@ -1120,21 +1120,21 @@ RsDoUartSerialBusDescriptor (
1997 case 6: /* Flow Control [Flags] (_FLC) */
1999 - RsSetFlagBits16 (&Descriptor->UartSerialBus.TypeSpecificFlags, InitializerOp, 0, 0);
2000 + RsSetFlagBits16 (&TypeSpecificFlags, InitializerOp, 0, 0);
2001 RsCreateMultiBitField (InitializerOp, ACPI_RESTAG_FLOWCONTROL,
2002 CurrentByteOffset + ASL_RESDESC_OFFSET (UartSerialBus.TypeSpecificFlags), 0, 2);
2005 case 7: /* Rx Buffer Size [WORD] (_RXL) */
2007 - Descriptor->UartSerialBus.RxFifoSize = (UINT16) InitializerOp->Asl.Value.Integer;
2008 + RxFifoSize = (UINT16) InitializerOp->Asl.Value.Integer;
2009 RsCreateWordField (InitializerOp, ACPI_RESTAG_LENGTH_RX,
2010 CurrentByteOffset + ASL_RESDESC_OFFSET (UartSerialBus.RxFifoSize));
2013 case 8: /* Tx Buffer Size [WORD] (_TXL) */
2015 - Descriptor->UartSerialBus.TxFifoSize = (UINT16) InitializerOp->Asl.Value.Integer;
2016 + TxFifoSize = (UINT16) InitializerOp->Asl.Value.Integer;
2017 RsCreateWordField (InitializerOp, ACPI_RESTAG_LENGTH_TX,
2018 CurrentByteOffset + ASL_RESDESC_OFFSET (UartSerialBus.TxFifoSize));
2020 @@ -1192,6 +1197,11 @@ RsDoUartSerialBusDescriptor (
2021 InitializerOp = RsCompleteNodeAndGetNext (InitializerOp);
2024 + ACPI_MOVE_32_TO_32(&Descriptor->UartSerialBus.DefaultBaudRate, &DefaultBaudRate);
2025 + ACPI_MOVE_16_TO_16(&Descriptor->UartSerialBus.TypeSpecificFlags, &TypeSpecificFlags);
2026 + ACPI_MOVE_16_TO_16(&Descriptor->UartSerialBus.RxFifoSize, &RxFifoSize);
2027 + ACPI_MOVE_16_TO_16(&Descriptor->UartSerialBus.TxFifoSize, &TxFifoSize);
2029 MpSaveSerialInfo (Info->MappingOp, Descriptor, ResourceSource);
2032 diff -up acpica-unix2-20140424/source/compiler/aslrestype2w.c.debian-big_endian acpica-unix2-20140424/source/compiler/aslrestype2w.c
2033 --- acpica-unix2-20140424/source/compiler/aslrestype2w.c.debian-big_endian 2014-04-24 11:49:00.000000000 -0400
2034 +++ acpica-unix2-20140424/source/compiler/aslrestype2w.c 2014-06-06 20:43:34.721825238 -0400
2035 @@ -81,6 +87,12 @@ RsDoWordIoDescriptor (
2036 UINT8 *OptionalFields;
2037 UINT16 StringLength = 0;
2038 UINT32 OptionIndex = 0;
2039 + UINT16 ResourceLength = 0;
2040 + UINT16 Minimum = 0;
2041 + UINT16 Maximum = 0;
2042 + UINT16 AddressLength = 0;
2043 + UINT16 Granularity = 0;
2044 + UINT16 TranslationOffset = 0;
2045 UINT32 CurrentByteOffset;
2047 BOOLEAN ResSourceIndex = FALSE;
2048 @@ -102,8 +101,7 @@ RsDoWordIoDescriptor (
2049 * optional fields present
2051 OptionalFields = ((UINT8 *) Descriptor) + sizeof (AML_RESOURCE_ADDRESS16);
2052 - Descriptor->Address16.ResourceLength = (UINT16)
2053 - (sizeof (AML_RESOURCE_ADDRESS16) -
2054 + ResourceLength = (UINT16) (sizeof (AML_RESOURCE_ADDRESS16) -
2055 sizeof (AML_RESOURCE_LARGE_HEADER));
2057 /* Process all child initialization nodes */
2058 @@ -147,7 +147,7 @@ RsDoWordIoDescriptor (
2060 case 5: /* Address Granularity */
2062 - Descriptor->Address16.Granularity = (UINT16) InitializerOp->Asl.Value.Integer;
2063 + Granularity = (UINT16) InitializerOp->Asl.Value.Integer;
2064 RsCreateWordField (InitializerOp, ACPI_RESTAG_GRANULARITY,
2065 CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.Granularity));
2066 GranOp = InitializerOp;
2067 @@ -155,7 +155,7 @@ RsDoWordIoDescriptor (
2069 case 6: /* Address Min */
2071 - Descriptor->Address16.Minimum = (UINT16) InitializerOp->Asl.Value.Integer;
2072 + Minimum = (UINT16) InitializerOp->Asl.Value.Integer;
2073 RsCreateWordField (InitializerOp, ACPI_RESTAG_MINADDR,
2074 CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.Minimum));
2075 MinOp = InitializerOp;
2076 @@ -163,7 +163,7 @@ RsDoWordIoDescriptor (
2078 case 7: /* Address Max */
2080 - Descriptor->Address16.Maximum = (UINT16) InitializerOp->Asl.Value.Integer;
2081 + Maximum = (UINT16) InitializerOp->Asl.Value.Integer;
2082 RsCreateWordField (InitializerOp, ACPI_RESTAG_MAXADDR,
2083 CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.Maximum));
2084 MaxOp = InitializerOp;
2085 @@ -171,14 +171,14 @@ RsDoWordIoDescriptor (
2087 case 8: /* Translation Offset */
2089 - Descriptor->Address16.TranslationOffset = (UINT16) InitializerOp->Asl.Value.Integer;
2090 + TranslationOffset = (UINT16) InitializerOp->Asl.Value.Integer;
2091 RsCreateWordField (InitializerOp, ACPI_RESTAG_TRANSLATION,
2092 CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.TranslationOffset));
2095 case 9: /* Address Length */
2097 - Descriptor->Address16.AddressLength = (UINT16) InitializerOp->Asl.Value.Integer;
2098 + AddressLength = (UINT16) InitializerOp->Asl.Value.Integer;
2099 RsCreateWordField (InitializerOp, ACPI_RESTAG_LENGTH,
2100 CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.AddressLength));
2101 LengthOp = InitializerOp;
2102 @@ -190,7 +190,7 @@ RsDoWordIoDescriptor (
2104 OptionalFields[0] = (UINT8) InitializerOp->Asl.Value.Integer;
2106 - Descriptor->Address16.ResourceLength++;
2108 ResSourceIndex = TRUE;
2111 @@ -202,8 +201,7 @@ RsDoWordIoDescriptor (
2115 - Descriptor->Address16.ResourceLength = (UINT16)
2116 - (Descriptor->Address16.ResourceLength + StringLength);
2117 + ResourceLength = (UINT16) (ResourceLength + StringLength);
2120 &OptionalFields[OptionIndex],
2121 @@ -263,13 +270,20 @@ RsDoWordIoDescriptor (
2122 /* Validate the Min/Max/Len/Gran values */
2124 RsLargeAddressCheck (
2125 - (UINT64) Descriptor->Address16.Minimum,
2126 - (UINT64) Descriptor->Address16.Maximum,
2127 - (UINT64) Descriptor->Address16.AddressLength,
2128 - (UINT64) Descriptor->Address16.Granularity,
2133 Descriptor->Address16.Flags,
2134 MinOp, MaxOp, LengthOp, GranOp, Info->DescriptorTypeOp);
2136 + ACPI_MOVE_16_TO_16(&Descriptor->Address16.ResourceLength, &ResourceLength);
2137 + ACPI_MOVE_16_TO_16(&Descriptor->Address16.Minimum, &Minimum);
2138 + ACPI_MOVE_16_TO_16(&Descriptor->Address16.Maximum, &Maximum);
2139 + ACPI_MOVE_16_TO_16(&Descriptor->Address16.AddressLength, &AddressLength);
2140 + ACPI_MOVE_16_TO_16(&Descriptor->Address16.Granularity, &Granularity);
2141 + ACPI_MOVE_16_TO_16(&Descriptor->Address16.TranslationOffset, &TranslationOffset);
2143 Rnode->BufferLength = sizeof (AML_RESOURCE_ADDRESS16) +
2144 OptionIndex + StringLength;
2146 @@ -302,6 +308,12 @@ RsDoWordBusNumberDescriptor (
2147 UINT8 *OptionalFields;
2148 UINT16 StringLength = 0;
2149 UINT32 OptionIndex = 0;
2150 + UINT16 ResourceLength = 0;
2151 + UINT16 Minimum = 0;
2152 + UINT16 Maximum = 0;
2153 + UINT16 AddressLength = 0;
2154 + UINT16 Granularity = 0;
2155 + UINT16 TranslationOffset = 0;
2156 UINT32 CurrentByteOffset;
2158 BOOLEAN ResSourceIndex = FALSE;
2159 @@ -323,8 +322,7 @@ RsDoWordBusNumberDescriptor (
2160 * optional fields present
2162 OptionalFields = ((UINT8 *) Descriptor) + sizeof (AML_RESOURCE_ADDRESS16);
2163 - Descriptor->Address16.ResourceLength = (UINT16)
2164 - (sizeof (AML_RESOURCE_ADDRESS16) -
2165 + ResourceLength = (UINT16) (sizeof (AML_RESOURCE_ADDRESS16) -
2166 sizeof (AML_RESOURCE_LARGE_HEADER));
2168 /* Process all child initialization nodes */
2169 @@ -361,8 +360,7 @@ RsDoWordBusNumberDescriptor (
2171 case 4: /* Address Granularity */
2173 - Descriptor->Address16.Granularity =
2174 - (UINT16) InitializerOp->Asl.Value.Integer;
2175 + Granularity = (UINT16) InitializerOp->Asl.Value.Integer;
2176 RsCreateWordField (InitializerOp, ACPI_RESTAG_GRANULARITY,
2177 CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.Granularity));
2178 GranOp = InitializerOp;
2179 @@ -370,8 +369,7 @@ RsDoWordBusNumberDescriptor (
2181 case 5: /* Min Address */
2183 - Descriptor->Address16.Minimum =
2184 - (UINT16) InitializerOp->Asl.Value.Integer;
2185 + Minimum = (UINT16) InitializerOp->Asl.Value.Integer;
2186 RsCreateWordField (InitializerOp, ACPI_RESTAG_MINADDR,
2187 CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.Minimum));
2188 MinOp = InitializerOp;
2189 @@ -379,8 +378,7 @@ RsDoWordBusNumberDescriptor (
2191 case 6: /* Max Address */
2193 - Descriptor->Address16.Maximum =
2194 - (UINT16) InitializerOp->Asl.Value.Integer;
2195 + Maximum = (UINT16) InitializerOp->Asl.Value.Integer;
2196 RsCreateWordField (InitializerOp, ACPI_RESTAG_MAXADDR,
2197 CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.Maximum));
2198 MaxOp = InitializerOp;
2199 @@ -388,16 +386,14 @@ RsDoWordBusNumberDescriptor (
2201 case 7: /* Translation Offset */
2203 - Descriptor->Address16.TranslationOffset =
2204 - (UINT16) InitializerOp->Asl.Value.Integer;
2205 + TranslationOffset = (UINT16) InitializerOp->Asl.Value.Integer;
2206 RsCreateWordField (InitializerOp, ACPI_RESTAG_TRANSLATION,
2207 CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.TranslationOffset));
2210 case 8: /* Address Length */
2212 - Descriptor->Address16.AddressLength =
2213 - (UINT16) InitializerOp->Asl.Value.Integer;
2214 + AddressLength = (UINT16) InitializerOp->Asl.Value.Integer;
2215 RsCreateWordField (InitializerOp, ACPI_RESTAG_LENGTH,
2216 CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.AddressLength));
2217 LengthOp = InitializerOp;
2218 @@ -409,7 +409,7 @@ RsDoWordBusNumberDescriptor (
2220 OptionalFields[0] = (UINT8) InitializerOp->Asl.Value.Integer;
2222 - Descriptor->Address16.ResourceLength++;
2224 ResSourceIndex = TRUE;
2227 @@ -421,8 +420,7 @@ RsDoWordBusNumberDescriptor (
2231 - Descriptor->Address16.ResourceLength = (UINT16)
2232 - (Descriptor->Address16.ResourceLength + StringLength);
2233 + ResourceLength = (UINT16) (ResourceLength + StringLength);
2236 &OptionalFields[OptionIndex],
2237 @@ -468,13 +475,20 @@ RsDoWordBusNumberDescriptor (
2238 /* Validate the Min/Max/Len/Gran values */
2240 RsLargeAddressCheck (
2241 - (UINT64) Descriptor->Address16.Minimum,
2242 - (UINT64) Descriptor->Address16.Maximum,
2243 - (UINT64) Descriptor->Address16.AddressLength,
2244 - (UINT64) Descriptor->Address16.Granularity,
2249 Descriptor->Address16.Flags,
2250 MinOp, MaxOp, LengthOp, GranOp, Info->DescriptorTypeOp);
2252 + ACPI_MOVE_16_TO_16(&Descriptor->Address16.ResourceLength, &ResourceLength);
2253 + ACPI_MOVE_16_TO_16(&Descriptor->Address16.Minimum, &Minimum);
2254 + ACPI_MOVE_16_TO_16(&Descriptor->Address16.Maximum, &Maximum);
2255 + ACPI_MOVE_16_TO_16(&Descriptor->Address16.AddressLength, &AddressLength);
2256 + ACPI_MOVE_16_TO_16(&Descriptor->Address16.Granularity, &Granularity);
2257 + ACPI_MOVE_16_TO_16(&Descriptor->Address16.TranslationOffset, &TranslationOffset);
2259 Rnode->BufferLength = sizeof (AML_RESOURCE_ADDRESS16) +
2260 OptionIndex + StringLength;
2262 @@ -507,6 +513,12 @@ RsDoWordSpaceDescriptor (
2263 UINT8 *OptionalFields;
2264 UINT16 StringLength = 0;
2265 UINT32 OptionIndex = 0;
2266 + UINT16 Minimum = 0;
2267 + UINT16 Maximum = 0;
2268 + UINT16 AddressLength = 0;
2269 + UINT16 Granularity = 0;
2270 + UINT16 TranslationOffset = 0;
2271 + UINT16 ResourceLength = 0;
2272 UINT32 CurrentByteOffset;
2274 BOOLEAN ResSourceIndex = FALSE;
2275 @@ -527,8 +526,7 @@ RsDoWordSpaceDescriptor (
2276 * optional fields present
2278 OptionalFields = ((UINT8 *) Descriptor) + sizeof (AML_RESOURCE_ADDRESS16);
2279 - Descriptor->Address16.ResourceLength = (UINT16)
2280 - (sizeof (AML_RESOURCE_ADDRESS16) -
2281 + ResourceLength = (UINT16) (sizeof (AML_RESOURCE_ADDRESS16) -
2282 sizeof (AML_RESOURCE_LARGE_HEADER));
2284 /* Process all child initialization nodes */
2285 @@ -577,8 +576,7 @@ RsDoWordSpaceDescriptor (
2287 case 6: /* Address Granularity */
2289 - Descriptor->Address16.Granularity =
2290 - (UINT16) InitializerOp->Asl.Value.Integer;
2291 + Granularity = (UINT16) InitializerOp->Asl.Value.Integer;
2292 RsCreateWordField (InitializerOp, ACPI_RESTAG_GRANULARITY,
2293 CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.Granularity));
2294 GranOp = InitializerOp;
2295 @@ -586,8 +585,7 @@ RsDoWordSpaceDescriptor (
2297 case 7: /* Min Address */
2299 - Descriptor->Address16.Minimum =
2300 - (UINT16) InitializerOp->Asl.Value.Integer;
2301 + Minimum = (UINT16) InitializerOp->Asl.Value.Integer;
2302 RsCreateWordField (InitializerOp, ACPI_RESTAG_MINADDR,
2303 CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.Minimum));
2304 MinOp = InitializerOp;
2305 @@ -595,8 +594,7 @@ RsDoWordSpaceDescriptor (
2307 case 8: /* Max Address */
2309 - Descriptor->Address16.Maximum =
2310 - (UINT16) InitializerOp->Asl.Value.Integer;
2311 + Maximum = (UINT16) InitializerOp->Asl.Value.Integer;
2312 RsCreateWordField (InitializerOp, ACPI_RESTAG_MAXADDR,
2313 CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.Maximum));
2314 MaxOp = InitializerOp;
2315 @@ -604,16 +602,14 @@ RsDoWordSpaceDescriptor (
2317 case 9: /* Translation Offset */
2319 - Descriptor->Address16.TranslationOffset =
2320 - (UINT16) InitializerOp->Asl.Value.Integer;
2321 + TranslationOffset = (UINT16) InitializerOp->Asl.Value.Integer;
2322 RsCreateWordField (InitializerOp, ACPI_RESTAG_TRANSLATION,
2323 CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.TranslationOffset));
2326 case 10: /* Address Length */
2328 - Descriptor->Address16.AddressLength =
2329 - (UINT16) InitializerOp->Asl.Value.Integer;
2330 + AddressLength = (UINT16) InitializerOp->Asl.Value.Integer;
2331 RsCreateWordField (InitializerOp, ACPI_RESTAG_LENGTH,
2332 CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.AddressLength));
2333 LengthOp = InitializerOp;
2334 @@ -625,7 +625,7 @@ RsDoWordSpaceDescriptor (
2336 OptionalFields[0] = (UINT8) InitializerOp->Asl.Value.Integer;
2338 - Descriptor->Address16.ResourceLength++;
2340 ResSourceIndex = TRUE;
2343 @@ -637,8 +636,7 @@ RsDoWordSpaceDescriptor (
2347 - Descriptor->Address16.ResourceLength = (UINT16)
2348 - (Descriptor->Address16.ResourceLength + StringLength);
2349 + ResourceLength = (UINT16) (ResourceLength + StringLength);
2352 &OptionalFields[OptionIndex],
2353 @@ -684,13 +691,20 @@ RsDoWordSpaceDescriptor (
2354 /* Validate the Min/Max/Len/Gran values */
2356 RsLargeAddressCheck (
2357 - (UINT64) Descriptor->Address16.Minimum,
2358 - (UINT64) Descriptor->Address16.Maximum,
2359 - (UINT64) Descriptor->Address16.AddressLength,
2360 - (UINT64) Descriptor->Address16.Granularity,
2365 Descriptor->Address16.Flags,
2366 MinOp, MaxOp, LengthOp, GranOp, Info->DescriptorTypeOp);
2368 + ACPI_MOVE_16_TO_16(&Descriptor->Address16.ResourceLength, &ResourceLength);
2369 + ACPI_MOVE_16_TO_16(&Descriptor->Address16.Minimum, &Minimum);
2370 + ACPI_MOVE_16_TO_16(&Descriptor->Address16.Maximum, &Maximum);
2371 + ACPI_MOVE_16_TO_16(&Descriptor->Address16.AddressLength, &AddressLength);
2372 + ACPI_MOVE_16_TO_16(&Descriptor->Address16.Granularity, &Granularity);
2373 + ACPI_MOVE_16_TO_16(&Descriptor->Address16.TranslationOffset, &TranslationOffset);
2375 Rnode->BufferLength = sizeof (AML_RESOURCE_ADDRESS16) +
2376 OptionIndex + StringLength;
2378 diff -up acpica-unix2-20140424/source/include/acmacros.h.debian-big_endian acpica-unix2-20140424/source/include/acmacros.h
2379 --- acpica-unix2-20140424/source/include/acmacros.h.debian-big_endian 2014-04-24 11:49:05.000000000 -0400
2380 +++ acpica-unix2-20140424/source/include/acmacros.h 2014-06-06 20:43:34.721825238 -0400
2383 /* 32-bit source, 16/32/64 destination */
2385 -#define ACPI_MOVE_32_TO_16(d, s) ACPI_MOVE_16_TO_16(d, s) /* Truncate to 16 */
2386 +#define ACPI_MOVE_32_TO_16(d, s) {(( UINT8 *)(void *)(d))[0] = ((UINT8 *)(void *)(s))[3];\
2387 + (( UINT8 *)(void *)(d))[1] = ((UINT8 *)(void *)(s))[2];}
2389 #define ACPI_MOVE_32_TO_32(d, s) {(( UINT8 *)(void *)(d))[0] = ((UINT8 *)(void *)(s))[3];\
2390 (( UINT8 *)(void *)(d))[1] = ((UINT8 *)(void *)(s))[2];\
2391 @@ -126,9 +127,13 @@
2393 /* 64-bit source, 16/32/64 destination */
2395 -#define ACPI_MOVE_64_TO_16(d, s) ACPI_MOVE_16_TO_16(d, s) /* Truncate to 16 */
2396 +#define ACPI_MOVE_64_TO_16(d, s) {(( UINT8 *)(void *)(d))[0] = ((UINT8 *)(void *)(s))[7];\
2397 + (( UINT8 *)(void *)(d))[1] = ((UINT8 *)(void *)(s))[6];}
2399 -#define ACPI_MOVE_64_TO_32(d, s) ACPI_MOVE_32_TO_32(d, s) /* Truncate to 32 */
2400 +#define ACPI_MOVE_64_TO_32(d, s) {(( UINT8 *)(void *)(d))[0] = ((UINT8 *)(void *)(s))[7];\
2401 + (( UINT8 *)(void *)(d))[1] = ((UINT8 *)(void *)(s))[6];\
2402 + (( UINT8 *)(void *)(d))[2] = ((UINT8 *)(void *)(s))[5];\
2403 + (( UINT8 *)(void *)(d))[3] = ((UINT8 *)(void *)(s))[4];}
2405 #define ACPI_MOVE_64_TO_64(d, s) {(( UINT8 *)(void *)(d))[0] = ((UINT8 *)(void *)(s))[7];\
2406 (( UINT8 *)(void *)(d))[1] = ((UINT8 *)(void *)(s))[6];\
2409 /* 32-bit source, 16/32/64 destination */
2411 -#define ACPI_MOVE_32_TO_16(d, s) ACPI_MOVE_16_TO_16(d, s) /* Truncate to 16 */
2412 +#define ACPI_MOVE_32_TO_16(d, s) {(( UINT8 *)(void *)(d))[0] = ((UINT8 *)(void *)(s))[0];\
2413 + (( UINT8 *)(void *)(d))[1] = ((UINT8 *)(void *)(s))[1];}
2415 #define ACPI_MOVE_32_TO_32(d, s) *(UINT32 *)(void *)(d) = *(UINT32 *)(void *)(s)
2416 #define ACPI_MOVE_32_TO_64(d, s) *(UINT64 *)(void *)(d) = *(UINT32 *)(void *)(s)
2418 diff -up acpica-unix2-20140424/source/include/platform/aclinux.h.debian-big_endian acpica-unix2-20140424/source/include/platform/aclinux.h
2419 --- acpica-unix2-20140424/source/include/platform/aclinux.h.debian-big_endian 2014-04-24 11:49:06.000000000 -0400
2420 +++ acpica-unix2-20140424/source/include/platform/aclinux.h 2014-06-06 20:44:28.781825238 -0400
2425 +#include <endian.h>
2427 /* Define/disable kernel-specific declarators */
2430 #define ACPI_FLUSH_CPU_CACHE()
2431 #define ACPI_CAST_PTHREAD_T(Pthread) ((ACPI_THREAD_ID) (Pthread))
2433 -#if defined(__ia64__) || defined(__x86_64__) ||\
2434 - defined(__aarch64__) || defined(__PPC64__)
2435 +#if __SIZEOF_LONG__ == 8
2436 #define ACPI_MACHINE_WIDTH 64
2437 #define COMPILER_DEPENDENT_INT64 long
2438 #define COMPILER_DEPENDENT_UINT64 unsigned long
2439 @@ -191,6 +191,10 @@
2440 #define ACPI_USE_NATIVE_DIVIDE
2443 +#if __BYTE_ORDER == __BIG_ENDIAN
2444 +#define ACPI_BIG_ENDIAN