Lines Matching defs:matrix
3 * Adjunct processor matrix VFIO device driver callbacks.
39 * @matrix_mdev: the associated mediated matrix
44 * Verify that the APID and the APQI are set in the matrix.
54 if (!test_bit_inv(AP_QID_CARD(apqn), matrix_mdev->matrix.apm))
56 if (!test_bit_inv(AP_QID_QUEUE(apqn), matrix_mdev->matrix.aqm))
318 struct ap_matrix *matrix)
320 matrix->apm_max = info->apxa ? info->Na : 63;
321 matrix->aqm_max = info->apxa ? info->Nd : 15;
322 matrix->adm_max = info->apxa ? info->Nd : 15;
339 vfio_ap_matrix_init(&matrix_dev->info, &matrix_mdev->matrix);
466 * @matrix_dev: a mediated matrix device
512 unsigned long nbits = matrix_mdev->matrix.aqm_max + 1;
514 if (find_first_bit_inv(matrix_mdev->matrix.aqm, nbits) >= nbits)
517 for_each_set_bit_inv(apqi, matrix_mdev->matrix.aqm, nbits) {
530 * and AP queue indexes comprising the AP matrix are not configured for another
533 * @matrix_mdev: the mediated matrix device
554 if (!bitmap_and(apm, matrix_mdev->matrix.apm,
555 lstdev->matrix.apm, AP_DEVICES))
558 if (!bitmap_and(aqm, matrix_mdev->matrix.aqm,
559 lstdev->matrix.aqm, AP_DOMAINS))
571 * @dev: the matrix device
572 * @attr: the mediated matrix device's assign_adapter attribute
578 * matrix device's APM.
598 * matrix device
617 if (apid > matrix_mdev->matrix.apm_max)
631 set_bit_inv(apid, matrix_mdev->matrix.apm);
641 clear_bit_inv(apid, matrix_mdev->matrix.apm);
652 * @dev: the matrix device
653 * @attr: the mediated matrix device's unassign_adapter attribute
658 * matrix device's APM.
683 if (apid > matrix_mdev->matrix.apm_max)
687 clear_bit_inv((unsigned long)apid, matrix_mdev->matrix.apm);
700 unsigned long nbits = matrix_mdev->matrix.apm_max + 1;
702 if (find_first_bit_inv(matrix_mdev->matrix.apm, nbits) >= nbits)
705 for_each_set_bit_inv(apid, matrix_mdev->matrix.apm, nbits) {
717 * @dev: the matrix device
718 * @attr: the mediated matrix device's assign_domain attribute
724 * matrix device's AQM.
744 * matrix device
754 unsigned long max_apqi = matrix_mdev->matrix.aqm_max;
772 set_bit_inv(apqi, matrix_mdev->matrix.aqm);
782 clear_bit_inv(apqi, matrix_mdev->matrix.aqm);
794 * @dev: the matrix device
795 * @attr: the mediated matrix device's unassign_domain attribute
801 * mediated matrix device's AQM.
825 if (apqi > matrix_mdev->matrix.aqm_max)
829 clear_bit_inv((unsigned long)apqi, matrix_mdev->matrix.aqm);
839 * @dev: the matrix device
840 * @attr: the mediated matrix device's assign_control_domain attribute
845 * matrix device's ADM.
869 if (id > matrix_mdev->matrix.adm_max)
878 set_bit_inv(id, matrix_mdev->matrix.adm);
888 * @dev: the matrix device
889 * @attr: the mediated matrix device's unassign_control_domain attribute
894 * mediated matrix device's ADM.
909 unsigned long max_domid = matrix_mdev->matrix.adm_max;
922 clear_bit_inv(domid, matrix_mdev->matrix.adm);
939 unsigned long max_domid = matrix_mdev->matrix.adm_max;
942 for_each_set_bit_inv(id, matrix_mdev->matrix.adm, max_domid + 1) {
963 unsigned long napm_bits = matrix_mdev->matrix.apm_max + 1;
964 unsigned long naqm_bits = matrix_mdev->matrix.aqm_max + 1;
968 apid1 = find_first_bit_inv(matrix_mdev->matrix.apm, napm_bits);
969 apqi1 = find_first_bit_inv(matrix_mdev->matrix.aqm, naqm_bits);
974 for_each_set_bit_inv(apid, matrix_mdev->matrix.apm, napm_bits) {
975 for_each_set_bit_inv(apqi, matrix_mdev->matrix.aqm,
984 for_each_set_bit_inv(apid, matrix_mdev->matrix.apm, napm_bits) {
990 for_each_set_bit_inv(apqi, matrix_mdev->matrix.aqm, naqm_bits) {
1001 static DEVICE_ATTR_RO(matrix);
1027 * @matrix_mdev: a mediated matrix device
1030 * Verifies no other mediated matrix device has @kvm and sets a reference to
1033 * Return 0 if no other mediated matrix device has a reference to @kvm;
1111 kvm_arch_crypto_set_masks(matrix_mdev->kvm, matrix_mdev->matrix.apm,
1112 matrix_mdev->matrix.aqm,
1113 matrix_mdev->matrix.adm);
1192 for_each_set_bit_inv(apid, matrix_mdev->matrix.apm,
1193 matrix_mdev->matrix.apm_max + 1) {
1194 for_each_set_bit_inv(apqi, matrix_mdev->matrix.aqm,
1195 matrix_mdev->matrix.aqm_max + 1) {