Subversion Repositories Kolibri OS

Rev

Rev 6591 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
6591 serge 1
/******************************************************************************
2
 *
3
 * Name: actbl3.h - ACPI Table Definitions
4
 *
5
 *****************************************************************************/
6
 
7
/*
7143 serge 8
 * Copyright (C) 2000 - 2016, Intel Corp.
6591 serge 9
 * All rights reserved.
10
 *
11
 * Redistribution and use in source and binary forms, with or without
12
 * modification, are permitted provided that the following conditions
13
 * are met:
14
 * 1. Redistributions of source code must retain the above copyright
15
 *    notice, this list of conditions, and the following disclaimer,
16
 *    without modification.
17
 * 2. Redistributions in binary form must reproduce at minimum a disclaimer
18
 *    substantially similar to the "NO WARRANTY" disclaimer below
19
 *    ("Disclaimer") and any redistribution must be conditioned upon
20
 *    including a substantially similar Disclaimer requirement for further
21
 *    binary redistribution.
22
 * 3. Neither the names of the above-listed copyright holders nor the names
23
 *    of any contributors may be used to endorse or promote products derived
24
 *    from this software without specific prior written permission.
25
 *
26
 * Alternatively, this software may be distributed under the terms of the
27
 * GNU General Public License ("GPL") version 2 as published by the Free
28
 * Software Foundation.
29
 *
30
 * NO WARRANTY
31
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
32
 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
33
 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
34
 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
35
 * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
36
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
37
 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
38
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
39
 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
40
 * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
41
 * POSSIBILITY OF SUCH DAMAGES.
42
 */
43
 
44
#ifndef __ACTBL3_H__
45
#define __ACTBL3_H__
46
 
47
/*******************************************************************************
48
 *
49
 * Additional ACPI Tables (3)
50
 *
51
 * These tables are not consumed directly by the ACPICA subsystem, but are
52
 * included here to support device drivers and the AML disassembler.
53
 *
54
 * In general, the tables in this file are fully defined within the ACPI
55
 * specification.
56
 *
57
 ******************************************************************************/
58
 
59
/*
60
 * Values for description table header signatures for tables defined in this
61
 * file. Useful because they make it more difficult to inadvertently type in
62
 * the wrong signature.
63
 */
64
#define ACPI_SIG_BGRT           "BGRT"	/* Boot Graphics Resource Table */
65
#define ACPI_SIG_DRTM           "DRTM"	/* Dynamic Root of Trust for Measurement table */
66
#define ACPI_SIG_FPDT           "FPDT"	/* Firmware Performance Data Table */
67
#define ACPI_SIG_GTDT           "GTDT"	/* Generic Timer Description Table */
68
#define ACPI_SIG_MPST           "MPST"	/* Memory Power State Table */
69
#define ACPI_SIG_PCCT           "PCCT"	/* Platform Communications Channel Table */
70
#define ACPI_SIG_PMTT           "PMTT"	/* Platform Memory Topology Table */
71
#define ACPI_SIG_RASF           "RASF"	/* RAS Feature table */
72
#define ACPI_SIG_STAO           "STAO"	/* Status Override table */
73
#define ACPI_SIG_WPBT           "WPBT"	/* Windows Platform Binary Table */
74
#define ACPI_SIG_XENV           "XENV"	/* Xen Environment table */
75
 
76
#define ACPI_SIG_S3PT           "S3PT"	/* S3 Performance (sub)Table */
77
#define ACPI_SIG_PCCS           "PCC"	/* PCC Shared Memory Region */
78
 
79
/* Reserved table signatures */
80
 
81
#define ACPI_SIG_MATR           "MATR"	/* Memory Address Translation Table */
82
#define ACPI_SIG_MSDM           "MSDM"	/* Microsoft Data Management Table */
83
 
84
/*
85
 * All tables must be byte-packed to match the ACPI specification, since
86
 * the tables are provided by the system BIOS.
87
 */
88
#pragma pack(1)
89
 
90
/*
91
 * Note: C bitfields are not used for this reason:
92
 *
93
 * "Bitfields are great and easy to read, but unfortunately the C language
94
 * does not specify the layout of bitfields in memory, which means they are
95
 * essentially useless for dealing with packed data in on-disk formats or
96
 * binary wire protocols." (Or ACPI tables and buffers.) "If you ask me,
97
 * this decision was a design error in C. Ritchie could have picked an order
98
 * and stuck with it." Norman Ramsey.
99
 * See http://stackoverflow.com/a/1053662/41661
100
 */
