Lines Matching refs:ID
178 pub fn enqueue<W, const ID: u64>(&self, w: W) -> W::EnqueueOutput in enqueue()
180 W: RawWorkItem<ID> + Send + 'static, in enqueue()
271 pub unsafe trait RawWorkItem<const ID: u64> {
315 pub unsafe trait WorkItemPointer<const ID: u64>: RawWorkItem<ID> {
330 pub trait WorkItem<const ID: u64 = 0> {
333 type Pointer: WorkItemPointer<ID>;
351 pub struct Work<T: ?Sized, const ID: u64 = 0> {
360 unsafe impl<T: ?Sized, const ID: u64> Send for Work<T, ID> {}
364 unsafe impl<T: ?Sized, const ID: u64> Sync for Work<T, ID> {}
366 impl<T: ?Sized, const ID: u64> Work<T, ID> {
372 T: WorkItem<ID>, in new()
435 pub unsafe trait HasWork<T, const ID: u64 = 0> {
456 unsafe fn raw_get_work(ptr: *mut Self) -> *mut Work<T, ID> { in raw_get_work() argument
458 unsafe { (ptr as *mut u8).add(Self::OFFSET) as *mut Work<T, ID> } in raw_get_work()
467 unsafe fn work_container_of(ptr: *mut Work<T, ID>) -> *mut Self in work_container_of()
523 unsafe impl<T, const ID: u64> WorkItemPointer<ID> for Arc<T>
525 T: WorkItem<ID, Pointer = Self>,
526 T: HasWork<T, ID>,
530 let ptr = ptr as *mut Work<T, ID>; in run()
540 unsafe impl<T, const ID: u64> RawWorkItem<ID> for Arc<T>
542 T: WorkItem<ID, Pointer = Self>,
543 T: HasWork<T, ID>,
568 unsafe impl<T, const ID: u64> WorkItemPointer<ID> for Pin<Box<T>>
570 T: WorkItem<ID, Pointer = Self>,
571 T: HasWork<T, ID>,
575 let ptr = ptr as *mut Work<T, ID>; in run()
587 unsafe impl<T, const ID: u64> RawWorkItem<ID> for Pin<Box<T>>
589 T: WorkItem<ID, Pointer = Self>,
590 T: HasWork<T, ID>,