From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mgamail.intel.com (mgamail.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTPS id D5B0D10E3D8 for ; Mon, 20 Nov 2023 14:22:28 +0000 (UTC) Message-ID: Date: Mon, 20 Nov 2023 15:22:22 +0100 Content-Language: pl To: Kamil Konieczny , , Marcin Bernatowicz , Michal Wajdeczko References: <20231109065147.9479-1-lukasz.laguna@intel.com> <20231109065147.9479-5-lukasz.laguna@intel.com> <20231109120349.dkglxfvdpdceus3b@kamilkon-desk.igk.intel.com> From: "Laguna, Lukasz" In-Reply-To: <20231109120349.dkglxfvdpdceus3b@kamilkon-desk.igk.intel.com> Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: 7bit MIME-Version: 1.0 Subject: Re: [igt-dev] [PATCH i-g-t 4/8] lib/igt_sriov_device: add helpers for operations in different VFs scenarios List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" List-ID: On 11/9/2023 13:03, Kamil Konieczny wrote: > Hi Lukasz, > On 2023-11-09 at 07:51:43 +0100, Lukasz Laguna wrote: >> Added helpers: >> - for_each_vf and for_each_num_vfs >> - for_random_vf and for_random_num_vfs >> - for_last_vf and for_max_num_vfs >> > What changed in v2? Please describe like: > > v2: document macro parameters (Michal) > > Add here Cc: > Cc: Michal Wajdeczko > Cc: Marcin Bernatowicz Done >> Signed-off-by: Lukasz Laguna >> Reviewed-by: Marcin Bernatowicz > - ^^^^^^^^^^^^ > This should be removed. Done > > Regards, > Kamil > >> --- >> lib/igt_sriov_device.h | 41 +++++++++++++++++++++++++++++++++++++++++ >> 1 file changed, 41 insertions(+) >> >> diff --git a/lib/igt_sriov_device.h b/lib/igt_sriov_device.h >> index be4e56cf3..1b99fb8ce 100644 >> --- a/lib/igt_sriov_device.h >> +++ b/lib/igt_sriov_device.h >> @@ -19,4 +19,45 @@ bool igt_sriov_disable_driver_autoprobe(int pf); >> int igt_sriov_open_vf_drm_device(int pf, unsigned int vf_num); >> bool igt_sriov_is_vf_drm_driver_probed(int pf, unsigned int vf_num); >> >> +/** >> + * for_each_vf: >> + * @__pf_fd: PF device file descriptor >> + * @__vf_num: VFs iterator >> + * >> + * For loop that iterates over all VFs associated with given PF @__pf_fd. >> + */ >> +#define for_each_vf(__pf_fd, __vf_num) \ >> + for (unsigned int __vf_num = 1, __total_vfs = igt_sriov_get_total_vfs(__pf_fd); \ >> + __vf_num <= __total_vfs; \ >> + ++__vf_num) >> +#define for_each_num_vfs for_each_vf >> + >> +/** >> + * for_random_vf: >> + * @__pf_fd: PF device file descriptor >> + * @__vf_num: stores random VF >> + * >> + * Helper allows to run code using random VF number (stored in @__vf_num) >> + * picked from the range of all VFs associated with given PF @__pf_fd. >> + */ >> +#define for_random_vf(__pf_fd, __vf_num) \ >> + for (unsigned int __vf_num = 1 + random() % igt_sriov_get_total_vfs(__pf_fd), __tmp = 0; \ >> + __tmp < 1; \ >> + ++__tmp) >> +#define for_random_num_vfs for_random_vf >> + >> +/** >> + * for_last_vf: >> + * @__pf_fd: PF device file descriptor >> + * @__vf_num: stores last VF number >> + * >> + * Helper allows to run code using last VF number (stored in @__vf_num) >> + * associated with given PF @__pf_fd. >> + */ >> +#define for_last_vf(__pf_fd, __vf_num) \ >> + for (unsigned int __vf_num = igt_sriov_get_total_vfs(__pf_fd), __tmp = 0; \ >> + __tmp < 1; \ >> + ++__tmp) >> +#define for_max_num_vfs for_last_vf >> + >> #endif /* __IGT_SRIOV_DEVICE_H__ */ >> -- >> 2.40.0 >>