101
 
102
/*******************************************************************************
103
 *
104
 * BGRT - Boot Graphics Resource Table (ACPI 5.0)
105
 *        Version 1
106
 *
107
 ******************************************************************************/
108
 
109
struct acpi_table_bgrt {
110
	struct acpi_table_header header;	/* Common ACPI table header */
111
	u16 version;
112
	u8 status;
113
	u8 image_type;
114
	u64 image_address;
115
	u32 image_offset_x;
116
	u32 image_offset_y;
117
};
118
 
119
/*******************************************************************************
120
 *
121
 * DRTM - Dynamic Root of Trust for Measurement table
122
 * Conforms to "TCG D-RTM Architecture" June 17 2013, Version 1.0.0
123
 * Table version 1
124
 *
125
 ******************************************************************************/
126
 
127
struct acpi_table_drtm {
128
	struct acpi_table_header header;	/* Common ACPI table header */
129
	u64 entry_base_address;
130
	u64 entry_length;
131
	u32 entry_address32;
132
	u64 entry_address64;
133
	u64 exit_address;
134
	u64 log_area_address;
135
	u32 log_area_length;
136
	u64 arch_dependent_address;
137
	u32 flags;
138
};
139
 
140
/* Flag Definitions for above */
141
 
142
#define ACPI_DRTM_ACCESS_ALLOWED            (1)
143
#define ACPI_DRTM_ENABLE_GAP_CODE           (1<<1)
144
#define ACPI_DRTM_INCOMPLETE_MEASUREMENTS   (1<<2)
145
#define ACPI_DRTM_AUTHORITY_ORDER           (1<<3)
146
 
147
/* 1) Validated Tables List (64-bit addresses) */
148
 
149
struct acpi_drtm_vtable_list {
150
	u32 validated_table_count;
151
	u64 validated_tables[1];
152
};
153
 
154
/* 2) Resources List (of Resource Descriptors) */
155
 
156
/* Resource Descriptor */
157
 
158
struct acpi_drtm_resource {
159
	u8 size[7];
160
	u8 type;
161
	u64 address;
162
};
163
 
164
struct acpi_drtm_resource_list {
165
	u32 resource_count;
166
	struct acpi_drtm_resource resources[1];
167
};
168
 
169
/* 3) Platform-specific Identifiers List */
170
 
171
struct acpi_drtm_dps_id {
172
	u32 dps_id_length;
173
	u8 dps_id[16];
174
};
175
 
176
/*******************************************************************************
177
 *
178
 * FPDT - Firmware Performance Data Table (ACPI 5.0)
179
 *        Version 1
180
 *
181
 ******************************************************************************/
182
 
183
struct acpi_table_fpdt {
184
	struct acpi_table_header header;	/* Common ACPI table header */
185
};
186
 
187
/* FPDT subtable header */
188
 
189
struct acpi_fpdt_header {
190
	u16 type;
191
	u8 length;
192
	u8 revision;
193
};
194
 
195
/* Values for Type field above */
196
 
197
enum acpi_fpdt_type {
198
	ACPI_FPDT_TYPE_BOOT = 0,
199
	ACPI_FPDT_TYPE_S3PERF = 1
200
};
201
 
202
/*
203
 * FPDT subtables
204
 */
205
 
206
/* 0: Firmware Basic Boot Performance Record */
207
 
208
struct acpi_fpdt_boot {
209
	struct acpi_fpdt_header header;
210
	u8 reserved[4];
211
	u64 reset_end;
212
	u64 load_start;
213
	u64 startup_start;
214
	u64 exit_services_entry;
215
	u64 exit_services_exit;
216
};
217
 
218
/* 1: S3 Performance Table Pointer Record */
219
 
220
struct acpi_fpdt_s3pt_ptr {
221
	struct acpi_fpdt_header header;
222
	u8 reserved[4];
223
	u64 address;
224
};
225
 
226
/*
227
 * S3PT - S3 Performance Table. This table is pointed to by the
228
 * FPDT S3 Pointer Record above.
229
 */
230
struct acpi_table_s3pt {
231
	u8 signature[4];	/* "S3PT" */
232
	u32 length;
233
};
234
 
235
/*
236
 * S3PT Subtables
237
 */
238
struct acpi_s3pt_header {
239
	u16 type;
240
	u8 length;
241
	u8 revision;
242
};
243
 
