/* inline helper to queue a single work item using the same interface */ public osd_work_item osd_work_item_queue(osd_work_queue queue, osd_work_callback callback, Object param, uint32_t flags) { List <Object> parambase = new List <object>(); parambase.Add(param); return(osd_work_item_queue_multiple(queue, callback, 1, parambase, /*0,*/ flags)); }
/*----------------------------------------------------------------------------- * osd_work_item_queue_multiple: queue a set of work items * * Parameters: * * queue - pointer to an osd_work_queue that was previously created via * osd_work_queue_alloc * * callback - pointer to a function that will do the work * * numitems - number of work items to queue * * param - a void * parameter that can be used to pass data to the * function * * paramstep - the number of bytes to increment param by for each item * queued; for example, if you have an array of work_unit objects, * you can point param to the base of the array and set paramstep to * sizeof(work_unit) * * flags - one or more of the WORK_ITEM_FLAG_* values ORed together: * * WORK_ITEM_FLAG_AUTO_RELEASE - indicates that the work item * should be automatically freed when it is complete * * Return value: * * A pointer to the final allocated osd_work_item in the list. * * Notes: * * On single-threaded systems, this function may actually execute the * work item immediately before returning. * -----------------------------------------------------------------------------*/ public override osd_work_item osd_work_item_queue_multiple(osd_work_queue queue, osd_work_callback callback, int numitems, List <Object> parambase, /*int paramstep,*/ UInt32 flags) { return(null); }
/*----------------------------------------------------------------------------- * osd_work_item_queue_multiple: queue a set of work items * * Parameters: * * queue - pointer to an osd_work_queue that was previously created via * osd_work_queue_alloc * * callback - pointer to a function that will do the work * * numitems - number of work items to queue * * param - a void * parameter that can be used to pass data to the * function * * paramstep - the number of bytes to increment param by for each item * queued; for example, if you have an array of work_unit objects, * you can point param to the base of the array and set paramstep to * sizeof(work_unit) * * flags - one or more of the WORK_ITEM_FLAG_* values ORed together: * * WORK_ITEM_FLAG_AUTO_RELEASE - indicates that the work item * should be automatically freed when it is complete * * Return value: * * A pointer to the final allocated osd_work_item in the list. * * Notes: * * On single-threaded systems, this function may actually execute the * work item immediately before returning. * -----------------------------------------------------------------------------*/ public override osd_work_item osd_work_item_queue_multiple(osd_work_queue queue, osd_work_callback callback, int32_t numitems, List <Object> parambase, /*int paramstep,*/ uint32_t flags) { return(osdsync_global.osd_work_item_queue_multiple(queue, callback, numitems, parambase, /*paramstep,*/ flags)); }
/*----------------------------------------------------------------------------- * osd_work_item_queue_multiple: queue a set of work items * * Parameters: * * queue - pointer to an osd_work_queue that was previously created via * osd_work_queue_alloc * * callback - pointer to a function that will do the work * * numitems - number of work items to queue * * param - a void * parameter that can be used to pass data to the * function * * paramstep - the number of bytes to increment param by for each item * queued; for example, if you have an array of work_unit objects, * you can point param to the base of the array and set paramstep to * sizeof(work_unit) * * flags - one or more of the WORK_ITEM_FLAG_* values ORed together: * * WORK_ITEM_FLAG_AUTO_RELEASE - indicates that the work item * should be automatically freed when it is complete * * Return value: * * A pointer to the final allocated osd_work_item in the list. * * Notes: * * On single-threaded systems, this function may actually execute the * work item immediately before returning. * -----------------------------------------------------------------------------*/ public abstract osd_work_item osd_work_item_queue_multiple(osd_work_queue queue, osd_work_callback callback, int32_t numitems, List <Object> parambase, /*int paramstep,*/ uint32_t flags);