OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [trunk/] [linux/] [linux-2.4/] [include/] [acpi/] [acinterp.h] - Blame information for rev 1275

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 1275 phoenix
/******************************************************************************
2
 *
3
 * Name: acinterp.h - Interpreter subcomponent prototypes and defines
4
 *
5
 *****************************************************************************/
6
 
7
/*
8
 * Copyright (C) 2000 - 2004, R. Byron Moore
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 __ACINTERP_H__
45
#define __ACINTERP_H__
46
 
47
 
48
#define ACPI_WALK_OPERANDS       (&(walk_state->operands [walk_state->num_operands -1]))
49
 
50
 
51
acpi_status
52
acpi_ex_resolve_operands (
53
        u16                             opcode,
54
        union acpi_operand_object       **stack_ptr,
55
        struct acpi_walk_state          *walk_state);
56
 
57
acpi_status
58
acpi_ex_check_object_type (
59
        acpi_object_type                type_needed,
60
        acpi_object_type                this_type,
61
        void                            *object);
62
 
63
/*
64
 * exxface - External interpreter interfaces
65
 */
66
 
67
acpi_status
68
acpi_ex_load_table (
69
        acpi_table_type                 table_id);
70
 
71
acpi_status
72
acpi_ex_execute_method (
73
        struct acpi_namespace_node      *method_node,
74
        union acpi_operand_object       **params,
75
        union acpi_operand_object       **return_obj_desc);
76
 
77
 
78
/*
79
 * exconvrt - object conversion
80
 */
81
 
82
acpi_status
83
acpi_ex_convert_to_integer (
84
        union acpi_operand_object       *obj_desc,
85
        union acpi_operand_object       **result_desc,
86
        struct acpi_walk_state          *walk_state);
87
 
88
acpi_status
89
acpi_ex_convert_to_buffer (
90
        union acpi_operand_object       *obj_desc,
91
        union acpi_operand_object       **result_desc,
92
        struct acpi_walk_state          *walk_state);
93
 
94
acpi_status
95
acpi_ex_convert_to_string (
96
        union acpi_operand_object       *obj_desc,
97
        union acpi_operand_object       **result_desc,
98
        u32                             base,
99
        u32                             max_length,
100
        struct acpi_walk_state          *walk_state);
101
 
102
acpi_status
103
acpi_ex_convert_to_target_type (
104
        acpi_object_type                destination_type,
105
        union acpi_operand_object       *source_desc,
106
        union acpi_operand_object       **result_desc,
107
        struct acpi_walk_state          *walk_state);
108
 
109
u32
110
acpi_ex_convert_to_ascii (
111
        acpi_integer                    integer,
112
        u32                             base,
113
        u8                              *string,
114
        u8                              max_length);
115
 
116
/*
117
 * exfield - ACPI AML (p-code) execution - field manipulation
118
 */
119
 
120
acpi_status
121
acpi_ex_extract_from_field (
122
        union acpi_operand_object       *obj_desc,
123
        void                            *buffer,
124
        u32                             buffer_length);
125
 
126
acpi_status
127
acpi_ex_insert_into_field (
128
        union acpi_operand_object       *obj_desc,
129
        void                            *buffer,
130
        u32                             buffer_length);
131
 
132
acpi_status
133
acpi_ex_setup_region (
134
        union acpi_operand_object       *obj_desc,
135
        u32                             field_datum_byte_offset);
136
 
137
acpi_status
138
acpi_ex_access_region (
139
        union acpi_operand_object       *obj_desc,
140
        u32                             field_datum_byte_offset,
141
        acpi_integer                    *value,
142
        u32                             read_write);
143
 
144
u8
145
acpi_ex_register_overflow (
146
        union acpi_operand_object       *obj_desc,
147
        acpi_integer                    value);
148
 
149
acpi_status
150
acpi_ex_field_datum_io (
151
        union acpi_operand_object       *obj_desc,
152
        u32                             field_datum_byte_offset,
153
        acpi_integer                    *value,
154
        u32                             read_write);
155
 
156
acpi_status
157
acpi_ex_write_with_update_rule (
158
        union acpi_operand_object       *obj_desc,
159
        acpi_integer                    mask,
160
        acpi_integer                    field_value,
161
        u32                             field_datum_byte_offset);
162
 
163
void
164
acpi_ex_get_buffer_datum(
165
        acpi_integer                    *datum,
166
        void                            *buffer,
167
        u32                             buffer_length,
168
        u32                             byte_granularity,
169
        u32                             buffer_offset);