244
/* Values for Type field above */
245
 
246
enum acpi_s3pt_type {
247
	ACPI_S3PT_TYPE_RESUME = 0,
248
	ACPI_S3PT_TYPE_SUSPEND = 1
249
};
250
 
251
struct acpi_s3pt_resume {
252
	struct acpi_s3pt_header header;
253
	u32 resume_count;
254
	u64 full_resume;
255
	u64 average_resume;
256
};
257
 
258
struct acpi_s3pt_suspend {
259
	struct acpi_s3pt_header header;
260
	u64 suspend_start;
261
	u64 suspend_end;
262
};
263
 
264
/*******************************************************************************
265
 *
266
 * GTDT - Generic Timer Description Table (ACPI 5.1)
267
 *        Version 2
268
 *
269
 ******************************************************************************/
270
 
271
struct acpi_table_gtdt {
272
	struct acpi_table_header header;	/* Common ACPI table header */
273
	u64 counter_block_addresss;
274
	u32 reserved;
275
	u32 secure_el1_interrupt;
276
	u32 secure_el1_flags;
277
	u32 non_secure_el1_interrupt;
278
	u32 non_secure_el1_flags;
279
	u32 virtual_timer_interrupt;
280
	u32 virtual_timer_flags;
281
	u32 non_secure_el2_interrupt;
282
	u32 non_secure_el2_flags;
283
	u64 counter_read_block_address;
284
	u32 platform_timer_count;
285
	u32 platform_timer_offset;
286
};
287
 
288
/* Flag Definitions: Timer Block Physical Timers and Virtual timers */
289
 
290
#define ACPI_GTDT_INTERRUPT_MODE        (1)
291
#define ACPI_GTDT_INTERRUPT_POLARITY    (1<<1)
292
#define ACPI_GTDT_ALWAYS_ON             (1<<2)
293
 
294
/* Common GTDT subtable header */
295
 
296
struct acpi_gtdt_header {
297
	u8 type;
298
	u16 length;
299
};
300
 
301
/* Values for GTDT subtable type above */
302
 
303
enum acpi_gtdt_type {
304
	ACPI_GTDT_TYPE_TIMER_BLOCK = 0,
305
	ACPI_GTDT_TYPE_WATCHDOG = 1,
306
	ACPI_GTDT_TYPE_RESERVED = 2	/* 2 and greater are reserved */
307
};
308
 
309
/* GTDT Subtables, correspond to Type in struct acpi_gtdt_header */
310
 
311
/* 0: Generic Timer Block */
312
 
313
struct acpi_gtdt_timer_block {
314
	struct acpi_gtdt_header header;
315
	u8 reserved;
316
	u64 block_address;
317
	u32 timer_count;
318
	u32 timer_offset;
319
};
320
 
321
/* Timer Sub-Structure, one per timer */
322
 
323
struct acpi_gtdt_timer_entry {
324
	u8 frame_number;
325
	u8 reserved[3];
326
	u64 base_address;
327
	u64 el0_base_address;
328
	u32 timer_interrupt;
329
	u32 timer_flags;
330
	u32 virtual_timer_interrupt;
331
	u32 virtual_timer_flags;
332
	u32 common_flags;
333
};
334
 
335
/* Flag Definitions: timer_flags and virtual_timer_flags above */
336
 
337
#define ACPI_GTDT_GT_IRQ_MODE               (1)
338
#define ACPI_GTDT_GT_IRQ_POLARITY           (1<<1)
339
 
340
/* Flag Definitions: common_flags above */
341
 
342
#define ACPI_GTDT_GT_IS_SECURE_TIMER        (1)
343
#define ACPI_GTDT_GT_ALWAYS_ON              (1<<1)
344
 
345
/* 1: SBSA Generic Watchdog Structure */
346
 
347
struct acpi_gtdt_watchdog {
348
	struct acpi_gtdt_header header;
349
	u8 reserved;
350
	u64 refresh_frame_address;
351
	u64 control_frame_address;
352
	u32 timer_interrupt;
353
	u32 timer_flags;
354
};
355
 
356
/* Flag Definitions: timer_flags above */
357
 
358
#define ACPI_GTDT_WATCHDOG_IRQ_MODE         (1)
359
#define ACPI_GTDT_WATCHDOG_IRQ_POLARITY     (1<<1)
360
#define ACPI_GTDT_WATCHDOG_SECURE           (1<<2)
361
 
