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