Annotation of qemu/hw/sh_intc.h, revision 1.1

1.1     ! root        1: #ifndef __SH_INTC_H__
        !             2: #define __SH_INTC_H__
        !             3: 
        !             4: typedef unsigned char intc_enum;
        !             5: 
        !             6: struct intc_vect {
        !             7:     intc_enum enum_id;
        !             8:     unsigned short vect;
        !             9: };
        !            10: 
        !            11: #define INTC_VECT(enum_id, vect) { enum_id, vect }
        !            12: 
        !            13: struct intc_group {
        !            14:     intc_enum enum_id;
        !            15:     intc_enum enum_ids[32];
        !            16: };
        !            17: 
        !            18: #define INTC_GROUP(enum_id, ids...) { enum_id, { ids } }
        !            19: 
        !            20: struct intc_mask_reg {
        !            21:     unsigned long set_reg, clr_reg, reg_width;
        !            22:     intc_enum enum_ids[32];
        !            23:     unsigned long value;
        !            24: };
        !            25: 
        !            26: struct intc_prio_reg {
        !            27:     unsigned long set_reg, clr_reg, reg_width, field_width;
        !            28:     intc_enum enum_ids[16];
        !            29:     unsigned long value;
        !            30: };
        !            31: 
        !            32: #define _INTC_ARRAY(a) a, sizeof(a)/sizeof(*a)
        !            33: 
        !            34: struct intc_source {
        !            35:     unsigned short vect;
        !            36:     intc_enum next_enum_id;
        !            37: 
        !            38:     int asserted; /* emulates the interrupt signal line from device to intc */
        !            39:     int enable_count;
        !            40:     int enable_max;
        !            41:     int pending; /* emulates the result of signal and masking */
        !            42:     struct intc_desc *parent;
        !            43: };
        !            44: 
        !            45: struct intc_desc {
        !            46:     struct intc_source *sources;
        !            47:     int nr_sources;
        !            48:     struct intc_mask_reg *mask_regs;
        !            49:     int nr_mask_regs;
        !            50:     struct intc_prio_reg *prio_regs;
        !            51:     int nr_prio_regs;
        !            52: 
        !            53:     int iomemtype;
        !            54:     int pending; /* number of interrupt sources that has pending set */
        !            55: };
        !            56: 
        !            57: int sh_intc_get_pending_vector(struct intc_desc *desc, int imask);
        !            58: struct intc_source *sh_intc_source(struct intc_desc *desc, intc_enum id);
        !            59: void sh_intc_toggle_source(struct intc_source *source,
        !            60:                           int enable_adj, int assert_adj);
        !            61: 
        !            62: void sh_intc_register_sources(struct intc_desc *desc,
        !            63:                              struct intc_vect *vectors,
        !            64:                              int nr_vectors,
        !            65:                              struct intc_group *groups,
        !            66:                              int nr_groups);
        !            67: 
        !            68: int sh_intc_init(struct intc_desc *desc,
        !            69:                 int nr_sources,
        !            70:                 struct intc_mask_reg *mask_regs,
        !            71:                 int nr_mask_regs,
        !            72:                 struct intc_prio_reg *prio_regs,
        !            73:                 int nr_prio_regs);
        !            74: 
        !            75: #endif /* __SH_INTC_H__ */

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.