Lines Matching +full:hardware +full:- +full:fifo
1 /* SPDX-License-Identifier: GPL-2.0 */
5 * Copyright (C) 2008 Hewlett-Packard Development Company, L.P.
49 * -> alloc_lock used when adding/removing/searching ccb_alloc,
51 * --> fifo_lock controls access to fifo queues shared with hw
72 * Channel control block. Used to manage hardware queues.
133 /* hardware version of ccb, using physical addrs */
136 /* hardware ccb is written to this shared mapped device memory */
144 /* pointer to hardware device info */
158 * FIFO queue structure, shared with hw.
162 struct fifo { struct
163 u64 nrents; /* user requested number of fifo entries */ argument
164 u64 imask; /* mask to extract valid fifo index */ argument
166 u64 reset; /* set to non-zero when the target device resets */
167 u8 pad_0[ILO_CACHE_SZ - (sizeof(u64) * 4)];
170 u8 pad_1[ILO_CACHE_SZ - (sizeof(u64))];
173 u8 pad_2[ILO_CACHE_SZ - (sizeof(u64))];
178 /* convert between struct fifo, and the fifobar, which is saved in the ccb */ argument
179 #define FIFOHANDLESIZE (sizeof(struct fifo))
181 ((struct fifo *)(((char *)(_fifo)) - FIFOHANDLESIZE))
187 /* state bit, fifo entry consumed by consumer */
189 /* state bit, fifo entry is occupied */
201 #define ENTRY_MASK ((1 << ENTRY_BITS_TOTAL) - 1)
202 #define ENTRY_MASK_C (((1 << ENTRY_BITS_C) - 1) << ENTRY_BITPOS_C)
203 #define ENTRY_MASK_O (((1 << ENTRY_BITS_O) - 1) << ENTRY_BITPOS_O)
205 (((1 << ENTRY_BITS_QWORDS) - 1) << ENTRY_BITPOS_QWORDS)
207 (((1 << ENTRY_BITS_DESCRIPTOR) - 1) << ENTRY_BITPOS_DESCRIPTOR)