Lines Matching +full:sc +full:- +full:resource
1 /*-
2 * SPDX-License-Identifier: BSD-2-Clause
4 * Copyright (C) 2008-2009 Semihalf, Piotr Ziecik
147 int (*sem_make_desc)(struct sec_softc *sc,
196 struct resource *sc_rres; /* register resource */
203 struct resource *sc_pri_ires; /* primary irq resource */
205 int sc_pri_irid; /* primary irq resource id */
207 struct resource *sc_sec_ires; /* secondary irq resource */
209 int sc_sec_irid; /* secondary irq resource id */
213 #define SEC_LOCK(sc, what) \ argument
214 mtx_lock(&(sc)->sc_ ## what ## _lock)
215 #define SEC_UNLOCK(sc, what) \ argument
216 mtx_unlock(&(sc)->sc_ ## what ## _lock)
217 #define SEC_LOCK_ASSERT(sc, what) \ argument
218 mtx_assert(&(sc)->sc_ ## what ## _lock, MA_OWNED)
221 #define SEC_READ(sc, reg) \ argument
222 bus_space_read_8((sc)->sc_bas.bst, (sc)->sc_bas.bsh, (reg))
223 #define SEC_WRITE(sc, reg, val) \ argument
224 bus_space_write_8((sc)->sc_bas.bst, (sc)->sc_bas.bsh, (reg), (val))
227 #define SEC_CNT_INIT(sc, cnt, wrap) \ argument
228 (((sc)->cnt) = ((wrap) - 1))
229 #define SEC_ADD(sc, cnt, wrap, val) \ argument
230 ((sc)->cnt = (((sc)->cnt) + (val)) & ((wrap) - 1))
231 #define SEC_INC(sc, cnt, wrap) \ argument
232 SEC_ADD(sc, cnt, wrap, 1)
233 #define SEC_DEC(sc, cnt, wrap) \ argument
234 SEC_ADD(sc, cnt, wrap, -1)
235 #define SEC_GET_GENERIC(sc, tab, cnt, wrap) \ argument
236 ((sc)->tab[SEC_INC(sc, cnt, wrap)])
237 #define SEC_PUT_GENERIC(sc, tab, cnt, wrap, val) \ argument
238 ((sc)->tab[SEC_INC(sc, cnt, wrap)] = val)
241 #define SEC_GET_FREE_DESC(sc) \ argument
242 &SEC_GET_GENERIC(sc, sc_desc, sc_free_desc_get_cnt, SEC_DESCRIPTORS)
244 #define SEC_PUT_BACK_FREE_DESC(sc) \ argument
245 SEC_DEC(sc, sc_free_desc_get_cnt, SEC_DESCRIPTORS)
247 #define SEC_DESC_FREE2READY(sc) \ argument
248 SEC_INC(sc, sc_ready_desc_put_cnt, SEC_DESCRIPTORS)
250 #define SEC_GET_READY_DESC(sc) \ argument
251 &SEC_GET_GENERIC(sc, sc_desc, sc_ready_desc_get_cnt, SEC_DESCRIPTORS)
253 #define SEC_PUT_BACK_READY_DESC(sc) \ argument
254 SEC_DEC(sc, sc_ready_desc_get_cnt, SEC_DESCRIPTORS)
256 #define SEC_DESC_READY2QUEUED(sc) \ argument
257 SEC_INC(sc, sc_queued_desc_put_cnt, SEC_DESCRIPTORS)
259 #define SEC_GET_QUEUED_DESC(sc) \ argument
260 &SEC_GET_GENERIC(sc, sc_desc, sc_queued_desc_get_cnt, SEC_DESCRIPTORS)
262 #define SEC_PUT_BACK_QUEUED_DESC(sc) \ argument
263 SEC_DEC(sc, sc_queued_desc_get_cnt, SEC_DESCRIPTORS)
265 #define SEC_DESC_QUEUED2FREE(sc) \ argument
266 SEC_INC(sc, sc_free_desc_put_cnt, SEC_DESCRIPTORS)
268 #define SEC_FREE_DESC_CNT(sc) \ argument
269 (((sc)->sc_free_desc_put_cnt - (sc)->sc_free_desc_get_cnt - 1) \
270 & (SEC_DESCRIPTORS - 1))
272 #define SEC_READY_DESC_CNT(sc) \ argument
273 (((sc)->sc_ready_desc_put_cnt - (sc)->sc_ready_desc_get_cnt) & \
274 (SEC_DESCRIPTORS - 1))
276 #define SEC_QUEUED_DESC_CNT(sc) \ argument
277 (((sc)->sc_queued_desc_put_cnt - (sc)->sc_queued_desc_get_cnt) \
278 & (SEC_DESCRIPTORS - 1))
280 #define SEC_DESC_SYNC(sc, mode) do { \ argument
281 sec_sync_dma_mem(&((sc)->sc_desc_dmem), (mode)); \
282 sec_sync_dma_mem(&((sc)->sc_lt_dmem), (mode)); \
288 sec_sync_dma_mem(&((desc)->sd_ptr_dmem[i]), (mode)); \
294 sec_free_dma_mem(&(desc)->sd_ptr_dmem[i]); \
297 #define SEC_DESC_PUT_BACK_LT(sc, desc) \ argument
298 SEC_PUT_BACK_LT(sc, (desc)->sd_lt_used)
300 #define SEC_DESC_FREE_LT(sc, desc) \ argument
301 SEC_FREE_LT(sc, (desc)->sd_lt_used)
304 #define SEC_ALLOC_LT_ENTRY(sc) \ argument
305 &SEC_GET_GENERIC(sc, sc_lt, sc_lt_alloc_cnt, SEC_LT_ENTRIES)
307 #define SEC_PUT_BACK_LT(sc, num) \ argument
308 SEC_ADD(sc, sc_lt_alloc_cnt, SEC_LT_ENTRIES, -(num))
310 #define SEC_FREE_LT(sc, num) \ argument
311 SEC_ADD(sc, sc_lt_free_cnt, SEC_LT_ENTRIES, num)
313 #define SEC_FREE_LT_CNT(sc) \ argument
314 (((sc)->sc_lt_free_cnt - (sc)->sc_lt_alloc_cnt - 1) \
315 & (SEC_LT_ENTRIES - 1))