Lines Matching refs:from

19  * @from: source, must be 8 byte aligned
20 * @count: number of DWORD (32-bit) quantities to copy from source
22 * Copy data from source to PIO Send Buffer memory, 8 bytes at a time.
31 const void *from, size_t count)
51 writeq(*(u64 *)from, dest);
52 from += sizeof(u64);
67 writeq(*(u64 *)from, dest);
68 from += sizeof(u64);
86 writeq(*(u64 *)from, dest);
87 from += sizeof(u64);
97 writeq(*(u64 *)from, dest);
98 from += sizeof(u64);
109 val.val32[0] = *(u32 *)from;
175 * Read nbytes from "from" and place them in the low bytes
180 * o do not read from from if nbytes is zero
181 * o from may _not_ be u64 aligned.
183 static inline void read_low_bytes(struct pio_buf *pbuf, const void *from,
187 jcopy(&pbuf->carry.val8[0], from, nbytes);
192 * Read nbytes bytes from "from" and put them at the end of pbuf->carry.
196 * o from may _not_ be u64 aligned
200 const void *from, unsigned int nbytes)
202 jcopy(&pbuf->carry.val8[pbuf->carry_bytes], from, nbytes);
259 * @from: data source, QWORD aligned
263 const void *from, size_t nbytes)
282 writeq(*(u64 *)from, dest);
283 from += sizeof(u64);
298 writeq(*(u64 *)from, dest);
299 from += sizeof(u64);
317 writeq(*(u64 *)from, dest);
318 from += sizeof(u64);
328 writeq(*(u64 *)from, dest);
329 from += sizeof(u64);
338 read_low_bytes(pbuf, from, nbytes & 0x7);
350 * @from: data source, is QWORD aligned.
355 static void mid_copy_mix(struct pio_buf *pbuf, const void *from, size_t nbytes)
387 merge_write8(pbuf, dest, from);
388 from += sizeof(u64);
414 merge_write8(pbuf, dest, from);
415 from += sizeof(u64);
425 merge_write8(pbuf, dest, from);
426 from += sizeof(u64);
438 read_extra_bytes(pbuf, from, nread);
464 from += nread; /* from is now not aligned */
465 read_low_bytes(pbuf, from, bytes_left);
468 read_extra_bytes(pbuf, from, bytes_left);
477 * @from: data source, is QWORD aligned
483 const void *from, size_t nbytes)
513 writeq(*(u64 *)from, dest);
514 from += sizeof(u64);
540 writeq(*(u64 *)from, dest);
541 from += sizeof(u64);
551 writeq(*(u64 *)from, dest);
552 from += sizeof(u64);
557 read_low_bytes(pbuf, from, nbytes & 0x7);
568 * @from: data source
571 void seg_pio_copy_mid(struct pio_buf *pbuf, const void *from, size_t nbytes)
573 unsigned long from_align = (unsigned long)from & 0x7;
577 read_extra_bytes(pbuf, from, nbytes);
585 /* bytes to read to align "from" */
596 read_extra_bytes(pbuf, from, to_align);
597 from += to_align;
607 read_extra_bytes(pbuf, from, to_fill);
608 from += to_fill;
637 read_low_bytes(pbuf, from, extra);
638 from += extra;
643 * "extra" may have been reduced in size and "from"
651 /* at this point, from is QW aligned */
655 mid_copy_mix(pbuf, from, nbytes);
657 mid_copy_straight(pbuf, from, nbytes);