Lines Matching refs:irte
3387 static int modify_irte_ga(u16 devid, int index, struct irte_ga *irte, in modify_irte_ga() argument
3411 irte->lo.val, irte->hi.val); in modify_irte_ga()
3431 static int modify_irte(u16 devid, int index, union irte *irte) in modify_irte() argument
3446 table->table[index] = irte->val; in modify_irte()
3481 union irte *irte = (union irte *) entry; in irte_prepare() local
3483 irte->val = 0; in irte_prepare()
3484 irte->fields.vector = vector; in irte_prepare()
3485 irte->fields.int_type = delivery_mode; in irte_prepare()
3486 irte->fields.destination = dest_apicid; in irte_prepare()
3487 irte->fields.dm = dest_mode; in irte_prepare()
3488 irte->fields.valid = 1; in irte_prepare()
3495 struct irte_ga *irte = (struct irte_ga *) entry; in irte_ga_prepare() local
3497 irte->lo.val = 0; in irte_ga_prepare()
3498 irte->hi.val = 0; in irte_ga_prepare()
3499 irte->lo.fields_remap.int_type = delivery_mode; in irte_ga_prepare()
3500 irte->lo.fields_remap.dm = dest_mode; in irte_ga_prepare()
3501 irte->hi.fields.vector = vector; in irte_ga_prepare()
3502 irte->lo.fields_remap.destination = APICID_TO_IRTE_DEST_LO(dest_apicid); in irte_ga_prepare()
3503 irte->hi.fields.destination = APICID_TO_IRTE_DEST_HI(dest_apicid); in irte_ga_prepare()
3504 irte->lo.fields_remap.valid = 1; in irte_ga_prepare()
3509 union irte *irte = (union irte *) entry; in irte_activate() local
3511 irte->fields.valid = 1; in irte_activate()
3512 modify_irte(devid, index, irte); in irte_activate()
3517 struct irte_ga *irte = (struct irte_ga *) entry; in irte_ga_activate() local
3519 irte->lo.fields_remap.valid = 1; in irte_ga_activate()
3520 modify_irte_ga(devid, index, irte, NULL); in irte_ga_activate()
3525 union irte *irte = (union irte *) entry; in irte_deactivate() local
3527 irte->fields.valid = 0; in irte_deactivate()
3528 modify_irte(devid, index, irte); in irte_deactivate()
3533 struct irte_ga *irte = (struct irte_ga *) entry; in irte_ga_deactivate() local
3535 irte->lo.fields_remap.valid = 0; in irte_ga_deactivate()
3536 modify_irte_ga(devid, index, irte, NULL); in irte_ga_deactivate()
3542 union irte *irte = (union irte *) entry; in irte_set_affinity() local
3544 irte->fields.vector = vector; in irte_set_affinity()
3545 irte->fields.destination = dest_apicid; in irte_set_affinity()
3546 modify_irte(devid, index, irte); in irte_set_affinity()
3552 struct irte_ga *irte = (struct irte_ga *) entry; in irte_ga_set_affinity() local
3554 if (!irte->lo.fields_remap.guest_mode) { in irte_ga_set_affinity()
3555 irte->hi.fields.vector = vector; in irte_ga_set_affinity()
3556 irte->lo.fields_remap.destination = in irte_ga_set_affinity()
3558 irte->hi.fields.destination = in irte_ga_set_affinity()
3560 modify_irte_ga(devid, index, irte, NULL); in irte_ga_set_affinity()
3573 struct irte_ga *irte = &ptr[index]; in irte_ga_set_allocated() local
3575 memset(&irte->lo.val, 0, sizeof(u64)); in irte_ga_set_allocated()
3576 memset(&irte->hi.val, 0, sizeof(u64)); in irte_ga_set_allocated()
3577 irte->hi.fields.vector = 0xff; in irte_ga_set_allocated()
3582 union irte *ptr = (union irte *)table->table; in irte_is_allocated()
3583 union irte *irte = &ptr[index]; in irte_is_allocated() local
3585 return irte->val != 0; in irte_is_allocated()
3591 struct irte_ga *irte = &ptr[index]; in irte_ga_is_allocated() local
3593 return irte->hi.fields.vector != 0; in irte_ga_is_allocated()
3604 struct irte_ga *irte = &ptr[index]; in irte_ga_clear_allocated() local
3606 memset(&irte->lo.val, 0, sizeof(u64)); in irte_ga_clear_allocated()
3607 memset(&irte->hi.val, 0, sizeof(u64)); in irte_ga_clear_allocated()
3818 data->entry = kzalloc(sizeof(union irte), GFP_KERNEL); in irq_remapping_alloc()