362
/*******************************************************************************
363
 *
364
 * MPST - Memory Power State Table (ACPI 5.0)
365
 *        Version 1
366
 *
367
 ******************************************************************************/
368
 
369
#define ACPI_MPST_CHANNEL_INFO \
370
	u8                              channel_id; \
371
	u8                              reserved1[3]; \
372
	u16                             power_node_count; \
373
	u16                             reserved2;
374
 
375
/* Main table */
376
 
377
struct acpi_table_mpst {
378
	struct acpi_table_header header;	/* Common ACPI table header */
379
	 ACPI_MPST_CHANNEL_INFO	/* Platform Communication Channel */
380
};
381
 
382
/* Memory Platform Communication Channel Info */
383
 
384
struct acpi_mpst_channel {
385
	ACPI_MPST_CHANNEL_INFO	/* Platform Communication Channel */
386
};
387
 
388
/* Memory Power Node Structure */
389
 
390
struct acpi_mpst_power_node {
391
	u8 flags;
392
	u8 reserved1;
393
	u16 node_id;
394
	u32 length;
395
	u64 range_address;
396
	u64 range_length;
397
	u32 num_power_states;
398
	u32 num_physical_components;
399
};
400
 
401
/* Values for Flags field above */
402
 
403
#define ACPI_MPST_ENABLED               1
404
#define ACPI_MPST_POWER_MANAGED         2
405
#define ACPI_MPST_HOT_PLUG_CAPABLE      4
406
 
407
/* Memory Power State Structure (follows POWER_NODE above) */
408
 
409
struct acpi_mpst_power_state {
410
	u8 power_state;
411
	u8 info_index;
412
};
413
 
414
/* Physical Component ID Structure (follows POWER_STATE above) */
415
 
416
struct acpi_mpst_component {
417
	u16 component_id;
418
};
419
 
420
/* Memory Power State Characteristics Structure (follows all POWER_NODEs) */
421
 
422
struct acpi_mpst_data_hdr {
423
	u16 characteristics_count;
424
	u16 reserved;
425
};
426
 
427
struct acpi_mpst_power_data {
428
	u8 structure_id;
429
	u8 flags;
430
	u16 reserved1;
431
	u32 average_power;
432
	u32 power_saving;
433
	u64 exit_latency;
434
	u64 reserved2;
435
};
436
 
437
/* Values for Flags field above */
438
 
439
#define ACPI_MPST_PRESERVE              1
440
#define ACPI_MPST_AUTOENTRY             2
441
#define ACPI_MPST_AUTOEXIT              4
442
 
443
/* Shared Memory Region (not part of an ACPI table) */
444
 
445
struct acpi_mpst_shared {
446
	u32 signature;
447
	u16 pcc_command;
448
	u16 pcc_status;
449
	u32 command_register;
450
	u32 status_register;
451
	u32 power_state_id;
452
	u32 power_node_id;
453
	u64 energy_consumed;
454
	u64 average_power;
455
};
456
 
457
/*******************************************************************************
458
 *
459
 * PCCT - Platform Communications Channel Table (ACPI 5.0)
460
 *        Version 1
461
 *
462
 ******************************************************************************/
463
 
464
struct acpi_table_pcct {
465
	struct acpi_table_header header;	/* Common ACPI table header */
466
	u32 flags;
467
	u64 reserved;
468
};
469
 
470
/* Values for Flags field above */
471
 
472
#define ACPI_PCCT_DOORBELL              1
473
 
474
/* Values for subtable type in struct acpi_subtable_header */
475
 
476
enum acpi_pcct_type {
477
	ACPI_PCCT_TYPE_GENERIC_SUBSPACE = 0,
478
	ACPI_PCCT_TYPE_HW_REDUCED_SUBSPACE = 1,
479
	ACPI_PCCT_TYPE_RESERVED = 2	/* 2 and greater are reserved */
480
};
481
 
482
/*
483
 * PCCT Subtables, correspond to Type in struct acpi_subtable_header
484
 */
485
 
486
/* 0: Generic Communications Subspace */
487
 
488
struct acpi_pcct_subspace {
489
	struct acpi_subtable_header header;
490
	u8 reserved[6];
491
	u64 base_address;
492
	u64 length;
493
	struct acpi_generic_address doorbell_register;
494
	u64 preserve_mask;
495
	u64 write_mask;
496
	u32 latency;
497
	u32 max_access_rate;
498
	u16 min_turnaround_time;
499
};
500
 
