fVecs
fVecs(vecs),
fTotalSize += fVecs[i].iov_len;
&& fVecs[fVecIndex].iov_len - fVecOffset <= size) {
size -= fVecs[fVecIndex].iov_len - fVecOffset;
&& fVecOffset >= fVecs[fVecIndex].iov_len) {
data = (uint8*)fVecs[fVecIndex].iov_base + fVecOffset;
size = fVecs[fVecIndex].iov_len - fVecOffset;
const iovec* fVecs;
fVecs(NULL),
delete[] fVecs;
fVecs = new(std::nothrow) generic_io_vec[fPageCount];
if (fVecs == NULL)
add_to_iovec(fVecs, fVecCount, fPageCount,
vfs_asynchronous_read_pages(fRef->vnode, NULL, fOffset, fVecs, fVecCount,
generic_io_vec* fVecs;
fVecs = new(std::nothrow) generic_io_vec[fPagesPerLine];
if (fPages == NULL || fVecs == NULL)
fVecs[vecCount].base = pageAddress;
fVecs[vecCount++].length = B_PAGE_SIZE;
fVecs[vecCount - 1].length += B_PAGE_SIZE;
fVecs[vecCount - 1].length -= padLength;
status_t error = request.Init(firstPageOffset, fVecs, vecCount,
delete[] fVecs;
generic_io_vec* fVecs;
memcpy(fVecs, vecs, sizeof(generic_io_vec) * count);
fVecs[0].base += firstVecOffset;
fVecs[0].length -= firstVecOffset;
fVecs[count - 1].length = lastVecSize;
actualLength += fVecs[i].length;
vector.iov_base = (void*)(addr_t)fVecs[cookie->vec_index].base;
vector.iov_len = fVecs[cookie->vec_index++].length;
&& (fVecCount > 1 || fVecs[0].length > B_PAGE_SIZE)) {
B_KERNEL_READ_AREA | B_KERNEL_WRITE_AREA, fVecs, fVecCount);
const generic_io_vec& currentVec = fVecs[cookie->vec_index];
status_t status = lock_memory_etc(team, (void*)(addr_t)fVecs[i].base,
fVecs[i].length, isWrite ? 0 : B_READ_DEVICE);
unlock_memory_etc(team, (void*)(addr_t)fVecs[i].base, fVecs[i].length,
i, fVecs[i].base, fVecs[i].length);
generic_io_vec* Vecs() { return fVecs; }
generic_io_vec& VecAt(size_t index) { return fVecs[index]; }
generic_io_vec fVecs[1];
generic_io_vec& vec = fVecs[fVecCount++];
return fVecs[index].base >= fBounceBuffer->physical_address
&& fVecs[index].base
i, fVecs[i].base, fVecs[i].length);
generic_io_vec* Vecs() { return fVecs; }
generic_io_vec& VecAt(size_t index) { return fVecs[index]; }
generic_io_vec fVecs[1];
fVecs = (generic_io_vec*)alloc_tracing_buffer_memcpy(vecs,
if (fVecs != NULL) {
out.Print("(%" B_PRIx64 ", %" B_PRIu64 ")", (uint64)fVecs[i].base,
(uint64)fVecs[i].length);
generic_io_vec* fVecs;
generic_io_vec fVecs[32]; // TODO: make dynamic/configurable
fVecs[0].base = (phys_addr_t)page->physical_page_number << PAGE_SHIFT;
fVecs[0].length = B_PAGE_SIZE;
phys_addr_t nextBase = fVecs[fVecCount - 1].base
+ fVecs[fVecCount - 1].length;
fVecs[fVecCount - 1].length += B_PAGE_SIZE;
nextBase = fVecs[0].base - B_PAGE_SIZE;
fVecs[0].base = nextBase;
fVecs[0].length += B_PAGE_SIZE;
&& fVecCount < sizeof(fVecs) / sizeof(fVecs[0])) {
fVecs[i] = fVecs[i - 1];
fVecs[vectorIndex].base
fVecs[vectorIndex].length = B_PAGE_SIZE;
return fCache->WriteAsync(writeOffset, fVecs, fVecCount, writeLength,
status_t status = fCache->Write(writeOffset, fVecs, fVecCount,
fVecs[fCount].offset = diskOffset;
fVecs[fCount].length = length;
if (fTestVecs[0].offset != fVecs[index].offset + diff) {
fTestVecs[0].offset, fVecs[index].offset + diff);
vecs[count].offset = fVecs[index].offset + diff;
vecs[count].length = fVecs[index].length - diff;
i, fOffsets[i], fVecs[i].length, fVecs[i].offset);
if (offset >= fOffsets[i] && offset < fOffsets[i] + fVecs[i].length)
file_io_vec fVecs[MAX_VECS];