170
 
171
void
172
acpi_ex_set_buffer_datum (
173
        acpi_integer                    merged_datum,
174
        void                            *buffer,
175
        u32                             buffer_length,
176
        u32                             byte_granularity,
177
        u32                             buffer_offset);
178
 
179
acpi_status
180
acpi_ex_read_data_from_field (
181
        struct acpi_walk_state          *walk_state,
182
        union acpi_operand_object       *obj_desc,
183
        union acpi_operand_object       **ret_buffer_desc);
184
 
185
acpi_status
186
acpi_ex_write_data_to_field (
187
        union acpi_operand_object       *source_desc,
188
        union acpi_operand_object       *obj_desc,
189
        union acpi_operand_object       **result_desc);
190
 
191
/*
192
 * exmisc - ACPI AML (p-code) execution - specific opcodes
193
 */
194
 
195
acpi_status
196
acpi_ex_opcode_3A_0T_0R (
197
        struct acpi_walk_state          *walk_state);
198
 
199
acpi_status
200
acpi_ex_opcode_3A_1T_1R (
201
        struct acpi_walk_state          *walk_state);
202
 
203
acpi_status
204
acpi_ex_opcode_6A_0T_1R (
205
        struct acpi_walk_state          *walk_state);
206
 
207
u8
208
acpi_ex_do_match (
209
        u32                             match_op,
210
        acpi_integer                    package_value,
211
        acpi_integer                    match_value);
212
 
213
acpi_status
214
acpi_ex_get_object_reference (
215
        union acpi_operand_object       *obj_desc,
216
        union acpi_operand_object       **return_desc,
217
        struct acpi_walk_state          *walk_state);
218
 
219
acpi_status
220
acpi_ex_resolve_multiple (
221
        struct acpi_walk_state          *walk_state,
222
        union acpi_operand_object       *operand,
223
        acpi_object_type                *return_type,
224
        union acpi_operand_object       **return_desc);
225
 
226
acpi_status
227
acpi_ex_concat_template (
228
        union acpi_operand_object       *obj_desc,
229
        union acpi_operand_object       *obj_desc2,
230
        union acpi_operand_object       **actual_return_desc,
231
        struct acpi_walk_state          *walk_state);
232
 
233
acpi_status
234
acpi_ex_do_concatenate (
235
        union acpi_operand_object       *obj_desc,
236
        union acpi_operand_object       *obj_desc2,
237
        union acpi_operand_object       **actual_return_desc,
238
        struct acpi_walk_state          *walk_state);
239
 
240
u8
241
acpi_ex_do_logical_op (
242
        u16                             opcode,
243
        acpi_integer                    operand0,
244
        acpi_integer                    operand1);
245
 
246
acpi_integer
247
acpi_ex_do_math_op (
248
        u16                             opcode,
249
        acpi_integer                    operand0,
250
        acpi_integer                    operand1);
251
 
252
acpi_status
253
acpi_ex_create_mutex (
254
        struct acpi_walk_state          *walk_state);
255
 
256
acpi_status
257
acpi_ex_create_processor (
258
        struct acpi_walk_state          *walk_state);
259
 
260
acpi_status
261
acpi_ex_create_power_resource (
262
        struct acpi_walk_state          *walk_state);
263
 
264
acpi_status
265
acpi_ex_create_region (
266
        u8                              *aml_start,
267
        u32                             aml_length,
268
        u8                              region_space,
269
        struct acpi_walk_state          *walk_state);
270
 
271
acpi_status
272
acpi_ex_create_table_region (
273
        struct acpi_walk_state          *walk_state);
274
 
275
acpi_status
276
acpi_ex_create_event (
277
        struct acpi_walk_state          *walk_state);
278
 
279
acpi_status
280
acpi_ex_create_alias (
281
        struct acpi_walk_state          *walk_state);
282
 
283
acpi_status
284
acpi_ex_create_method (
285
        u8                              *aml_start,
286
        u32                             aml_length,
287
        struct acpi_walk_state          *walk_state);
288
 
289
 
290
/*
291
 * exconfig - dynamic table load/unload
292
 */
293
 
294
acpi_status
295
acpi_ex_add_table (
296
        struct acpi_table_header        *table,
297
        struct acpi_namespace_node      *parent_node,
298
        union acpi_operand_object       **ddb_handle);