501
/* 1: HW-reduced Communications Subspace (ACPI 5.1) */
502
 
503
struct acpi_pcct_hw_reduced {
504
	struct acpi_subtable_header header;
505
	u32 doorbell_interrupt;
506
	u8 flags;
507
	u8 reserved;
508
	u64 base_address;
509
	u64 length;
510
	struct acpi_generic_address doorbell_register;
511
	u64 preserve_mask;
512
	u64 write_mask;
513
	u32 latency;
514
	u32 max_access_rate;
515
	u16 min_turnaround_time;
516
};
517
 
518
/* Values for doorbell flags above */
519
 
520
#define ACPI_PCCT_INTERRUPT_POLARITY    (1)
521
#define ACPI_PCCT_INTERRUPT_MODE        (1<<1)
522
 
523
/*
524
 * PCC memory structures (not part of the ACPI table)
525
 */
526
 
527
/* Shared Memory Region */
528
 
529
struct acpi_pcct_shared_memory {
530
	u32 signature;
531
	u16 command;
532
	u16 status;
533
};
534
 
535
/*******************************************************************************
536
 *
537
 * PMTT - Platform Memory Topology Table (ACPI 5.0)
538
 *        Version 1
539
 *
540
 ******************************************************************************/
541
 
542
struct acpi_table_pmtt {
543
	struct acpi_table_header header;	/* Common ACPI table header */
544
	u32 reserved;
545
};
546
 
547
/* Common header for PMTT subtables that follow main table */
548
 
549
struct acpi_pmtt_header {
550
	u8 type;
551
	u8 reserved1;
552
	u16 length;
553
	u16 flags;
554
	u16 reserved2;
555
};
556
 
557
/* Values for Type field above */
558
 
559
#define ACPI_PMTT_TYPE_SOCKET           0
560
#define ACPI_PMTT_TYPE_CONTROLLER       1
561
#define ACPI_PMTT_TYPE_DIMM             2
562
#define ACPI_PMTT_TYPE_RESERVED         3	/* 0x03-0xFF are reserved */
563
 
564
/* Values for Flags field above */
565
 
566
#define ACPI_PMTT_TOP_LEVEL             0x0001
567
#define ACPI_PMTT_PHYSICAL              0x0002
568
#define ACPI_PMTT_MEMORY_TYPE           0x000C
569
 
570
/*
571
 * PMTT subtables, correspond to Type in struct acpi_pmtt_header
572
 */
573
 
574
/* 0: Socket Structure */
575
 
576
struct acpi_pmtt_socket {
577
	struct acpi_pmtt_header header;
578
	u16 socket_id;
579
	u16 reserved;
580
};
581
 
582
/* 1: Memory Controller subtable */
583
 
584
struct acpi_pmtt_controller {
585
	struct acpi_pmtt_header header;
586
	u32 read_latency;
587
	u32 write_latency;
588
	u32 read_bandwidth;
589
	u32 write_bandwidth;
590
	u16 access_width;
591
	u16 alignment;
592
	u16 reserved;
593
	u16 domain_count;
594
};
595
 
596
/* 1a: Proximity Domain substructure */
597
 
598
struct acpi_pmtt_domain {
599
	u32 proximity_domain;
600
};
601
 
602
/* 2: Physical Component Identifier (DIMM) */
603
 
604
struct acpi_pmtt_physical_component {
605
	struct acpi_pmtt_header header;
606
	u16 component_id;
607
	u16 reserved;
608
	u32 memory_size;
609
	u32 bios_handle;
610
};
611
 
612
/*******************************************************************************
613
 *
614
 * RASF - RAS Feature Table (ACPI 5.0)
615
 *        Version 1
616
 *
617
 ******************************************************************************/
618
 
619
struct acpi_table_rasf {
620
	struct acpi_table_header header;	/* Common ACPI table header */
621
	u8 channel_id[12];
622
};
623
 
624
/* RASF Platform Communication Channel Shared Memory Region */
625
 
626
struct acpi_rasf_shared_memory {
627
	u32 signature;
628
	u16 command;
629
	u16 status;
630
	u16 version;
631
	u8 capabilities[16];
632
	u8 set_capabilities[16];
633
	u16 num_parameter_blocks;
634
	u32 set_capabilities_status;
635
};
636
 
637
/* RASF Parameter Block Structure Header */
638
 
639
struct acpi_rasf_parameter_block {
640
	u16 type;
641
	u16 version;
642
	u16 length;
643
};
644
 
