/* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */ /* * Copyright(c) 2016 Intel Corporation. */ #ifndef HFI1_SDMA_TXREQ_H #define HFI1_SDMA_TXREQ_H /* increased for AHG */ #define NUM_DESC … /* * struct sdma_desc - canonical fragment descriptor * * This is the descriptor carried in the tx request * corresponding to each fragment. * */ struct sdma_desc { … }; /** * struct sdma_txreq - the sdma_txreq structure (one per packet) * @list: for use by user and by queuing for wait * * This is the representation of a packet which consists of some * number of fragments. Storage is provided to within the structure. * for all fragments. * * The storage for the descriptors are automatically extended as needed * when the currently allocation is exceeded. * * The user (Verbs or PSM) may overload this structure with fields * specific to their use by putting this struct first in their struct. * The method of allocation of the overloaded structure is user dependent * * The list is the only public field in the structure. * */ #define SDMA_TXREQ_S_OK … #define SDMA_TXREQ_S_SENDERROR … #define SDMA_TXREQ_S_ABORTED … #define SDMA_TXREQ_S_SHUTDOWN … /* flags bits */ #define SDMA_TXREQ_F_URGENT … #define SDMA_TXREQ_F_AHG_COPY … #define SDMA_TXREQ_F_USE_AHG … #define SDMA_TXREQ_F_VIP … struct sdma_txreq; callback_t; struct iowait; struct sdma_txreq { … }; static inline int sdma_txreq_built(struct sdma_txreq *tx) { … } #endif /* HFI1_SDMA_TXREQ_H */