299
 
300
acpi_status
301
acpi_ex_load_op (
302
        union acpi_operand_object       *obj_desc,
303
        union acpi_operand_object       *target,
304
        struct acpi_walk_state          *walk_state);
305
 
306
acpi_status
307
acpi_ex_load_table_op (
308
        struct acpi_walk_state          *walk_state,
309
        union acpi_operand_object       **return_desc);
310
 
311
acpi_status
312
acpi_ex_unload_table (
313
        union acpi_operand_object       *ddb_handle);
314
 
315
 
316
/*
317
 * exmutex - mutex support
318
 */
319
 
320
acpi_status
321
acpi_ex_acquire_mutex (
322
        union acpi_operand_object       *time_desc,
323
        union acpi_operand_object       *obj_desc,
324
        struct acpi_walk_state          *walk_state);
325
 
326
acpi_status
327
acpi_ex_release_mutex (
328
        union acpi_operand_object       *obj_desc,
329
        struct acpi_walk_state          *walk_state);
330
 
331
void
332
acpi_ex_release_all_mutexes (
333
        struct acpi_thread_state        *thread);
334
 
335
void
336
acpi_ex_unlink_mutex (
337
        union acpi_operand_object       *obj_desc);
338
 
339
void
340
acpi_ex_link_mutex (
341
        union acpi_operand_object       *obj_desc,
342
        struct acpi_thread_state        *thread);
343
 
344
/*
345
 * exprep - ACPI AML (p-code) execution - prep utilities
346
 */
347
 
348
acpi_status
349
acpi_ex_prep_common_field_object (
350
        union acpi_operand_object       *obj_desc,
351
        u8                              field_flags,
352
        u8                              field_attribute,
353
        u32                             field_bit_position,
354
        u32                             field_bit_length);
355
 
356
acpi_status
357
acpi_ex_prep_field_value (
358
        struct acpi_create_field_info   *info);
359
 
360
/*
361
 * exsystem - Interface to OS services
362
 */
363
 
364
acpi_status
365
acpi_ex_system_do_notify_op (
366
        union acpi_operand_object       *value,
367
        union acpi_operand_object       *obj_desc);
368
 
369
acpi_status
370
acpi_ex_system_do_suspend(
371
        u32                             time);
372
 
373
acpi_status
374
acpi_ex_system_do_stall (
375
        u32                             time);
376
 
377
acpi_status
378
acpi_ex_system_acquire_mutex(
379
        union acpi_operand_object       *time,
380
        union acpi_operand_object       *obj_desc);
381
 
382
acpi_status
383
acpi_ex_system_release_mutex(
384
        union acpi_operand_object       *obj_desc);
385
 
386
acpi_status
387
acpi_ex_system_signal_event(
388
        union acpi_operand_object       *obj_desc);
389
 
390
acpi_status
391
acpi_ex_system_wait_event(
392
        union acpi_operand_object       *time,
393
        union acpi_operand_object       *obj_desc);
394
 
395
acpi_status
396
acpi_ex_system_reset_event(
397
        union acpi_operand_object       *obj_desc);
398
 
399
acpi_status
400
acpi_ex_system_wait_semaphore (
401
        acpi_handle                     semaphore,
402
        u16                             timeout);
403
 
404
 
405
/*
406
 * exmonadic - ACPI AML (p-code) execution, monadic operators
407
 */
408
 
409
acpi_status
410
acpi_ex_opcode_1A_0T_0R (
411
        struct acpi_walk_state          *walk_state);
412
 
413
acpi_status
414
acpi_ex_opcode_1A_0T_1R (
415
        struct acpi_walk_state          *walk_state);
416
 
417
acpi_status
418
acpi_ex_opcode_1A_1T_1R (
419
        struct acpi_walk_state          *walk_state);
420
 
421
acpi_status
422
acpi_ex_opcode_1A_1T_0R (
423
        struct acpi_walk_state          *walk_state);
424
 
425
/*
426
 * exdyadic - ACPI AML (p-code) execution, dyadic operators
427
 */
428
 
429
acpi_status
430
acpi_ex_opcode_2A_0T_0R (
431
        struct acpi_walk_state          *walk_state);
432
 
433
acpi_status
434
acpi_ex_opcode_2A_0T_1R (
435
        struct acpi_walk_state          *walk_state);
436
 
437
acpi_status
438
acpi_ex_opcode_2A_1T_1R (
439
        struct acpi_walk_state          *walk_state);
