Lines Matching refs:from
32 * from this software without specific prior written permission.
60 * @from: source, must be 8 byte aligned
61 * @count: number of DWORD (32-bit) quantities to copy from source
63 * Copy data from source to PIO Send Buffer memory, 8 bytes at a time.
72 const void *from, size_t count)
92 writeq(*(u64 *)from, dest);
93 from += sizeof(u64);
108 writeq(*(u64 *)from, dest);
109 from += sizeof(u64);
127 writeq(*(u64 *)from, dest);
128 from += sizeof(u64);
138 writeq(*(u64 *)from, dest);
139 from += sizeof(u64);
150 val.val32[0] = *(u32 *)from;
216 * Read nbytes from "from" and and place them in the low bytes
221 * o do not read from from if nbytes is zero
222 * o from may _not_ be u64 aligned.
224 static inline void read_low_bytes(struct pio_buf *pbuf, const void *from,
228 jcopy(&pbuf->carry.val8[0], from, nbytes);
233 * Read nbytes bytes from "from" and put them at the end of pbuf->carry.
237 * o from may _not_ be u64 aligned
241 const void *from, unsigned int nbytes)
243 jcopy(&pbuf->carry.val8[pbuf->carry_bytes], from, nbytes);
300 * @from: data source, QWORD aligned
304 const void *from, size_t nbytes)
323 writeq(*(u64 *)from, dest);
324 from += sizeof(u64);
339 writeq(*(u64 *)from, dest);
340 from += sizeof(u64);
358 writeq(*(u64 *)from, dest);
359 from += sizeof(u64);
369 writeq(*(u64 *)from, dest);
370 from += sizeof(u64);
379 read_low_bytes(pbuf, from, nbytes & 0x7);
391 * @from: data source, is QWORD aligned.
396 static void mid_copy_mix(struct pio_buf *pbuf, const void *from, size_t nbytes)
428 merge_write8(pbuf, dest, from);
429 from += sizeof(u64);
455 merge_write8(pbuf, dest, from);
456 from += sizeof(u64);
466 merge_write8(pbuf, dest, from);
467 from += sizeof(u64);
479 read_extra_bytes(pbuf, from, nread);
505 from += nread; /* from is now not aligned */
506 read_low_bytes(pbuf, from, bytes_left);
509 read_extra_bytes(pbuf, from, bytes_left);
518 * @from: data source, is QWORD aligned
524 const void *from, size_t nbytes)
554 writeq(*(u64 *)from, dest);
555 from += sizeof(u64);
581 writeq(*(u64 *)from, dest);
582 from += sizeof(u64);
592 writeq(*(u64 *)from, dest);
593 from += sizeof(u64);
598 read_low_bytes(pbuf, from, nbytes & 0x7);
609 * @from: data source
612 void seg_pio_copy_mid(struct pio_buf *pbuf, const void *from, size_t nbytes)
614 unsigned long from_align = (unsigned long)from & 0x7;
618 read_extra_bytes(pbuf, from, nbytes);
626 /* bytes to read to align "from" */
637 read_extra_bytes(pbuf, from, to_align);
638 from += to_align;
648 read_extra_bytes(pbuf, from, to_fill);
649 from += to_fill;
678 read_low_bytes(pbuf, from, extra);
679 from += extra;
684 * "extra" may have been reduced in size and "from"
692 /* at this point, from is QW aligned */
696 mid_copy_mix(pbuf, from, nbytes);
698 mid_copy_straight(pbuf, from, nbytes);