Lines Matching refs:irte
3867 static int modify_irte_ga(u16 devid, int index, struct irte_ga *irte, in modify_irte_ga() argument
3888 entry->hi.val = irte->hi.val; in modify_irte_ga()
3889 entry->lo.val = irte->lo.val; in modify_irte_ga()
3902 static int modify_irte(u16 devid, int index, union irte *irte) in modify_irte() argument
3917 table->table[index] = irte->val; in modify_irte()
3952 union irte *irte = (union irte *) entry; in irte_prepare() local
3954 irte->val = 0; in irte_prepare()
3955 irte->fields.vector = vector; in irte_prepare()
3956 irte->fields.int_type = delivery_mode; in irte_prepare()
3957 irte->fields.destination = dest_apicid; in irte_prepare()
3958 irte->fields.dm = dest_mode; in irte_prepare()
3959 irte->fields.valid = 1; in irte_prepare()
3966 struct irte_ga *irte = (struct irte_ga *) entry; in irte_ga_prepare() local
3968 irte->lo.val = 0; in irte_ga_prepare()
3969 irte->hi.val = 0; in irte_ga_prepare()
3970 irte->lo.fields_remap.int_type = delivery_mode; in irte_ga_prepare()
3971 irte->lo.fields_remap.dm = dest_mode; in irte_ga_prepare()
3972 irte->hi.fields.vector = vector; in irte_ga_prepare()
3973 irte->lo.fields_remap.destination = APICID_TO_IRTE_DEST_LO(dest_apicid); in irte_ga_prepare()
3974 irte->hi.fields.destination = APICID_TO_IRTE_DEST_HI(dest_apicid); in irte_ga_prepare()
3975 irte->lo.fields_remap.valid = 1; in irte_ga_prepare()
3980 union irte *irte = (union irte *) entry; in irte_activate() local
3982 irte->fields.valid = 1; in irte_activate()
3983 modify_irte(devid, index, irte); in irte_activate()
3988 struct irte_ga *irte = (struct irte_ga *) entry; in irte_ga_activate() local
3990 irte->lo.fields_remap.valid = 1; in irte_ga_activate()
3991 modify_irte_ga(devid, index, irte, NULL); in irte_ga_activate()
3996 union irte *irte = (union irte *) entry; in irte_deactivate() local
3998 irte->fields.valid = 0; in irte_deactivate()
3999 modify_irte(devid, index, irte); in irte_deactivate()
4004 struct irte_ga *irte = (struct irte_ga *) entry; in irte_ga_deactivate() local
4006 irte->lo.fields_remap.valid = 0; in irte_ga_deactivate()
4007 modify_irte_ga(devid, index, irte, NULL); in irte_ga_deactivate()
4013 union irte *irte = (union irte *) entry; in irte_set_affinity() local
4015 irte->fields.vector = vector; in irte_set_affinity()
4016 irte->fields.destination = dest_apicid; in irte_set_affinity()
4017 modify_irte(devid, index, irte); in irte_set_affinity()
4023 struct irte_ga *irte = (struct irte_ga *) entry; in irte_ga_set_affinity() local
4025 if (!irte->lo.fields_remap.guest_mode) { in irte_ga_set_affinity()
4026 irte->hi.fields.vector = vector; in irte_ga_set_affinity()
4027 irte->lo.fields_remap.destination = in irte_ga_set_affinity()
4029 irte->hi.fields.destination = in irte_ga_set_affinity()
4031 modify_irte_ga(devid, index, irte, NULL); in irte_ga_set_affinity()
4044 struct irte_ga *irte = &ptr[index]; in irte_ga_set_allocated() local
4046 memset(&irte->lo.val, 0, sizeof(u64)); in irte_ga_set_allocated()
4047 memset(&irte->hi.val, 0, sizeof(u64)); in irte_ga_set_allocated()
4048 irte->hi.fields.vector = 0xff; in irte_ga_set_allocated()
4053 union irte *ptr = (union irte *)table->table; in irte_is_allocated()
4054 union irte *irte = &ptr[index]; in irte_is_allocated() local
4056 return irte->val != 0; in irte_is_allocated()
4062 struct irte_ga *irte = &ptr[index]; in irte_ga_is_allocated() local
4064 return irte->hi.fields.vector != 0; in irte_ga_is_allocated()
4075 struct irte_ga *irte = &ptr[index]; in irte_ga_clear_allocated() local
4077 memset(&irte->lo.val, 0, sizeof(u64)); in irte_ga_clear_allocated()
4078 memset(&irte->hi.val, 0, sizeof(u64)); in irte_ga_clear_allocated()
4303 data->entry = kzalloc(sizeof(union irte), GFP_KERNEL); in irq_remapping_alloc()