440
 
441
acpi_status
442
acpi_ex_opcode_2A_2T_1R (
443
        struct acpi_walk_state          *walk_state);
444
 
445
 
446
/*
447
 * exresolv  - Object resolution and get value functions
448
 */
449
 
450
acpi_status
451
acpi_ex_resolve_to_value (
452
        union acpi_operand_object       **stack_ptr,
453
        struct acpi_walk_state          *walk_state);
454
 
455
acpi_status
456
acpi_ex_resolve_node_to_value (
457
        struct acpi_namespace_node      **stack_ptr,
458
        struct acpi_walk_state          *walk_state);
459
 
460
acpi_status
461
acpi_ex_resolve_object_to_value (
462
        union acpi_operand_object       **stack_ptr,
463
        struct acpi_walk_state          *walk_state);
464
 
465
 
466
/*
467
 * exdump - Scanner debug output routines
468
 */
469
 
470
void
471
acpi_ex_dump_operand (
472
        union acpi_operand_object       *entry_desc);
473
 
474
void
475
acpi_ex_dump_operands (
476
        union acpi_operand_object       **operands,
477
        acpi_interpreter_mode           interpreter_mode,
478
        char                            *ident,
479
        u32                             num_levels,
480
        char                            *note,
481
        char                            *module_name,
482
        u32                             line_number);
483
 
484
void
485
acpi_ex_dump_object_descriptor (
486
        union acpi_operand_object       *object,
487
        u32                             flags);
488
 
489
void
490
acpi_ex_dump_node (
491
        struct acpi_namespace_node      *node,
492
        u32                             flags);
493
 
494
void
495
acpi_ex_out_string (
496
        char                            *title,
497
        char                            *value);
498
 
499
void
500
acpi_ex_out_pointer (
501
        char                            *title,
502
        void                            *value);
503
 
504
void
505
acpi_ex_out_integer (
506
        char                            *title,
507
        u32                             value);
508
 
509
void
510
acpi_ex_out_address (
511
        char                            *title,
512
        acpi_physical_address           value);
513
 
514
 
515
/*
516
 * exnames - interpreter/scanner name load/execute
517
 */
518
 
519
char *
520
acpi_ex_allocate_name_string (
521
        u32                             prefix_count,
522
        u32                             num_name_segs);
523
 
524
u32
525
acpi_ex_good_char (
526
        u32                             character);
527
 
528
acpi_status
529
acpi_ex_name_segment (
530
        u8                              **in_aml_address,
531
        char                            *name_string);
532
 
533
acpi_status
534
acpi_ex_get_name_string (
535
        acpi_object_type                data_type,
536
        u8                              *in_aml_address,
537
        char                            **out_name_string,
538
        u32                             *out_name_length);
539
 
540
acpi_status
541
acpi_ex_do_name (
542
        acpi_object_type                data_type,
543
        acpi_interpreter_mode           load_exec_mode);
544
 
545
 
546
/*
547
 * exstore - Object store support
548
 */
549
 
550
acpi_status
551
acpi_ex_store (
552
        union acpi_operand_object       *val_desc,
553
        union acpi_operand_object       *dest_desc,
554
        struct acpi_walk_state          *walk_state);
555
 
556
acpi_status
557
acpi_ex_store_object_to_index (
558
        union acpi_operand_object       *val_desc,
559
        union acpi_operand_object       *dest_desc,
560
        struct acpi_walk_state          *walk_state);
561
 
562
acpi_status
563
acpi_ex_store_object_to_node (
564
        union acpi_operand_object       *source_desc,
565
        struct acpi_namespace_node      *node,
566
        struct acpi_walk_state          *walk_state);
567
 
568
 
569
/*
570
 * exstoren
571
 */
572
 
573
acpi_status
574
acpi_ex_resolve_object (
575
        union acpi_operand_object       **source_desc_ptr,
576
        acpi_object_type                target_type,
577
        struct acpi_walk_state          *walk_state);
578
 
579
acpi_status
580
acpi_ex_store_object_to_object (
581
        union acpi_operand_object       *source_desc,
582
        union acpi_operand_object       *dest_desc,
583
        union acpi_operand_object       **new_desc,
584
        struct acpi_walk_state          *walk_state);
585
 
586
 
587
/*
588
 * excopy - object copy
589
 */
590
 
