Lines Matching refs:length

58 	vec.length = size;
86 i, fVecs[i].base, fVecs[i].length);
289 generic_addr_t& length)
291 if (length > fRestrictions.max_segment_size)
292 length = fRestrictions.max_segment_size;
296 != (base + (length - 1)) / fRestrictions.boundary) {
297 length = (baseBoundary + 1) * fRestrictions.boundary - base;
310 generic_size_t length = vec.length;
313 if (length <= toCut) {
315 toCut -= length;
318 bounceLeft += length;
319 physicalBounceBuffer -= length;
322 vec.length -= toCut;
336 /*! Adds \a length bytes from the bounce buffer to the DMABuffer \a buffer.
337 Takes care of boundary, and segment restrictions. \a length must be aligned.
349 generic_size_t length, bool fixedLength)
351 if (bounceLeft < length) {
355 length = bounceLeft;
365 generic_size_t vecLength = vec.length;
368 vecLength += length;
371 generic_size_t lengthDiff = vecLength - vec.length;
372 length -= lengthDiff;
378 vec.length = vecLength;
382 while (length > 0) {
388 generic_addr_t vecLength = length;
397 length -= vecLength;
454 generic_size_t size = vec.length - vecOffset;
467 vecs[segmentCount].length = entry.size;
495 i, vecs[vecIndex + i].base, vecs[vecIndex + i].length);
519 generic_size_t length;
522 length = fBlockSize;
524 length = (partialBegin + fRestrictions.alignment - 1)
529 length, true) == 0) {
530 TRACE(" adding partial begin failed, length %lu!\n", length);
534 dmaLength += length;
536 generic_size_t transferred = length - partialBegin;
545 TRACE(" partial begin, using bounce buffer: offset: %" B_PRIdOFF ", length: "
546 "%lu\n", offset, length);
555 if (vec.length <= vecOffset) {
556 vecOffset -= vec.length;
562 generic_size_t maxLength = vec.length - vecOffset;
565 generic_size_t length = maxLength;
569 if (dmaLength + length > fRestrictions.max_transfer_size) {
570 length = fRestrictions.max_transfer_size - dmaLength;
571 TRACE(" vec %" B_PRIu32 ": restricting length to %lu due to transfer size "
572 "limit\n", i, length);
574 _RestrictBoundaryAndSegmentSize(base, length);
585 useBounceBufferSize = length;
592 useBounceBufferSize = length;
593 else if (base + length > fRestrictions.high_address)
594 length = fRestrictions.high_address - base;
596 // Align length as well
598 length &= ~(fRestrictions.alignment - 1);
600 // If length is 0, use bounce buffer for complete vec.
601 if (length == 0) {
602 length = maxLength;
603 useBounceBufferSize = length;
604 TRACE(" vec %" B_PRIu32 ": 0 length, using bounce buffer: %lu\n", i,
613 length = _AddBounceBuffer(*dmaBuffer, physicalBounceBuffer,
615 if (length == 0) {
621 TRACE(" vec %" B_PRIu32 ": final bounce length: %lu\n", i, length);
623 TRACE(" vec %" B_PRIu32 ": final length restriction: %lu\n", i, length);
624 dmaBuffer->AddVec(base, length);
627 dmaLength += length;
628 vecOffset += length;
629 transferLeft -= min_c(length, transferLeft);
639 // If the transfer length is block aligned and we're writing past the
654 if (dmaVec.length < fBlockSize)
678 // If total length not block aligned, use bounce buffer for padding (read
682 generic_size_t length
685 // If total length > max transfer size, segment count > max segment
689 if (length > fRestrictions.max_transfer_size
691 || bounceLeft < length - dmaLength) {
692 // cut the part of dma length
693 TRACE(" can't align length due to max transfer size, segment "
701 // bounce buffer for as much as possible of the total length.
716 length - dmaLength);
717 length -= dmaLength;
718 length = _AddBounceBuffer(*dmaBuffer, physicalBounceBuffer,
719 bounceLeft, length, true);
720 if (length == 0)
722 dmaLength += length;