| /linux/tools/virtio/linux/ |
| H A D | scatterlist.h | 15 #define sg_is_chain(sg) ((sg)->page_link & 0x01) argument 16 #define sg_is_last(sg) ((sg)->page_link & 0x02) argument 17 #define sg_chain_ptr(sg) \ argument 18 ((struct scatterlist *) ((sg)->page_link & ~0x03)) 30 static inline void sg_assign_page(struct scatterlist *sg, struct page *page) in sg_assign_page() argument 32 unsigned long page_link = sg->page_link & 0x3; in sg_assign_page() 40 BUG_ON(sg_is_chain(sg)); in sg_assign_page() 42 sg->page_link = page_link | (unsigned long) page; in sg_assign_page() 59 static inline void sg_set_page(struct scatterlist *sg, struct page *page, in sg_set_page() argument 62 sg_assign_page(sg, page); in sg_set_page() [all …]
|
| /linux/drivers/ata/ |
| H A D | sata_gemini.c | 120 bool gemini_sata_bridge_enabled(struct sata_gemini *sg, bool is_ata1) in gemini_sata_bridge_enabled() argument 122 if (!sg->sata_bridge) in gemini_sata_bridge_enabled() 128 if ((sg->muxmode == GEMINI_MUXMODE_2) && in gemini_sata_bridge_enabled() 131 if ((sg->muxmode == GEMINI_MUXMODE_3) && in gemini_sata_bridge_enabled() 139 enum gemini_muxmode gemini_sata_get_muxmode(struct sata_gemini *sg) in gemini_sata_get_muxmode() argument 141 return sg->muxmode; in gemini_sata_get_muxmode() 145 static int gemini_sata_setup_bridge(struct sata_gemini *sg, in gemini_sata_setup_bridge() argument 155 if (sg->muxmode == GEMINI_MUXMODE_2) in gemini_sata_setup_bridge() 157 writel(val, sg->base + GEMINI_SATA0_CTRL); in gemini_sata_setup_bridge() 161 if (sg->muxmode == GEMINI_MUXMODE_3) in gemini_sata_setup_bridge() [all …]
|
| /linux/drivers/clk/sprd/ |
| H A 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/include/crypto/ |
| H A 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() 30 struct scatterlist *sg) in scatterwalk_start() argument 32 walk->sg = sg; in scatterwalk_start() 33 walk->offset = sg->offset; in scatterwalk_start() 41 struct scatterlist *sg, in scatterwalk_start_at_pos() argument 44 while (pos > sg->length) { in scatterwalk_start_at_pos() 45 pos -= sg->length; in scatterwalk_start_at_pos() 46 sg = sg_next(sg); in scatterwalk_start_at_pos() [all …]
|
| /linux/Documentation/scsi/ |
| H A D | scsi-generic.rst | 4 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 38 - https://sg.danny.cz/sg/ [all …]
|
| /linux/drivers/crypto/ |
| H A 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() 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() 83 *sg = new_sg; in omap_crypto_copy_sgs() [all …]
|
| /linux/lib/ |
| H A D | scatterlist.c | 25 int sg_nents(struct scatterlist *sg) in sg_nents() argument 28 for (nents = 0; sg; sg = sg_next(sg)) in sg_nents() 48 int sg_nents_for_len(struct scatterlist *sg, u64 len) in sg_nents_for_len() argument 56 for (nents = 0, total = 0; sg; sg = sg_next(sg)) { in sg_nents_for_len() 58 total += sg->length; in sg_nents_for_len() 84 struct scatterlist *sg; in sg_nents_for_dma() local 87 for_each_sg(sgl, sg, sglen, i) in sg_nents_for_dma() 88 nents += DIV_ROUND_UP(sg_dma_len(sg), len); in sg_nents_for_dma() 109 struct scatterlist *sg, *ret = NULL; in sg_last() local 112 for_each_sg(sgl, sg, nents, i) in sg_last() [all …]
|
| /linux/drivers/gpu/drm/i915/ |
| H A 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/samples/kfifo/ |
| H A D | dma-example.c | 28 struct scatterlist sg[10]; in example_init() local 64 sg_init_table(sg, ARRAY_SIZE(sg)); in example_init() 65 nents = kfifo_dma_in_prepare(&fifo, sg, ARRAY_SIZE(sg), FIFO_SIZE); in example_init() 79 i, sg_page(&sg[i]), sg[i].offset, sg[i].length); in example_init() 81 if (sg_is_last(&sg[i])) in example_init() 95 nents = kfifo_dma_out_prepare(&fifo, sg, ARRAY_SIZE(sg), 8); in example_init() 108 i, sg_page(&sg[i]), sg[i].offset, sg[i].length); in example_init() 110 if (sg_is_last(&sg[i])) in example_init()
|
| /linux/net/core/ |
| H A 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/net/mac80211/ |
| H A 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 …]
|
| /linux/tools/testing/selftests/bpf/progs/ |
| H A D | loop6.c | 28 #define sg_is_chain(sg) ((sg)->page_link & SG_CHAIN) 29 #define sg_is_last(sg) ((sg)->page_link & SG_END) 30 #define sg_chain_ptr(sg) \ 31 ((struct scatterlist *) ((sg)->page_link & ~(SG_CHAIN | SG_END))) 35 struct scatterlist sg; argument 37 bpf_probe_read_kernel(&sg, sizeof(sg), sgp); argument 38 if (sg_is_last(&sg)) 36 sg_is_last(sg) global() argument 42 struct scatterlist sg; __sg_next() local [all...] |
| /linux/drivers/net/ethernet/marvell/octeontx2/nic/ |
| H A D | otx2_txrx.c | 111 struct sg_list *sg; in otx2_xdp_snd_pkt_handler() local 113 sg = &sq->sg[snd_comp->sqe_id]; in otx2_xdp_snd_pkt_handler() 114 if (sg->flags & OTX2_AF_XDP_FRAME) { in otx2_xdp_snd_pkt_handler() 119 if (sg->flags & OTX2_XDP_REDIRECT) in otx2_xdp_snd_pkt_handler() 120 otx2_dma_unmap_page(pfvf, sg->dma_addr[0], sg->size[0], DMA_TO_DEVICE); in otx2_xdp_snd_pkt_handler() 121 xdp_return_frame((struct xdp_frame *)sg->skb); in otx2_xdp_snd_pkt_handler() 122 sg->skb = (u64)NULL; in otx2_xdp_snd_pkt_handler() 135 struct sg_list *sg; in otx2_snd_pkt_handler() local 143 sg = &sq->sg[snd_comp->sqe_id]; in otx2_snd_pkt_handler() 144 skb = (struct sk_buff *)sg->skb; in otx2_snd_pkt_handler() [all …]
|
| /linux/arch/powerpc/platforms/powernv/ |
| H A 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 = kzalloc_objs(*sgs, of_get_child_count(sg)); in opal_sensor_groups_init() [all …]
|
| /linux/drivers/target/iscsi/cxgbit/ |
| H A 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/drivers/gpu/drm/i915/gem/ |
| H A D | i915_gem_internal.c | 21 struct scatterlist *sg; in internal_free_pages() local 23 for (sg = st->sgl; sg; sg = __sg_next(sg)) { in internal_free_pages() 24 if (sg_page(sg)) in internal_free_pages() 25 __free_pages(sg_page(sg), get_order(sg->length)); in internal_free_pages() 36 struct scatterlist *sg; in i915_gem_object_get_pages_internal() local 66 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() 90 sg_mark_end(sg); in i915_gem_object_get_pages_internal() 94 sg = __sg_next(sg); in i915_gem_object_get_pages_internal() 112 sg_set_page(sg, NULL, 0, 0); in i915_gem_object_get_pages_internal() [all …]
|
| /linux/arch/alpha/kernel/ |
| H A D | pci_iommu.c | 475 sg_classify(struct device *dev, struct scatterlist *sg, struct scatterlist *end, in sg_classify() argument 483 leader = sg; in sg_classify() 490 for (++sg; sg < end; ++sg) { in sg_classify() 492 addr = SG_ENT_PHYS_ADDRESS(sg); in sg_classify() 493 len = sg->length; in sg_classify() 499 sg->dma_address = -1; in sg_classify() 502 sg->dma_address = -2; in sg_classify() 509 leader = sg; in sg_classify() 531 struct scatterlist *sg; in sg_fill() local 588 sg = leader; in sg_fill() [all …]
|
| /linux/drivers/crypto/qce/ |
| H A D | dma.c | 59 struct scatterlist *sg = sgt->sgl, *sg_last = NULL; in qce_sgtable_add() local 62 while (sg) { in qce_sgtable_add() 63 if (!sg_page(sg)) in qce_sgtable_add() 65 sg = sg_next(sg); in qce_sgtable_add() 68 if (!sg) in qce_sgtable_add() 71 while (new_sgl && sg && max_len) { in qce_sgtable_add() 73 sg_set_page(sg, sg_page(new_sgl), new_len, new_sgl->offset); in qce_sgtable_add() 74 sg_last = sg; in qce_sgtable_add() 75 sg = sg_next(sg); in qce_sgtable_add() 83 static int qce_dma_prep_sg(struct dma_chan *chan, struct scatterlist *sg, in qce_dma_prep_sg() argument [all …]
|
| /linux/include/linux/ |
| H A D | skmsg.h | 45 struct sk_msg_sg sg; member 153 WARN_ON(i == msg->sg.end && bytes); in sk_msg_check_to_free() 187 sk_msg_iter_var_prev(msg->sg.which) 190 sk_msg_iter_var_next(msg->sg.which) 194 BUILD_BUG_ON(ARRAY_SIZE(msg->sg.data) - 1 != NR_MSG_FRAG_IDS); in sk_msg_init() 196 sg_init_marker(msg->sg.data, NR_MSG_FRAG_IDS); in sk_msg_init() 202 dst->sg.data[which] = src->sg.data[which]; in sk_msg_xfer() 203 __assign_bit(which, dst->sg.copy, test_bit(which, src->sg.copy)); in sk_msg_xfer() 204 dst->sg.data[which].length = size; in sk_msg_xfer() 205 dst->sg.size += size; in sk_msg_xfer() [all …]
|
| /linux/drivers/crypto/cavium/nitrox/ |
| H A D | nitrox_req.h | 482 struct scatterlist *sg; member 573 static inline struct scatterlist *create_single_sg(struct scatterlist *sg, in create_single_sg() argument 576 sg_set_buf(sg, buf, buflen); in create_single_sg() 577 sg++; in create_single_sg() 578 return sg; in create_single_sg() 594 struct scatterlist *sg = to_sg; in create_multi_sg() local 602 sg_set_buf(sg, sg_virt(from_sg), sglen); in create_multi_sg() 604 sg++; in create_multi_sg() 607 return sg; in create_multi_sg() 647 struct scatterlist *sg; in nitrox_creq_set_src_sg() local [all …]
|
| /linux/drivers/target/tcm_fc/ |
| H A D | tfc_io.c | 47 struct scatterlist *sg = NULL; in ft_queue_data_in() local 81 sg = se_cmd->t_data_sg; in ft_queue_data_in() 82 mem_len = sg->length; in ft_queue_data_in() 83 mem_off = sg->offset; in ft_queue_data_in() 84 page = sg_page(sg); in ft_queue_data_in() 99 sg = sg_next(sg); in ft_queue_data_in() 100 mem_len = min((size_t)sg->length, remaining); in ft_queue_data_in() 101 mem_off = sg->offset; in ft_queue_data_in() 102 page = sg_page(sg); in ft_queue_data_in() 202 struct scatterlist *sg = NULL; in ft_recv_write_data() local [all …]
|
| /linux/crypto/ |
| H A D | scatterwalk.c | 20 struct scatterlist *sg = walk->sg; in scatterwalk_skip() local 22 nbytes += walk->offset - sg->offset; in scatterwalk_skip() 24 while (nbytes > sg->length) { in scatterwalk_skip() 25 nbytes -= sg->length; in scatterwalk_skip() 26 sg = sg_next(sg); in scatterwalk_skip() 28 walk->sg = sg; in scatterwalk_skip() 29 walk->offset = sg->offset + nbytes; in scatterwalk_skip() 63 void memcpy_from_sglist(void *buf, struct scatterlist *sg, in memcpy_from_sglist() argument 71 scatterwalk_start_at_pos(&walk, sg, start); in memcpy_from_sglist() 76 void memcpy_to_sglist(struct scatterlist *sg, unsigned int start, in memcpy_to_sglist() argument [all …]
|
| /linux/drivers/usb/storage/ |
| H A D | protocol.c | 126 struct scatterlist *sg = *sgptr; in usb_stor_access_xfer_buf() local 130 if (sg) in usb_stor_access_xfer_buf() 131 nents = sg_nents(sg); in usb_stor_access_xfer_buf() 133 sg = scsi_sglist(srb); in usb_stor_access_xfer_buf() 135 sg_miter_start(&miter, sg, nents, dir == FROM_XFER_BUF ? in usb_stor_access_xfer_buf() 149 if (*offset + len < miter.piter.sg->length) { in usb_stor_access_xfer_buf() 151 *sgptr = miter.piter.sg; in usb_stor_access_xfer_buf() 154 *sgptr = sg_next(miter.piter.sg); in usb_stor_access_xfer_buf() 172 struct scatterlist *sg = NULL; in usb_stor_set_xfer_buf() local 175 buflen = usb_stor_access_xfer_buf(buffer, buflen, srb, &sg, &offset, in usb_stor_set_xfer_buf()
|
| /linux/drivers/gpu/drm/i915/gem/selftests/ |
| H A D | huge_gem_object.c | 33 struct scatterlist *sg, *src, *end; in huge_get_pages() local 50 sg = pages->sgl; in huge_get_pages() 56 sg_mark_end(sg); in huge_get_pages() 60 sg_set_page(sg, page, PAGE_SIZE, 0); in huge_get_pages() 61 sg = __sg_next(sg); in huge_get_pages() 64 for (end = sg, src = pages->sgl; sg; sg = __sg_next(sg)) { in huge_get_pages() 65 sg_set_page(sg, sg_page(src), PAGE_SIZE, 0); in huge_get_pages()
|
| /linux/arch/mips/jazz/ |
| H A D | jazzdma.c | 553 struct scatterlist *sg; in jazz_dma_map_sg() local 555 for_each_sg(sglist, sg, nents, i) { in jazz_dma_map_sg() 557 arch_sync_dma_for_device(sg_phys(sg), sg->length, in jazz_dma_map_sg() 559 sg->dma_address = vdma_alloc(sg_phys(sg), sg->length); in jazz_dma_map_sg() 560 if (sg->dma_address == DMA_MAPPING_ERROR) in jazz_dma_map_sg() 562 sg_dma_len(sg) = sg->length; in jazz_dma_map_sg() 572 struct scatterlist *sg; in jazz_dma_unmap_sg() local 574 for_each_sg(sglist, sg, nents, i) { in jazz_dma_unmap_sg() 576 arch_sync_dma_for_cpu(sg_phys(sg), sg->length, dir); in jazz_dma_unmap_sg() 577 vdma_free(sg->dma_address); in jazz_dma_unmap_sg() [all …]
|