vecCount
const struct iovec* vecs, size_t vecCount,
const struct iovec* vecs, size_t vecCount,
uint64 offset, size_t numBlocks, physical_entry* vecs, size_t vecCount,
fssh_size_t vecCount, uint32_t *_vecIndex,
fssh_size_t vecCount, uint32_t *_vecIndex,
size_t vecCount, size_t bufferSize, uint32 flags,
const iovec *msgVecs, size_t vecCount,
get_iovecs_from_user(const iovec* userVecs, size_t vecCount, iovec* vecs,
if (vecCount == 0)
if (user_memcpy(vecs, userVecs, sizeof(iovec) * vecCount) != B_OK)
for (size_t i = 0; i < vecCount; i++) {
struct generic_io_vec* vecs, uint32 vecCount);
struct iovec* iovecs, uint32 vecCount);
struct iovec* iovecs, uint32 vecCount);
size_t vecCount, ancillary_data_container* ancillaryData,
size_t vecCount, ancillary_data_container** _ancillaryData,
const struct iovec *msgVecs, size_t vecCount,
uint32 vecCount;
uint32 vecCount;
uint32 vecCount;
uint32 vecCount = request->vecCount;
if (result == B_OK && vecCount > DoIterativeFDIORequest::MAX_VECS)
request->cookie, request->vecs, vecCount);
uint32 vecCount;
uint32 vecCount)
vecCount(vecCount)
size_t vecCount = 0;
while (size > 0 && vecCount < cookie->vecCount
&& vecCount < *_count) {
cookie->vecs[vecCount].length);
vecs[vecCount].offset = cookie->vecs[vecCount].offset;
vecs[vecCount].length = maxSize;
vecCount++;
cookie->vecCount = 0;
if (vecCount > 0) {
*_count = vecCount;
request->vecCount = maxVecs;
uint32 vecCount = reply->vecCount;
if (vecCount < 0 || vecCount > maxVecs)
memcpy(vecs, reply->vecs, vecCount * sizeof(file_io_vec));
*_count = vecCount;
const file_io_vec* vecs, uint32 vecCount)
this, fd, requestID, clientCookie, request->Offset(), vecs, vecCount);
cookie->vecCount = 0;
uint32 vecCount);
size_t vecCount = IterativeIOGetVecsReply::MAX_VECS;
request->offset, request->size, vecs, &vecCount);
vecCount = std::min(vecCount,
memcpy(reply->vecs, vecs, vecCount * sizeof(file_io_vec));
reply->vecCount = vecCount;
reply->vecCount = 0;
size_t fileVecCount, const struct iovec *vecs, size_t vecCount,
size_t fileVecCount, const struct iovec *vecs, size_t vecCount,
int32 requestID, void* cookie, const file_io_vec* vecs, uint32 vecCount)
if (vecCount > 0) {
vecCount = std::min(vecCount, (uint32)DoIterativeFDIORequest::MAX_VECS);
memcpy(request->vecs, vecs, sizeof(file_io_vec) * vecCount);
request->vecCount = vecCount;
void* cookie, const file_io_vec* vecs, uint32 vecCount);
physical_entry* vecs, size_t vecCount, bool isWrite,
request->sg_count = vecCount;
uint64 offset, size_t numBlocks, physical_entry* vecs, size_t vecCount,
return read_write(device, request, NULL, offset, numBlocks, vecs, vecCount,
uint64 offset, size_t numBlocks, physical_entry* vecs, size_t vecCount,
UnixDatagramEndpoint::Send(const iovec* vecs, size_t vecCount,
ssize_t result = targetFifo->Write(vecs, vecCount, ancillaryData, &sourceAddress,
UnixDatagramEndpoint::Receive(const iovec* vecs, size_t vecCount,
ssize_t result = fifo->Read(vecs, vecCount, _ancillaryData, &addressStorage, timeout,
ssize_t Send(const iovec* vecs, size_t vecCount,
ssize_t Receive(const iovec* vecs, size_t vecCount,
virtual ssize_t Send(const iovec* vecs, size_t vecCount,
virtual ssize_t Receive(const iovec* vecs, size_t vecCount,
UnixFifo::Read(const iovec* vecs, size_t vecCount,
find_thread(NULL), this, vecs, vecCount, timeout, peek);
UnixRequest request(vecs, vecCount, NULL, address, peek);
UnixFifo::Write(const iovec* vecs, size_t vecCount,
")\n", find_thread(NULL), this, vecs, vecCount, ancillaryData,
UnixRequest request(vecs, vecCount, ancillaryData,
ssize_t Read(const iovec* vecs, size_t vecCount,
ssize_t Write(const iovec* vecs, size_t vecCount,
UnixStreamEndpoint::Send(const iovec* vecs, size_t vecCount,
find_thread(NULL), this, vecs, vecCount, ancillaryData);
ssize_t result = peerFifo->Write(vecs, vecCount, ancillaryData, NULL, timeout);
UnixStreamEndpoint::Receive(const iovec* vecs, size_t vecCount,
find_thread(NULL), this, vecs, vecCount);
ssize_t result = fifo->Read(vecs, vecCount, _ancillaryData, NULL, timeout,
ssize_t Send(const iovec* vecs, size_t vecCount,
ssize_t Receive(const iovec* vecs, size_t vecCount,
size_t vecCount, ancillary_data_container *ancillaryData,
return ((UnixEndpoint*)_protocol)->Send(vecs, vecCount, ancillaryData,
size_t vecCount, ancillary_data_container **_ancillaryData,
return ((UnixEndpoint*)_protocol)->Receive(vecs, vecCount, _ancillaryData,
get_iovecs(net_buffer* _buffer, struct iovec* iovecs, uint32 vecCount)
while (node != NULL && count < vecCount) {
int vecCount = header ? header->msg_iovlen : 1;
socket->first_protocol, vecs, vecCount, ancillaryData, address,
int vecCount = header ? header->msg_iovlen : 1;
socket->first_protocol, vecs, vecCount, &ancillaryData, address,
get_iovecs(net_buffer *_buffer, struct iovec *iovecs, uint32 vecCount)
int32 vecCount = ring_buffer_get_vecs(syslogBuffer, vecs);
if (vecCount > 0) {
ssize_t written = writev(fd, vecs, vecCount);
uint32 vecCount = 0;
add_to_iovec(vecs, vecCount, MAX_IO_VECS,
vecCount, B_PHYSICAL_IO_REQUEST, &numBytes);
uint32 vecCount = 0;
add_to_iovec(vecs, vecCount, MAX_IO_VECS,
generic_addr_t last = vecs[vecCount - 1].base
+ vecs[vecCount - 1].length - B_PAGE_SIZE;
for (uint32 i = 0; i < vecCount; i++) {
vecCount, B_PHYSICAL_IO_REQUEST, &numBytes);
FileMap::_Add(file_io_vec* vecs, size_t vecCount, off_t& lastOffset)
TRACE("FileMap@%p::Add(vecCount = %ld)\n", this, vecCount);
status_t status = _MakeSpace(fCount + vecCount);
for (uint32 i = 0; i < vecCount; i++) {
size_t vecCount = kMaxVecs;
status = vfs_get_file_map(Vnode(), mapEnd, ~0UL, vecs, &vecCount);
status = _Add(vecs, vecCount, mapEnd);
status_t _Add(file_io_vec* vecs, size_t vecCount,
size_t vecCount = 0;
if (vecCount == 0 || pageAddress != vecsEndAddress) {
fVecs[vecCount].base = pageAddress;
fVecs[vecCount++].length = B_PAGE_SIZE;
fVecs[vecCount - 1].length += B_PAGE_SIZE;
if (vecCount > 0 && padLength != B_PAGE_SIZE)
fVecs[vecCount - 1].length -= padLength;
status_t error = request.Init(firstPageOffset, fVecs, vecCount,
uint32 vecCount = fBuffer->VecCount();
while (fVecIndex < vecCount
uint32 vecCount = fDMABuffer->VecCount();
for (uint32 i = 0; error == B_OK && i < vecCount; i++) {
uint32 vecCount = fDMABuffer->VecCount();
if (vecs[vecCount - 1].length <= toSkip) {
toSkip -= vecs[vecCount - 1].length;
vecCount--;
for (; i < vecCount; i++) {
uint32 vecCount = fDMABuffer->VecCount();
for (uint32 i = 0; i < vecCount; i++) {
uint32 vecCount = fDMABuffer->VecCount();
for (int32 i = vecCount - 1; i >= 0; i--) {
int32 vecCount = fBuffer->VecCount();
for (; startVec < vecCount; startVec++) {
for (; endVec < vecCount; endVec++) {
int32 vecCount = buffer.VecCount();
for (int32 i = vecCount - 1; toCut > 0 && i >= 0; i--) {
vecCount--;
buffer.SetVecCount(vecCount);
uint32 vecCount = buffer.VecCount();
if (vecCount > 0) {
generic_io_vec& vec = buffer.VecAt(vecCount - 1);
if (vecCount == fRestrictions.max_segment_count)
vecCount++;
zero_iovecs(const iovec* vecs, size_t vecCount, size_t bytes)
for (size_t i = 0; i < vecCount && bytes > 0; i++) {
size_t vecCount, uint32* _vecIndex, size_t* _vecOffset, size_t* _numBytes,
&vecs[vecIndex], vecCount - vecIndex, &size);
zero_iovecs(&vecs[vecIndex], vecCount - vecIndex, size);
for (; vecIndex < vecCount; vecIndex++) {
for (size = 0; (off_t)size < fileLeft && vecIndex < vecCount
if (size != bytes || vecIndex >= vecCount) {
const iovec* vecs, size_t vecCount, uint32* _vecIndex, size_t* _vecOffset,
fileVecs, fileVecCount, vecs, vecCount, _vecIndex, _vecOffset, _bytes,
const iovec* vecs, size_t vecCount, uint32* _vecIndex, size_t* _vecOffset,
fileVecs, fileVecCount, vecs, vecCount, _vecIndex, _vecOffset, _bytes,
size_t vecCount = kMaxSubRequests;
requestLength, vecs, &vecCount);
if (vecCount == 0) {
TRACE_RIO("[%ld] got %zu file vecs\n", find_thread(NULL), vecCount);
i < vecCount && subRequestCount < kMaxSubRequests && error == B_OK;
size_t vecCount, size_t bufferSize, uint32 flags, bigtime_t timeout)
for (uint32 i = 0; i < vecCount; i++) {
size_t vecCount, size_t bufferSize, uint32 flags, bigtime_t timeout)
if (vecCount > IOV_MAX)
BStackOrHeapArray<iovec, 16> vecs(vecCount);
if (userVecs != NULL && vecCount != 0) {
status_t status = get_iovecs_from_user(userVecs, vecCount, vecs);
status_t status = writev_port_etc(port, messageCode, vecs, vecCount,
struct generic_io_vec* vecs, uint32 vecCount)
addressSpec, _size, protection, vecs, vecCount));
if (vecCount == 0)
for (uint32 i = 0; i < vecCount; i++) {
while (vecOffset >= vecs[vecIndex].length && vecIndex < vecCount) {
if (vecIndex >= vecCount)
file_map::Add(file_io_vec *vecs, size_t vecCount, off_t &lastOffset)
TRACE(("file_map::Add(vecCount = %ld)\n", vecCount));
if (vecCount <= CACHED_FILE_EXTENTS && count == 0) {
(count + vecCount) * sizeof(file_extent));
count += vecCount;
for (uint32 i = 0; i < vecCount; i++) {
size_t vecCount = maxVecs;
status = vfs_get_file_map(ref->vnode, mapOffset, ~0UL, vecs, &vecCount);
status_t addStatus = ref->map.Add(vecs, vecCount, mapOffset);
vecCount = maxVecs;
status_t Add(file_io_vec *vecs, size_t vecCount, off_t &lastOffset);
fssh_size_t fileVecCount, const fssh_iovec *vecs, fssh_size_t vecCount,
vecCount - vecIndex, &size);
for (; vecIndex < vecCount; vecIndex++) {
for (size = 0; (uint64_t)size < (uint64_t)fileLeft && vecIndex < vecCount
if (size != bytes || vecIndex >= vecCount) {
fssh_size_t fileVecCount, const fssh_iovec *vecs, fssh_size_t vecCount,
vecs, vecCount, _vecIndex, _vecOffset, _bytes, false);
fssh_size_t fileVecCount, const fssh_iovec *vecs, fssh_size_t vecCount,
vecs, vecCount, _vecIndex, _vecOffset, _bytes, true);