Deleted Added
full compact
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__ */