591
acpi_status
592
acpi_ex_store_buffer_to_buffer (
593
        union acpi_operand_object       *source_desc,
594
        union acpi_operand_object       *target_desc);
595
 
596
acpi_status
597
acpi_ex_store_string_to_string (
598
        union acpi_operand_object       *source_desc,
599
        union acpi_operand_object       *target_desc);
600
 
601
acpi_status
602
acpi_ex_copy_integer_to_index_field (
603
        union acpi_operand_object       *source_desc,
604
        union acpi_operand_object       *target_desc);
605
 
606
acpi_status
607
acpi_ex_copy_integer_to_bank_field (
608
        union acpi_operand_object       *source_desc,
609
        union acpi_operand_object       *target_desc);
610
 
611
acpi_status
612
acpi_ex_copy_data_to_named_field (
613
        union acpi_operand_object       *source_desc,
614
        struct acpi_namespace_node      *node);
615
 
616
acpi_status
617
acpi_ex_copy_integer_to_buffer_field (
618
        union acpi_operand_object       *source_desc,
619
        union acpi_operand_object       *target_desc);
620
 
621
/*
622
 * exutils - interpreter/scanner utilities
623
 */
624
 
625
acpi_status
626
acpi_ex_enter_interpreter (
627
        void);
628
 
629
void
630
acpi_ex_exit_interpreter (
631
        void);
632
 
633
void
634
acpi_ex_truncate_for32bit_table (
635
        union acpi_operand_object       *obj_desc);
636
 
637
u8
638
acpi_ex_acquire_global_lock (
639
        u32                             rule);
640
 
641
void
642
acpi_ex_release_global_lock (
643
        u8                              locked);
644
 
645
u32
646
acpi_ex_digits_needed (
647
        acpi_integer                    value,
648
        u32                             base);
649
 
650
void
651
acpi_ex_eisa_id_to_string (
652
        u32                             numeric_id,
653
        char                            *out_string);
654
 
655
void
656
acpi_ex_unsigned_integer_to_string (
657
        acpi_integer                    value,
658
        char                            *out_string);
659
 
660
 
661
/*
662
 * exregion - default op_region handlers
663
 */
664
 
665
acpi_status
666
acpi_ex_system_memory_space_handler (
667
        u32                             function,
668
        acpi_physical_address           address,
669
        u32                             bit_width,
670
        acpi_integer                    *value,
671
        void                            *handler_context,
672
        void                            *region_context);
673
 
674
acpi_status
675
acpi_ex_system_io_space_handler (
676
        u32                             function,
677
        acpi_physical_address           address,
678
        u32                             bit_width,
679
        acpi_integer                    *value,
680
        void                            *handler_context,
681
        void                            *region_context);
682
 
683
acpi_status
684
acpi_ex_pci_config_space_handler (
685
        u32                             function,
686
        acpi_physical_address           address,
687
        u32                             bit_width,
688
        acpi_integer                    *value,
689
        void                            *handler_context,
690
        void                            *region_context);
691
 
692
acpi_status
693
acpi_ex_cmos_space_handler (
694
        u32                             function,
695
        acpi_physical_address           address,
696
        u32                             bit_width,
697
        acpi_integer                    *value,
698
        void                            *handler_context,
699
        void                            *region_context);
700
 
701
acpi_status
702
acpi_ex_pci_bar_space_handler (
703
        u32                             function,
704
        acpi_physical_address           address,
705
        u32                             bit_width,
706
        acpi_integer                    *value,
707
        void                            *handler_context,
708
        void                            *region_context);
709
 
710
acpi_status
711
acpi_ex_embedded_controller_space_handler (
712
        u32                             function,
713
        acpi_physical_address           address,
714
        u32                             bit_width,
715
        acpi_integer                    *value,
716
        void                            *handler_context,
717
        void                            *region_context);
718
 
719
acpi_status
720
acpi_ex_sm_bus_space_handler (
721
        u32                             function,
722
        acpi_physical_address           address,
723
        u32                             bit_width,
724
        acpi_integer                    *value,
725
        void                            *handler_context,
726
        void                            *region_context);
727
 
728
 
729
acpi_status
730
acpi_ex_data_table_space_handler (
731
        u32                             function,
732
        acpi_physical_address           address,
733
        u32                             bit_width,
734
        acpi_integer                    *value,
735
        void                            *handler_context,
736
        void                            *region_context);
737
 
738
#endif /* __INTERP_H__ */

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.