[BACK]Return to dsdt.h CVS log [TXT][DIR] Up to [local] / sys / dev / acpi

Annotation of sys/dev/acpi/dsdt.h, Revision 1.1

1.1     ! nbrk        1: /* $OpenBSD: dsdt.h,v 1.28 2007/04/11 02:51:11 jordan Exp $ */
        !             2: /*
        !             3:  * Copyright (c) 2005 Marco Peereboom <marco@openbsd.org>
        !             4:  *
        !             5:  * Permission to use, copy, modify, and distribute this software for any
        !             6:  * purpose with or without fee is hereby granted, provided that the above
        !             7:  * copyright notice and this permission notice appear in all copies.
        !             8:  *
        !             9:  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
        !            10:  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
        !            11:  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
        !            12:  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
        !            13:  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
        !            14:  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
        !            15:  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
        !            16:  */
        !            17:
        !            18: #ifndef __DEV_ACPI_DSDT_H__
        !            19: #define __DEV_ACPI_DSDT_H__
        !            20:
        !            21: struct aml_vallist {
        !            22:        struct aml_value *obj;
        !            23:        int nobj;
        !            24:        struct aml_vallist *next;
        !            25: };
        !            26:
        !            27: struct aml_scope {
        !            28:        struct acpi_softc  *sc;
        !            29:        uint8_t            *pos;
        !            30:        uint8_t            *end;
        !            31:        struct aml_node    *node;
        !            32:        struct aml_vallist *tmpvals;
        !            33:        struct aml_scope   *parent;
        !            34:        struct aml_value   *locals;
        !            35:        struct aml_value   *args;
        !            36:        int                 nargs;
        !            37: };
        !            38:
        !            39:
        !            40: struct aml_opcode {
        !            41:        u_int32_t               opcode;
        !            42:        const char              *mnem;
        !            43:        const char              *args;
        !            44:        struct aml_value        *(*handler)(struct aml_scope *, int,
        !            45:                                    struct aml_value*);
        !            46: };
        !            47:
        !            48: const char             *aml_eisaid(u_int32_t);
        !            49: const char              *aml_args(int);
        !            50: const char             *aml_mnem(int, uint8_t *);
        !            51: int64_t                        aml_val2int(struct aml_value *);
        !            52: struct aml_node                *aml_searchname(struct aml_node *, const void *);
        !            53: struct aml_node         *aml_createname(struct aml_node *, const void *,
        !            54:                            struct aml_value *);
        !            55:
        !            56: struct aml_value       *aml_allocint(uint64_t);
        !            57: struct aml_value       *aml_allocstr(const char *);
        !            58: struct aml_value       *aml_allocvalue(int, int64_t, const void *);
        !            59: void                   aml_freevalue(struct aml_value *);
        !            60: void                   aml_notify(struct aml_node *, int);
        !            61: void                   aml_notify_dev(const char *, int);
        !            62: void                   aml_showvalue(struct aml_value *, int);
        !            63: void                   aml_walkroot(void);
        !            64: void                   aml_walktree(struct aml_node *);
        !            65:
        !            66: int                    aml_find_node(struct aml_node *, const char *,
        !            67:                            void (*)(struct aml_node *, void *), void *);
        !            68: int                    acpi_parse_aml(struct acpi_softc *, u_int8_t *,
        !            69:                            u_int32_t);
        !            70: int                    aml_eval_object(struct acpi_softc *, struct aml_node *,
        !            71:                            struct aml_value *, int, struct aml_value *);
        !            72: void                   aml_register_notify(struct aml_node *, const char *,
        !            73:                            int (*)(struct aml_node *, int, void *), void *,
        !            74:                            int);
        !            75:
        !            76: u_int64_t              aml_getpciaddr(struct acpi_softc *, struct aml_node *);
        !            77:
        !            78: int                    aml_evalnode(struct acpi_softc *, struct aml_node *,
        !            79:                            int , struct aml_value *, struct aml_value *);
        !            80: int                    aml_evalname(struct acpi_softc *, struct aml_node *,
        !            81:                            const char *, int, struct aml_value *,
        !            82:                            struct aml_value *);
        !            83:
        !            84: void                   aml_fixup_dsdt(u_int8_t *, u_int8_t *, int);
        !            85: void                   aml_create_defaultobjects(void);
        !            86:
        !            87: int                    acpi_mutex_acquire(struct aml_value *, int);
        !            88: void                   acpi_mutex_release(struct aml_value *);
        !            89:
        !            90: const char             *aml_nodename(struct aml_node *);
        !            91:
        !            92: #define SR_IRQ                  0x04
        !            93: #define SR_DMA                  0x05
        !            94: #define SR_STARTDEP             0x06
        !            95: #define SR_ENDDEP               0x07
        !            96: #define SR_IOPORT               0x08
        !            97: #define SR_FIXEDPORT            0x09
        !            98: #define SR_ENDTAG               0x0F
        !            99:
        !           100: #define LR_24BIT                0x81
        !           101: #define LR_GENREGISTER          0x82
        !           102: #define LR_32BIT                0x85
        !           103: #define LR_32BITFIXED           0x86
        !           104: #define LR_DWORD                0x87
        !           105: #define LR_WORD                 0x88
        !           106: #define LR_EXTIRQ               0x89
        !           107: #define LR_QWORD                0x8A
        !           108:
        !           109: #define __amlflagbit(v,s,l)
        !           110: union acpi_resource {
        !           111:        struct {
        !           112:                uint8_t  typecode;
        !           113:                uint16_t length;
        !           114:        }  __packed hdr;
        !           115:
        !           116:        /* Small resource structures
        !           117:         * format of typecode is: tttttlll, t = type, l = length
        !           118:         */
        !           119:        struct {
        !           120:                uint8_t  typecode;
        !           121:                uint16_t irq_mask;
        !           122:                uint8_t  irq_flags;
        !           123:        }  __packed sr_irq;
        !           124:        struct {
        !           125:                uint8_t  typecode;
        !           126:                uint8_t  channel;
        !           127:                uint8_t  flags;
        !           128:        }  __packed sr_dma;
        !           129:        struct {
        !           130:                uint8_t  typecode;
        !           131:                uint8_t  flags;
        !           132:                uint16_t _min;
        !           133:                uint16_t _max;
        !           134:                uint8_t  _aln;
        !           135:                uint8_t  _len;
        !           136:        }  __packed sr_ioport;
        !           137:        struct {
        !           138:                uint8_t  typecode;
        !           139:                uint16_t _bas;
        !           140:                uint8_t  _len;
        !           141:        }  __packed sr_fioport;
        !           142:
        !           143:        /* Large resource structures */
        !           144:        struct {
        !           145:                uint8_t  typecode;
        !           146:                uint16_t length;
        !           147:                uint8_t  _info;
        !           148:                uint16_t _min;
        !           149:                uint16_t _max;
        !           150:                uint16_t _aln;
        !           151:                uint16_t _len;
        !           152:        }  __packed lr_m24;
        !           153:        struct {
        !           154:                uint8_t  typecode;
        !           155:                uint16_t length;
        !           156:                uint8_t  _info;
        !           157:                uint32_t _min;
        !           158:                uint32_t _max;
        !           159:                uint32_t _aln;
        !           160:                uint32_t _len;
        !           161:        }  __packed lr_m32;
        !           162:        struct {
        !           163:                uint8_t  typecode;
        !           164:                uint16_t length;
        !           165:                uint8_t  flags;
        !           166:                uint8_t  irq_count;
        !           167:                uint32_t irq[1];
        !           168:        } __packed lr_extirq;
        !           169:        struct {
        !           170:                uint8_t         typecode;
        !           171:                uint16_t        length;
        !           172:                uint8_t         type;
        !           173:                uint8_t         flags;
        !           174:                uint8_t         tflags;
        !           175:                uint16_t        _gra;
        !           176:                uint16_t        _min;
        !           177:                uint16_t        _max;
        !           178:                uint16_t        _tra;
        !           179:                uint16_t        _len;
        !           180:                uint8_t         src_index;
        !           181:                char            src[1];
        !           182:        } __packed lr_word;
        !           183:        struct {
        !           184:                uint8_t         typecode;
        !           185:                uint16_t        length;
        !           186:                uint8_t         type;
        !           187:                uint8_t         flags;
        !           188:                uint8_t         tflags;
        !           189:                uint32_t        _gra;
        !           190:                uint32_t        _min;
        !           191:                uint32_t        _max;
        !           192:                uint32_t        _tra;
        !           193:                uint32_t        _len;
        !           194:                uint8_t         src_index;
        !           195:                char            src[1];
        !           196:        } __packed lr_dword;
        !           197:        struct {
        !           198:                uint8_t         typecode;
        !           199:                uint16_t        length;
        !           200:                uint8_t         type;
        !           201:                uint8_t         flags;
        !           202:                uint8_t         tflags;
        !           203:                uint64_t        _gra;
        !           204:                uint64_t        _min;
        !           205:                uint64_t        _max;
        !           206:                uint64_t        _tra;
        !           207:                uint64_t        _len;
        !           208:                uint8_t         src_index;
        !           209:                char            src[1];
        !           210:        } __packed lr_qword;
        !           211:        uint8_t          pad[64];
        !           212: } __packed;
        !           213:
        !           214: #define AML_CRSTYPE(x) ((x)->hdr.typecode & 0x80 ? \
        !           215:                            (x)->hdr.typecode : (x)->hdr.typecode >> 3)
        !           216: #define AML_CRSLEN(x)  ((x)->hdr.typecode & 0x80 ? \
        !           217:                            3+(x)->hdr.length : 1+((x)->hdr.typecode & 0x7))
        !           218:
        !           219: int                    aml_print_resource(union acpi_resource *, void *);
        !           220: int                    aml_parse_resource(int, uint8_t *,
        !           221:                            int (*)(union acpi_resource *, void *), void *);
        !           222:
        !           223: #define ACPI_E_NOERROR   0x00
        !           224: #define ACPI_E_BADVALUE  0x01
        !           225:
        !           226: #define AML_MAX_ARG     7
        !           227: #define AML_MAX_LOCAL   8
        !           228:
        !           229: /* XXX: endian macros */
        !           230: #define aml_letohost16(x) letoh16(x)
        !           231: #define aml_letohost32(x) letoh32(x)
        !           232: #define aml_letohost64(x) letoh64(x)
        !           233:
        !           234: #define AML_WALK_PRE 0x00
        !           235: #define AML_WALK_POST 0x01
        !           236:
        !           237: void                   aml_walknodes(struct aml_node *, int,
        !           238:                            int (*)(struct aml_node *, void *), void *);
        !           239:
        !           240: void                   aml_postparse(void);
        !           241: void                   acpi_poll_notify(void);
        !           242:
        !           243: void                   aml_hashopcodes(void);
        !           244:
        !           245: void   aml_foreachpkg(struct aml_value *, int,
        !           246:            void (*fn)(struct aml_value *, void *), void *);
        !           247:
        !           248: #endif /* __DEV_ACPI_DSDT_H__ */

CVSweb