amlcode.h (85756) | amlcode.h (87031) |
---|---|
1/****************************************************************************** 2 * 3 * Name: amlcode.h - Definitions for AML, as included in "definition blocks" 4 * Declarations and definitions contained herein are derived 5 * directly from the ACPI specification. | 1/****************************************************************************** 2 * 3 * Name: amlcode.h - Definitions for AML, as included in "definition blocks" 4 * Declarations and definitions contained herein are derived 5 * directly from the ACPI specification. |
6 * $Revision: 58 $ | 6 * $Revision: 62 $ |
7 * 8 *****************************************************************************/ 9 10/****************************************************************************** 11 * 12 * 1. Copyright Notice 13 * 14 * Some or all of this work - Copyright (c) 1999, 2000, 2001, Intel Corp. --- 338 unchanged lines hidden (view full) --- 353 * opcode groups and types 354 */ 355 356#define OPGRP_NAMED 0x01 357#define OPGRP_FIELD 0x02 358#define OPGRP_BYTELIST 0x04 359 360 | 7 * 8 *****************************************************************************/ 9 10/****************************************************************************** 11 * 12 * 1. Copyright Notice 13 * 14 * Some or all of this work - Copyright (c) 1999, 2000, 2001, Intel Corp. --- 338 unchanged lines hidden (view full) --- 353 * opcode groups and types 354 */ 355 356#define OPGRP_NAMED 0x01 357#define OPGRP_FIELD 0x02 358#define OPGRP_BYTELIST 0x04 359 360 |
361/* 362 * Opcode information | 361/* 362 * Opcode information |
363 */ 364 365/* Opcode flags */ 366 367#define AML_HAS_ARGS 0x0800 368#define AML_HAS_TARGET 0x0400 369#define AML_HAS_RETVAL 0x0200 370#define AML_NSOBJECT 0x0100 --- 57 unchanged lines hidden (view full) --- 428#define AML_TYPE_NAMED_SIMPLE 0x15 429#define AML_TYPE_NAMED_COMPLEX 0x16 430#define AML_TYPE_RETURN 0x17 431 432#define AML_TYPE_UNDEFINED 0x18 433#define AML_TYPE_BOGUS 0x19 434 435 | 363 */ 364 365/* Opcode flags */ 366 367#define AML_HAS_ARGS 0x0800 368#define AML_HAS_TARGET 0x0400 369#define AML_HAS_RETVAL 0x0200 370#define AML_NSOBJECT 0x0100 --- 57 unchanged lines hidden (view full) --- 428#define AML_TYPE_NAMED_SIMPLE 0x15 429#define AML_TYPE_NAMED_COMPLEX 0x16 430#define AML_TYPE_RETURN 0x17 431 432#define AML_TYPE_UNDEFINED 0x18 433#define AML_TYPE_BOGUS 0x19 434 435 |
436/* 437 * Opcode classes | 436/* 437 * Opcode classes |
438 */ 439#define AML_CLASS_EXECUTE 0x00 440#define AML_CLASS_CREATE 0x01 441#define AML_CLASS_ARGUMENT 0x02 442#define AML_CLASS_NAMED_OBJECT 0x03 443#define AML_CLASS_CONTROL 0x04 444#define AML_CLASS_ASCII 0x05 445#define AML_CLASS_PREFIX 0x06 --- 30 unchanged lines hidden (view full) --- 476 MATCH_MGE = 4, 477 MATCH_MGT = 5 478 479} AML_MATCH_OPERATOR; 480 481#define MAX_MATCH_OPERATOR 5 482 483 | 438 */ 439#define AML_CLASS_EXECUTE 0x00 440#define AML_CLASS_CREATE 0x01 441#define AML_CLASS_ARGUMENT 0x02 442#define AML_CLASS_NAMED_OBJECT 0x03 443#define AML_CLASS_CONTROL 0x04 444#define AML_CLASS_ASCII 0x05 445#define AML_CLASS_PREFIX 0x06 --- 30 unchanged lines hidden (view full) --- 476 MATCH_MGE = 4, 477 MATCH_MGT = 5 478 479} AML_MATCH_OPERATOR; 480 481#define MAX_MATCH_OPERATOR 5 482 483 |
484/* Field Access Types */ | 484/* 485 * FieldFlags 486 * 487 * This byte is extracted from the AML and includes three separate 488 * pieces of information about the field: 489 * 1) The field access type 490 * 2) The field update rule 491 * 3) The lock rule for the field 492 * 493 * Bits 00 - 03 : AccessType (AnyAcc, ByteAcc, etc.) 494 * 04 : LockRule (1 == Lock) 495 * 05 - 06 : UpdateRule 496 */ 497#define AML_FIELD_ACCESS_TYPE_MASK 0x0F 498#define AML_FIELD_LOCK_RULE_MASK 0x10 499#define AML_FIELD_UPDATE_RULE_MASK 0x60 |
485 | 500 |
486#define ACCESS_TYPE_MASK 0x0f 487#define ACCESS_TYPE_SHIFT 0 | |
488 | 501 |
502/* 1) Field Access Types */ 503 |
|
489typedef enum 490{ | 504typedef enum 505{ |
491 ACCESS_ANY_ACC = 0, 492 ACCESS_BYTE_ACC = 1, 493 ACCESS_WORD_ACC = 2, 494 ACCESS_DWORD_ACC = 3, 495 ACCESS_QWORD_ACC = 4, /* ACPI 2.0 */ 496 ACCESS_BLOCK_ACC = 4, 497 ACCESS_SMBSEND_RECV_ACC = 5, 498 ACCESS_SMBQUICK_ACC = 6 | 506 AML_FIELD_ACCESS_ANY = 0x00, 507 AML_FIELD_ACCESS_BYTE = 0x01, 508 AML_FIELD_ACCESS_WORD = 0x02, 509 AML_FIELD_ACCESS_DWORD = 0x03, 510 AML_FIELD_ACCESS_QWORD = 0x04, /* ACPI 2.0 */ 511 AML_FIELD_ACCESS_BUFFER = 0x05, /* ACPI 2.0 */ |
499 500} AML_ACCESS_TYPE; 501 502 | 512 513} AML_ACCESS_TYPE; 514 515 |
503/* Field Lock Rules */ | 516/* 2) Field Lock Rules */ |
504 | 517 |
505#define LOCK_RULE_MASK 0x10 506#define LOCK_RULE_SHIFT 4 507 | |
508typedef enum 509{ | 518typedef enum 519{ |
510 GLOCK_NEVER_LOCK = 0, 511 GLOCK_ALWAYS_LOCK = 1 | 520 AML_FIELD_LOCK_NEVER = 0x00, 521 AML_FIELD_LOCK_ALWAYS = 0x10, |
512 513} AML_LOCK_RULE; 514 515 | 522 523} AML_LOCK_RULE; 524 525 |
516/* Field Update Rules */ | 526/* 3) Field Update Rules */ |
517 | 527 |
518#define UPDATE_RULE_MASK 0x060 519#define UPDATE_RULE_SHIFT 5 520 | |
521typedef enum 522{ | 528typedef enum 529{ |
523 UPDATE_PRESERVE = 0, 524 UPDATE_WRITE_AS_ONES = 1, 525 UPDATE_WRITE_AS_ZEROS = 2 | 530 AML_FIELD_UPDATE_PRESERVE = 0x00, 531 AML_FIELD_UPDATE_WRITE_AS_ONES = 0x20, 532 AML_FIELD_UPDATE_WRITE_AS_ZEROS = 0x40, |
526 527} AML_UPDATE_RULE; 528 529 | 533 534} AML_UPDATE_RULE; 535 536 |
537/* 538 * Field Access Attributes. 539 * This byte is extracted from the AML via the 540 * AccessAs keyword 541 */ 542typedef enum 543{ 544 AML_FIELD_ATTRIB_SMB_QUICK = 0x02, 545 AML_FIELD_ATTRIB_SMB_SEND_RCV = 0x04, 546 AML_FIELD_ATTRIB_SMB_BYTE = 0x06, 547 AML_FIELD_ATTRIB_SMB_WORD = 0x08, 548 AML_FIELD_ATTRIB_SMB_BLOCK = 0x0A, 549 AML_FIELD_ATTRIB_SMB_CALL = 0x0E, 550 551} AML_ACCESS_ATTRIBUTE; 552 553 |
|
530/* bit fields in MethodFlags byte */ 531 532#define METHOD_FLAGS_ARG_COUNT 0x07 533#define METHOD_FLAGS_SERIALIZED 0x08 534#define METHOD_FLAGS_SYNCH_LEVEL 0xF0 535 536 537/* Array sizes. Used for range checking also */ 538 | 554/* bit fields in MethodFlags byte */ 555 556#define METHOD_FLAGS_ARG_COUNT 0x07 557#define METHOD_FLAGS_SERIALIZED 0x08 558#define METHOD_FLAGS_SYNCH_LEVEL 0xF0 559 560 561/* Array sizes. Used for range checking also */ 562 |
539#define NUM_REGION_TYPES 7 540#define NUM_ACCESS_TYPES 7 | 563#define NUM_ACCESS_TYPES 6 |
541#define NUM_UPDATE_RULES 3 542#define NUM_MATCH_OPS 7 543#define NUM_OPCODES 256 544#define NUM_FIELD_NAMES 2 545 546 | 564#define NUM_UPDATE_RULES 3 565#define NUM_MATCH_OPS 7 566#define NUM_OPCODES 256 567#define NUM_FIELD_NAMES 2 568 569 |
547#define USER_REGION_BEGIN 0x80 548 549 | |
550#endif /* __AMLCODE_H__ */ | 570#endif /* __AMLCODE_H__ */ |