/linux-6.1.9/tools/virtio/linux/ |
D | scatterlist.h | 14 #define sg_is_chain(sg) ((sg)->page_link & 0x01) argument 15 #define sg_is_last(sg) ((sg)->page_link & 0x02) argument 16 #define sg_chain_ptr(sg) \ argument 17 ((struct scatterlist *) ((sg)->page_link & ~0x03)) 29 static inline void sg_assign_page(struct scatterlist *sg, struct page *page) in sg_assign_page() argument 31 unsigned long page_link = sg->page_link & 0x3; in sg_assign_page() 39 BUG_ON(sg_is_chain(sg)); in sg_assign_page() 41 sg->page_link = page_link | (unsigned long) page; in sg_assign_page() 58 static inline void sg_set_page(struct scatterlist *sg, struct page *page, in sg_set_page() argument 61 sg_assign_page(sg, page); in sg_set_page() [all …]
|
/linux-6.1.9/drivers/ata/ |
D | sata_gemini.c | 126 bool gemini_sata_bridge_enabled(struct sata_gemini *sg, bool is_ata1) in gemini_sata_bridge_enabled() argument 128 if (!sg->sata_bridge) in gemini_sata_bridge_enabled() 134 if ((sg->muxmode == GEMINI_MUXMODE_2) && in gemini_sata_bridge_enabled() 137 if ((sg->muxmode == GEMINI_MUXMODE_3) && in gemini_sata_bridge_enabled() 145 enum gemini_muxmode gemini_sata_get_muxmode(struct sata_gemini *sg) in gemini_sata_get_muxmode() argument 147 return sg->muxmode; in gemini_sata_get_muxmode() 151 static int gemini_sata_setup_bridge(struct sata_gemini *sg, in gemini_sata_setup_bridge() argument 161 if (sg->muxmode == GEMINI_MUXMODE_2) in gemini_sata_setup_bridge() 163 writel(val, sg->base + GEMINI_SATA0_CTRL); in gemini_sata_setup_bridge() 167 if (sg->muxmode == GEMINI_MUXMODE_3) in gemini_sata_setup_bridge() [all …]
|
/linux-6.1.9/include/linux/ |
D | scatterlist.h | 31 #define sg_dma_address(sg) ((sg)->dma_address) argument 34 #define sg_dma_len(sg) ((sg)->dma_length) argument 36 #define sg_dma_len(sg) ((sg)->length) argument 77 static inline unsigned int __sg_flags(struct scatterlist *sg) in __sg_flags() argument 79 return sg->page_link & SG_PAGE_LINK_MASK; in __sg_flags() 82 static inline struct scatterlist *sg_chain_ptr(struct scatterlist *sg) in sg_chain_ptr() argument 84 return (struct scatterlist *)(sg->page_link & ~SG_PAGE_LINK_MASK); in sg_chain_ptr() 87 static inline bool sg_is_chain(struct scatterlist *sg) in sg_is_chain() argument 89 return __sg_flags(sg) & SG_CHAIN; in sg_is_chain() 92 static inline bool sg_is_last(struct scatterlist *sg) in sg_is_last() argument [all …]
|
/linux-6.1.9/drivers/clk/sprd/ |
D | gate.c | 13 static void clk_gate_toggle(const struct sprd_gate *sg, bool en) in clk_gate_toggle() argument 15 const struct sprd_clk_common *common = &sg->common; in clk_gate_toggle() 17 bool set = sg->flags & CLK_GATE_SET_TO_DISABLE ? true : false; in clk_gate_toggle() 24 reg |= sg->enable_mask; in clk_gate_toggle() 26 reg &= ~sg->enable_mask; in clk_gate_toggle() 31 static void clk_sc_gate_toggle(const struct sprd_gate *sg, bool en) in clk_sc_gate_toggle() argument 33 const struct sprd_clk_common *common = &sg->common; in clk_sc_gate_toggle() 34 bool set = sg->flags & CLK_GATE_SET_TO_DISABLE ? 1 : 0; in clk_sc_gate_toggle() 45 offset = set ? sg->sc_offset : sg->sc_offset * 2; in clk_sc_gate_toggle() 48 sg->enable_mask); in clk_sc_gate_toggle() [all …]
|
/linux-6.1.9/drivers/crypto/ |
D | omap-crypto.c | 17 struct scatterlist **sg, in omap_crypto_copy_sg_lists() argument 20 int n = sg_nents(*sg); in omap_crypto_copy_sg_lists() 24 new_sg = kmalloc_array(n, sizeof(*sg), GFP_KERNEL); in omap_crypto_copy_sg_lists() 33 while (*sg && total) { in omap_crypto_copy_sg_lists() 34 int len = (*sg)->length; in omap_crypto_copy_sg_lists() 41 sg_set_page(tmp, sg_page(*sg), len, (*sg)->offset); in omap_crypto_copy_sg_lists() 47 *sg = sg_next(*sg); in omap_crypto_copy_sg_lists() 50 *sg = new_sg; in omap_crypto_copy_sg_lists() 55 static int omap_crypto_copy_sgs(int total, int bs, struct scatterlist **sg, in omap_crypto_copy_sgs() argument 73 scatterwalk_map_and_copy(buf, *sg, 0, total, 0); in omap_crypto_copy_sgs() [all …]
|
/linux-6.1.9/Documentation/scsi/ |
D | scsi-generic.rst | 4 Notes on Linux SCSI Generic (sg) driver 11 The SCSI Generic driver (sg) is one of the four "high level" SCSI device 15 Thus sg is used for scanners, CD writers and reading audio CDs digitally 23 Major versions of the sg driver 25 There are three major versions of sg found in the linux kernel (lk): 26 - sg version 1 (original) from 1992 to early 1999 (lk 2.2.5) . 28 - sg version 2 from lk 2.2.6 in the 2.2 series. It is based on 30 - sg version 3 found in the lk 2.4 series (and the lk 2.5 series). 36 The most recent documentation of the sg driver is kept at the Linux 41 This describes the sg version 3 driver found in the lk 2.4 series. [all …]
|
/linux-6.1.9/drivers/gpu/drm/i915/ |
D | i915_scatterlist.c | 18 struct scatterlist *sg, *new_sg; in i915_sg_trim() local 28 for_each_sg(orig_st->sgl, sg, orig_st->nents, i) { in i915_sg_trim() 29 sg_set_page(new_sg, sg_page(sg), sg->length, 0); in i915_sg_trim() 30 sg_dma_address(new_sg) = sg_dma_address(sg); in i915_sg_trim() 31 sg_dma_len(new_sg) = sg_dma_len(sg); in i915_sg_trim() 89 struct scatterlist *sg; in i915_rsgt_from_mm_node() local 105 sg = st->sgl; in i915_rsgt_from_mm_node() 114 if (offset != prev_end || sg->length >= max_segment) { in i915_rsgt_from_mm_node() 116 sg = __sg_next(sg); in i915_rsgt_from_mm_node() 118 sg_dma_address(sg) = region_start + offset; in i915_rsgt_from_mm_node() [all …]
|
D | i915_scatterlist.h | 50 static inline int __sg_page_count(const struct scatterlist *sg) in __sg_page_count() argument 52 return sg->length >> PAGE_SHIFT; in __sg_page_count() 55 static inline int __sg_dma_page_count(const struct scatterlist *sg) in __sg_dma_page_count() argument 57 return sg_dma_len(sg) >> PAGE_SHIFT; in __sg_dma_page_count() 60 static inline struct scatterlist *____sg_next(struct scatterlist *sg) in ____sg_next() argument 62 ++sg; in ____sg_next() 63 if (unlikely(sg_is_chain(sg))) in ____sg_next() 64 sg = sg_chain_ptr(sg); in ____sg_next() 65 return sg; in ____sg_next() 77 static inline struct scatterlist *__sg_next(struct scatterlist *sg) in __sg_next() argument [all …]
|
/linux-6.1.9/lib/ |
D | scatterlist.c | 23 struct scatterlist *sg_next(struct scatterlist *sg) in sg_next() argument 25 if (sg_is_last(sg)) in sg_next() 28 sg++; in sg_next() 29 if (unlikely(sg_is_chain(sg))) in sg_next() 30 sg = sg_chain_ptr(sg); in sg_next() 32 return sg; in sg_next() 45 int sg_nents(struct scatterlist *sg) in sg_nents() argument 48 for (nents = 0; sg; sg = sg_next(sg)) in sg_nents() 68 int sg_nents_for_len(struct scatterlist *sg, u64 len) in sg_nents_for_len() argument 76 for (nents = 0, total = 0; sg; sg = sg_next(sg)) { in sg_nents_for_len() [all …]
|
/linux-6.1.9/include/crypto/ |
D | scatterwalk.h | 21 struct scatterlist *sg, int num) in scatterwalk_crypto_chain() argument 23 if (sg) in scatterwalk_crypto_chain() 24 sg_chain(head, num, sg); in scatterwalk_crypto_chain() 31 unsigned int len = walk->sg->offset + walk->sg->length - walk->offset; in scatterwalk_pagelen() 51 return sg_page(walk->sg) + (walk->offset >> PAGE_SHIFT); in scatterwalk_page() 60 struct scatterlist *sg) in scatterwalk_start() argument 62 walk->sg = sg; in scatterwalk_start() 63 walk->offset = sg->offset; in scatterwalk_start() 78 page = sg_page(walk->sg) + ((walk->offset - 1) >> PAGE_SHIFT); in scatterwalk_pagedone() 82 if (more && walk->offset >= walk->sg->offset + walk->sg->length) in scatterwalk_pagedone() [all …]
|
/linux-6.1.9/arch/s390/mm/ |
D | gmap.c | 240 struct gmap *sg, *next; in gmap_remove() local 246 list_for_each_entry_safe(sg, next, &gmap->children, list) { in gmap_remove() 247 list_del(&sg->list); in gmap_remove() 248 gmap_put(sg); in gmap_remove() 1183 static inline void gmap_insert_rmap(struct gmap *sg, unsigned long vmaddr, in gmap_insert_rmap() argument 1189 BUG_ON(!gmap_is_shadow(sg)); in gmap_insert_rmap() 1190 slot = radix_tree_lookup_slot(&sg->host_to_rmap, vmaddr >> PAGE_SHIFT); in gmap_insert_rmap() 1193 &sg->guest_table_lock); in gmap_insert_rmap() 1200 radix_tree_replace_slot(&sg->host_to_rmap, slot, rmap); in gmap_insert_rmap() 1203 radix_tree_insert(&sg->host_to_rmap, vmaddr >> PAGE_SHIFT, in gmap_insert_rmap() [all …]
|
/linux-6.1.9/include/soc/fsl/ |
D | dpaa2-fd.h | 310 static inline dma_addr_t dpaa2_sg_get_addr(const struct dpaa2_sg_entry *sg) in dpaa2_sg_get_addr() argument 312 return (dma_addr_t)le64_to_cpu(sg->addr); in dpaa2_sg_get_addr() 320 static inline void dpaa2_sg_set_addr(struct dpaa2_sg_entry *sg, dma_addr_t addr) in dpaa2_sg_set_addr() argument 322 sg->addr = cpu_to_le64(addr); in dpaa2_sg_set_addr() 325 static inline bool dpaa2_sg_short_len(const struct dpaa2_sg_entry *sg) in dpaa2_sg_short_len() argument 327 return !!((le16_to_cpu(sg->format_offset) >> SG_SHORT_LEN_FLAG_SHIFT) in dpaa2_sg_short_len() 337 static inline u32 dpaa2_sg_get_len(const struct dpaa2_sg_entry *sg) in dpaa2_sg_get_len() argument 339 if (dpaa2_sg_short_len(sg)) in dpaa2_sg_get_len() 340 return le32_to_cpu(sg->len) & SG_SHORT_LEN_MASK; in dpaa2_sg_get_len() 342 return le32_to_cpu(sg->len); in dpaa2_sg_get_len() [all …]
|
/linux-6.1.9/samples/kfifo/ |
D | dma-example.c | 26 struct scatterlist sg[10]; in example_init() local 62 sg_init_table(sg, ARRAY_SIZE(sg)); in example_init() 63 nents = kfifo_dma_in_prepare(&fifo, sg, ARRAY_SIZE(sg), FIFO_SIZE); in example_init() 77 i, sg_page(&sg[i]), sg[i].offset, sg[i].length); in example_init() 79 if (sg_is_last(&sg[i])) in example_init() 93 nents = kfifo_dma_out_prepare(&fifo, sg, ARRAY_SIZE(sg), 8); in example_init() 106 i, sg_page(&sg[i]), sg[i].offset, sg[i].length); in example_init() 108 if (sg_is_last(&sg[i])) in example_init()
|
/linux-6.1.9/drivers/media/pci/tw68/ |
D | tw68-risc.c | 38 struct scatterlist *sg; in tw68_risc_field() local 54 sg = sglist; in tw68_risc_field() 57 while (offset && offset >= sg_dma_len(sg)) { in tw68_risc_field() 58 offset -= sg_dma_len(sg); in tw68_risc_field() 59 sg = sg_next(sg); in tw68_risc_field() 61 if (bpl <= sg_dma_len(sg) - offset) { in tw68_risc_field() 65 *(rp++) = cpu_to_le32(sg_dma_address(sg) + offset); in tw68_risc_field() 76 done = (sg_dma_len(sg) - offset); in tw68_risc_field() 80 *(rp++) = cpu_to_le32(sg_dma_address(sg) + offset); in tw68_risc_field() 82 sg = sg_next(sg); in tw68_risc_field() [all …]
|
/linux-6.1.9/drivers/net/ethernet/marvell/octeontx2/nic/ |
D | otx2_txrx.c | 102 static void otx2_dma_unmap_skb_frags(struct otx2_nic *pfvf, struct sg_list *sg) in otx2_dma_unmap_skb_frags() argument 106 for (seg = 0; seg < sg->num_segs; seg++) { in otx2_dma_unmap_skb_frags() 107 otx2_dma_unmap_page(pfvf, sg->dma_addr[seg], in otx2_dma_unmap_skb_frags() 108 sg->size[seg], DMA_TO_DEVICE); in otx2_dma_unmap_skb_frags() 110 sg->num_segs = 0; in otx2_dma_unmap_skb_frags() 118 struct sg_list *sg; in otx2_xdp_snd_pkt_handler() local 122 sg = &sq->sg[snd_comp->sqe_id]; in otx2_xdp_snd_pkt_handler() 124 pa = otx2_iova_to_phys(pfvf->iommu_domain, sg->dma_addr[0]); in otx2_xdp_snd_pkt_handler() 125 otx2_dma_unmap_page(pfvf, sg->dma_addr[0], in otx2_xdp_snd_pkt_handler() 126 sg->size[0], DMA_TO_DEVICE); in otx2_xdp_snd_pkt_handler() [all …]
|
/linux-6.1.9/tools/testing/selftests/bpf/progs/ |
D | loop6.c | 34 #define sg_is_chain(sg) ((sg)->page_link & SG_CHAIN) argument 35 #define sg_is_last(sg) ((sg)->page_link & SG_END) argument 36 #define sg_chain_ptr(sg) \ argument 37 ((struct scatterlist *) ((sg)->page_link & ~(SG_CHAIN | SG_END))) 41 struct scatterlist sg; in __sg_next() local 43 bpf_probe_read_kernel(&sg, sizeof(sg), sgp); in __sg_next() 44 if (sg_is_last(&sg)) in __sg_next() 49 bpf_probe_read_kernel(&sg, sizeof(sg), sgp); in __sg_next() 50 if (sg_is_chain(&sg)) in __sg_next() 51 sgp = sg_chain_ptr(&sg); in __sg_next()
|
/linux-6.1.9/net/mac80211/ |
D | aead_api.c | 22 struct scatterlist sg[3]; in aead_encrypt() local 35 sg_init_table(sg, 3); in aead_encrypt() 36 sg_set_buf(&sg[0], __aad, aad_len); in aead_encrypt() 37 sg_set_buf(&sg[1], data, data_len); in aead_encrypt() 38 sg_set_buf(&sg[2], mic, mic_len); in aead_encrypt() 41 aead_request_set_crypt(aead_req, sg, sg, data_len, b_0); in aead_encrypt() 42 aead_request_set_ad(aead_req, sg[0].length); in aead_encrypt() 54 struct scatterlist sg[3]; in aead_decrypt() local 70 sg_init_table(sg, 3); in aead_decrypt() 71 sg_set_buf(&sg[0], __aad, aad_len); in aead_decrypt() [all …]
|
D | aes_gmac.c | 20 struct scatterlist sg[5]; in ieee80211_aes_gmac() local 41 sg_init_table(sg, 5); in ieee80211_aes_gmac() 42 sg_set_buf(&sg[0], __aad, GMAC_AAD_LEN); in ieee80211_aes_gmac() 43 sg_set_buf(&sg[1], zero, 8); in ieee80211_aes_gmac() 44 sg_set_buf(&sg[2], data + 8, data_len - 8 - GMAC_MIC_LEN); in ieee80211_aes_gmac() 45 sg_set_buf(&sg[3], zero, GMAC_MIC_LEN); in ieee80211_aes_gmac() 46 sg_set_buf(&sg[4], mic, GMAC_MIC_LEN); in ieee80211_aes_gmac() 48 sg_init_table(sg, 4); in ieee80211_aes_gmac() 49 sg_set_buf(&sg[0], __aad, GMAC_AAD_LEN); in ieee80211_aes_gmac() 50 sg_set_buf(&sg[1], data, data_len - GMAC_MIC_LEN); in ieee80211_aes_gmac() [all …]
|
/linux-6.1.9/drivers/dma/ |
D | dma-axi-dmac.c | 120 struct axi_dmac_sg sg[]; member 212 struct axi_dmac_sg *sg; in axi_dmac_start_transfer() local 229 sg = &desc->sg[desc->num_submitted]; in axi_dmac_start_transfer() 232 if (sg->id != AXI_DMAC_SG_UNUSED) { in axi_dmac_start_transfer() 233 sg->schedule_when_free = true; in axi_dmac_start_transfer() 249 sg->id = axi_dmac_read(dmac, AXI_DMAC_REG_TRANSFER_ID); in axi_dmac_start_transfer() 252 axi_dmac_write(dmac, AXI_DMAC_REG_DEST_ADDRESS, sg->dest_addr); in axi_dmac_start_transfer() 253 axi_dmac_write(dmac, AXI_DMAC_REG_DEST_STRIDE, sg->dest_stride); in axi_dmac_start_transfer() 257 axi_dmac_write(dmac, AXI_DMAC_REG_SRC_ADDRESS, sg->src_addr); in axi_dmac_start_transfer() 258 axi_dmac_write(dmac, AXI_DMAC_REG_SRC_STRIDE, sg->src_stride); in axi_dmac_start_transfer() [all …]
|
/linux-6.1.9/net/core/ |
D | skmsg.c | 14 if (msg->sg.end > msg->sg.start && in sk_msg_try_coalesce_ok() 15 elem_first_coalesce < msg->sg.end) in sk_msg_try_coalesce_ok() 18 if (msg->sg.end < msg->sg.start && in sk_msg_try_coalesce_ok() 19 (elem_first_coalesce > msg->sg.start || in sk_msg_try_coalesce_ok() 20 elem_first_coalesce < msg->sg.end)) in sk_msg_try_coalesce_ok() 30 u32 osize = msg->sg.size; in sk_msg_alloc() 33 len -= msg->sg.size; in sk_msg_alloc() 51 i = msg->sg.end; in sk_msg_alloc() 53 sge = &msg->sg.data[i]; in sk_msg_alloc() 65 sge = &msg->sg.data[msg->sg.end]; in sk_msg_alloc() [all …]
|
/linux-6.1.9/arch/powerpc/platforms/powernv/ |
D | opal-sensor-groups.c | 27 struct attribute_group sg; member 129 static int __init add_attr_group(const __be32 *ops, int len, struct sensor_group *sg, in add_attr_group() argument 138 add_attr(handle, &sg->sgattrs[count], j); in add_attr_group() 139 sg->sg.attrs[count] = in add_attr_group() 140 &sg->sgattrs[count].attr.attr; in add_attr_group() 144 return sysfs_create_group(sg_kobj, &sg->sg); in add_attr_group() 162 struct device_node *sg, *node; in opal_sensor_groups_init() local 165 sg = of_find_compatible_node(NULL, NULL, "ibm,opal-sensor-group"); in opal_sensor_groups_init() 166 if (!sg) { in opal_sensor_groups_init() 171 sgs = kcalloc(of_get_child_count(sg), sizeof(*sgs), GFP_KERNEL); in opal_sensor_groups_init() [all …]
|
/linux-6.1.9/drivers/target/iscsi/cxgbit/ |
D | cxgbit_ddp.c | 13 struct scatterlist *sg = sg_pp ? *sg_pp : NULL; in cxgbit_set_one_ppod() local 21 if (sg) { in cxgbit_set_one_ppod() 22 addr = sg_dma_address(sg); in cxgbit_set_one_ppod() 23 len = sg_dma_len(sg); in cxgbit_set_one_ppod() 27 if (sg) { in cxgbit_set_one_ppod() 30 if (offset == (len + sg->offset)) { in cxgbit_set_one_ppod() 32 sg = sg_next(sg); in cxgbit_set_one_ppod() 33 if (sg) { in cxgbit_set_one_ppod() 34 addr = sg_dma_address(sg); in cxgbit_set_one_ppod() 35 len = sg_dma_len(sg); in cxgbit_set_one_ppod() [all …]
|
/linux-6.1.9/drivers/gpu/drm/i915/gem/ |
D | i915_gem_internal.c | 22 struct scatterlist *sg; in internal_free_pages() local 24 for (sg = st->sgl; sg; sg = __sg_next(sg)) { in internal_free_pages() 25 if (sg_page(sg)) in internal_free_pages() 26 __free_pages(sg_page(sg), get_order(sg->length)); in internal_free_pages() 37 struct scatterlist *sg; in i915_gem_object_get_pages_internal() local 65 sg = st->sgl; in i915_gem_object_get_pages_internal() 85 sg_set_page(sg, page, PAGE_SIZE << order, 0); in i915_gem_object_get_pages_internal() 91 sg_mark_end(sg); in i915_gem_object_get_pages_internal() 95 sg = __sg_next(sg); in i915_gem_object_get_pages_internal() 113 sg_set_page(sg, NULL, 0, 0); in i915_gem_object_get_pages_internal() [all …]
|
/linux-6.1.9/drivers/crypto/gemini/ |
D | sl3516-ce-cipher.c | 28 struct scatterlist *sg; in sl3516_ce_need_fallback() local 49 sg = areq->src; in sl3516_ce_need_fallback() 50 while (sg) { in sl3516_ce_need_fallback() 51 if ((sg->length % 16) != 0) { in sl3516_ce_need_fallback() 55 if ((sg_dma_len(sg) % 16) != 0) { in sl3516_ce_need_fallback() 59 if (!IS_ALIGNED(sg->offset, 16)) { in sl3516_ce_need_fallback() 63 sg = sg_next(sg); in sl3516_ce_need_fallback() 65 sg = areq->dst; in sl3516_ce_need_fallback() 66 while (sg) { in sl3516_ce_need_fallback() 67 if ((sg->length % 16) != 0) { in sl3516_ce_need_fallback() [all …]
|
/linux-6.1.9/drivers/crypto/qce/ |
D | dma.c | 53 struct scatterlist *sg = sgt->sgl, *sg_last = NULL; in qce_sgtable_add() local 56 while (sg) { in qce_sgtable_add() 57 if (!sg_page(sg)) in qce_sgtable_add() 59 sg = sg_next(sg); in qce_sgtable_add() 62 if (!sg) in qce_sgtable_add() 65 while (new_sgl && sg && max_len) { in qce_sgtable_add() 67 sg_set_page(sg, sg_page(new_sgl), new_len, new_sgl->offset); in qce_sgtable_add() 68 sg_last = sg; in qce_sgtable_add() 69 sg = sg_next(sg); in qce_sgtable_add() 77 static int qce_dma_prep_sg(struct dma_chan *chan, struct scatterlist *sg, in qce_dma_prep_sg() argument [all …]
|