For the series: Reviewed-by: Balasubramanian Manoharan <bala.manoha...@linaro.org>
> On 13-Apr-2017, at 9:13 PM, Honnappa Nagarahalli > <honnappa.nagaraha...@linaro.org> wrote: > > For this series: Reviewed-by: Honnappa Nagarahalli > <honnappa.nagaraha...@linaro.org> > >> On 13 April 2017 at 10:14, Bill Fischofer <bill.fischo...@linaro.org> wrote: >> For this series: Reviewed-by: Bill Fischofer <bill.fischo...@linaro.org> >> >> This should still have Honnappa's review as well. >> >> On Thu, Apr 13, 2017 at 9:40 AM, Petri Savolainen >> <petri.savolai...@linaro.org> wrote: >>> Added capability information about maximum number of queues >>> and queue sizes. Both are defined per queue type, since >>> plain and scheduled queues may have different implementations >>> (e.g. one uses HW while the other is SW). >>> >>> Added queue size parameter, which specifies how large >>> storage size application requires in minimum. >>> >>> Signed-off-by: Petri Savolainen <petri.savolai...@linaro.org> >>> --- >>> include/odp/api/spec/queue.h | 39 ++++++++++++++++++++++++++++++++++++++- >>> 1 file changed, 38 insertions(+), 1 deletion(-) >>> >>> diff --git a/include/odp/api/spec/queue.h b/include/odp/api/spec/queue.h >>> index 7972feac..9dd0a561 100644 >>> --- a/include/odp/api/spec/queue.h >>> +++ b/include/odp/api/spec/queue.h >>> @@ -100,7 +100,9 @@ typedef enum odp_queue_op_mode_t { >>> * Queue capabilities >>> */ >>> typedef struct odp_queue_capability_t { >>> - /** Maximum number of event queues */ >>> + /** Maximum number of event queues of any type (default size). Use >>> + * this in addition to queue type specific 'max_num', if both queue >>> + * types are used simultaneously. */ >>> uint32_t max_queues; >>> >>> /** Maximum number of ordered locks per queue */ >>> @@ -112,6 +114,32 @@ typedef struct odp_queue_capability_t { >>> /** Number of scheduling priorities */ >>> unsigned sched_prios; >>> >>> + /** Plain queue capabilities */ >>> + struct { >>> + /** Maximum number of plain queues of the default size. */ >>> + uint32_t max_num; >>> + >>> + /** Maximum number of events a plain queue can store >>> + * simultaneously. The value of zero means that plain >>> + * queues do not have a size limit, but a single queue can >>> + * store all available events. */ >>> + uint32_t max_size; >>> + >>> + } plain; >>> + >>> + /** Scheduled queue capabilities */ >>> + struct { >>> + /** Maximum number of scheduled queues of the default size. >>> */ >>> + uint32_t max_num; >>> + >>> + /** Maximum number of events a scheduled queue can store >>> + * simultaneously. The value of zero means that scheduled >>> + * queues do not have a size limit, but a single queue can >>> + * store all available events. */ >>> + uint32_t max_size; >>> + >>> + } sched; >>> + >>> } odp_queue_capability_t; >>> >>> /** >>> @@ -165,6 +193,15 @@ typedef struct odp_queue_param_t { >>> * The implementation may use this value as a hint for the number of >>> * context data bytes to prefetch. Default value is zero (no hint). >>> */ >>> uint32_t context_len; >>> + >>> + /** Queue size >>> + * >>> + * The queue must be able to store at minimum this many events >>> + * simultaneously. The value must not exceed 'max_size' queue >>> + * capability. The value of zero means implementation specific >>> + * default size. */ >>> + uint32_t size; >>> + >>> } odp_queue_param_t; >>> >>> /** >>> -- >>> 2.11.0 >>>