645
/* RASF Parameter Block Structure for PATROL_SCRUB */
646
 
647
struct acpi_rasf_patrol_scrub_parameter {
648
	struct acpi_rasf_parameter_block header;
649
	u16 patrol_scrub_command;
650
	u64 requested_address_range[2];
651
	u64 actual_address_range[2];
652
	u16 flags;
653
	u8 requested_speed;
654
};
655
 
656
/* Masks for Flags and Speed fields above */
657
 
658
#define ACPI_RASF_SCRUBBER_RUNNING      1
659
#define ACPI_RASF_SPEED                 (7<<1)
660
#define ACPI_RASF_SPEED_SLOW            (0<<1)
661
#define ACPI_RASF_SPEED_MEDIUM          (4<<1)
662
#define ACPI_RASF_SPEED_FAST            (7<<1)
663
 
664
/* Channel Commands */
665
 
666
enum acpi_rasf_commands {
667
	ACPI_RASF_EXECUTE_RASF_COMMAND = 1
668
};
669
 
670
/* Platform RAS Capabilities */
671
 
672
enum acpi_rasf_capabiliities {
673
	ACPI_HW_PATROL_SCRUB_SUPPORTED = 0,
674
	ACPI_SW_PATROL_SCRUB_EXPOSED = 1
675
};
676
 
677
/* Patrol Scrub Commands */
678
 
679
enum acpi_rasf_patrol_scrub_commands {
680
	ACPI_RASF_GET_PATROL_PARAMETERS = 1,
681
	ACPI_RASF_START_PATROL_SCRUBBER = 2,
682
	ACPI_RASF_STOP_PATROL_SCRUBBER = 3
683
};
684
 
685
/* Channel Command flags */
686
 
687
#define ACPI_RASF_GENERATE_SCI          (1<<15)
688
 
689
/* Status values */
690
 
691
enum acpi_rasf_status {
692
	ACPI_RASF_SUCCESS = 0,
693
	ACPI_RASF_NOT_VALID = 1,
694
	ACPI_RASF_NOT_SUPPORTED = 2,
695
	ACPI_RASF_BUSY = 3,
696
	ACPI_RASF_FAILED = 4,
697
	ACPI_RASF_ABORTED = 5,
698
	ACPI_RASF_INVALID_DATA = 6
699
};
700
 
701
/* Status flags */
702
 
703
#define ACPI_RASF_COMMAND_COMPLETE      (1)
704
#define ACPI_RASF_SCI_DOORBELL          (1<<1)
705
#define ACPI_RASF_ERROR                 (1<<2)
706
#define ACPI_RASF_STATUS                (0x1F<<3)
707
 
708
/*******************************************************************************
709
 *
710
 * STAO - Status Override Table (_STA override) - ACPI 6.0
711
 *        Version 1
712
 *
713
 * Conforms to "ACPI Specification for Status Override Table"
714
 * 6 January 2015
715
 *
716
 ******************************************************************************/
717
 
718
struct acpi_table_stao {
719
	struct acpi_table_header header;	/* Common ACPI table header */
720
	u8 ignore_uart;
721
};
722
 
723
/*******************************************************************************
724
 *
725
 * WPBT - Windows Platform Environment Table (ACPI 6.0)
726
 *        Version 1
727
 *
728
 * Conforms to "Windows Platform Binary Table (WPBT)" 29 November 2011
729
 *
730
 ******************************************************************************/
731
 
732
struct acpi_table_wpbt {
733
	struct acpi_table_header header;	/* Common ACPI table header */
734
	u32 handoff_size;
735
	u64 handoff_address;
736
	u8 layout;
737
	u8 type;
738
	u16 arguments_length;
739
};
740
 
741
/*******************************************************************************
742
 *
743
 * XENV - Xen Environment Table (ACPI 6.0)
744
 *        Version 1
745
 *
746
 * Conforms to "ACPI Specification for Xen Environment Table" 4 January 2015
747
 *
748
 ******************************************************************************/
749
 
750
struct acpi_table_xenv {
751
	struct acpi_table_header header;	/* Common ACPI table header */
752
	u64 grant_table_address;
753
	u64 grant_table_size;
754
	u32 event_interrupt;
755
	u8 event_flags;
756
};
757
 
758
/* Reset to default packing */
759
 
760
#pragma pack()
761
 
762
#endif				/* __ACTBL3_H__ */