/fuchsia/zircon/system/dev/block/block/ |
H A D | server.cpp | 84 void InQueueAdd(zx_handle_t vmo, uint64_t length, uint64_t vmo_offset, argument 99 IoBuffer::IoBuffer(zx::vmo vmo, vmoid_t id) : io_vmo_(fbl::move(vmo)), vmoid_(id) {} argument 141 ZX_DEBUG_ASSERT(group < MAX_TXN_GROUP_COUNT); groups_[group].Complete(status); } } zx_status_t BlockServer::Read(block_fifo_request_t* requests, size_t* count) { auto cleanup = fbl::MakeAutoCall([this]() { TerminateQueue(); ZX_ASSERT(pending_count_.load() == 0); ZX_ASSERT(in_queue_.is_empty()); fifo_.signal(0, kSignalFifoTerminated); }); zx_status_t status; while (true) { status = fifo_.read(requests, BLOCK_FIFO_MAX_DEPTH, count); zx_signals_t signals; zx_signals_t seen; switch (status) { case ZX_ERR_SHOULD_WAIT: signals = ZX_FIFO_READABLE | ZX_FIFO_PEER_CLOSED | kSignalFifoTerminate | kSignalFifoOpsComplete; if ((status = fifo_.wait_one(signals, zx::time::infinite(), &seen)) != ZX_OK) { return status; } if (seen & kSignalFifoOpsComplete) { BarrierComplete(); continue; } if ((seen & ZX_FIFO_PEER_CLOSED) || (seen & kSignalFifoTerminate)) { return ZX_ERR_PEER_CLOSED; } break; case ZX_OK: cleanup.cancel(); return ZX_OK; default: return status; } } } zx_status_t BlockServer::FindVmoIDLocked(vmoid_t* out) { for (vmoid_t i = last_id_; i < fbl::numeric_limits<vmoid_t>::max(); i++) { if (!tree_.find(i).IsValid()) { *out = i; last_id_ = static_cast<vmoid_t>(i + 1); return ZX_OK; } } for (vmoid_t i = VMOID_INVALID + 1; i < last_id_; i++) { if (!tree_.find(i).IsValid()) { *out = i; last_id_ = static_cast<vmoid_t>(i + 1); return ZX_OK; } } return ZX_ERR_NO_RESOURCES; } zx_status_t BlockServer::AttachVmo(zx::vmo vmo, vmoid_t* out) { zx_status_t status; vmoid_t id; fbl::AutoLock server_lock(&server_lock_); if ((status = FindVmoIDLocked(&id)) != ZX_OK) { return status; } fbl::AllocChecker ac; fbl::RefPtr<IoBuffer> ibuf = fbl::AdoptRef(new (&ac) IoBuffer(fbl::move(vmo), id)); if (!ac.check()) { return ZX_ERR_NO_MEMORY; } tree_.insert(fbl::move(ibuf)); *out = id; return ZX_OK; } void BlockServer::TxnEnd() { size_t old_count = pending_count_.fetch_sub(1); ZX_ASSERT(old_count > 0); if ((old_count == 1) && barrier_in_progress_.load()) { fifo_.signal(0, kSignalFifoOpsComplete); } } void BlockServer::InQueueDrainer() { while (true) { if (in_queue_.is_empty()) { return; } auto msg = in_queue_.begin(); if (deferred_barrier_before_) { msg->op.command |= BLOCK_FL_BARRIER_BEFORE; deferred_barrier_before_ = false; } if (msg->op.command & BLOCK_FL_BARRIER_BEFORE) argument [all...] |
/fuchsia/zircon/system/dev/block/gpt/ |
H A D | gpt.c | 243 static zx_status_t vmo_read(zx_handle_t vmo, void* data, uint64_t off, size_t len) { argument 261 zx_handle_t vmo = ZX_HANDLE_INVALID; local [all...] |
/fuchsia/zircon/system/dev/block/ramdisk/ |
H A D | ramdisk.c | 48 zx_handle_t vmo; member in struct:ramdisk_device 397 static zx_status_t ramctl_config(ramctl_device_t* ramctl, zx_handle_t vmo, argument 475 zx_handle_t vmo; local 490 zx_handle_t* vmo = (zx_handle_t*)cmd; local [all...] |
/fuchsia/zircon/system/dev/block/mbr/ |
H A D | mbr.c | 216 static zx_status_t vmo_read(zx_handle_t vmo, void* data, uint64_t off, size_t len) { argument 234 zx_handle_t vmo = ZX_HANDLE_INVALID; local [all...] |
/fuchsia/zircon/system/dev/bus/acpi/ |
H A D | bus-acpi.c | 248 zx_handle_t vmo; local
|
/fuchsia/zircon/system/uapp/hidtouch/ |
H A D | main.c | 475 zx_handle_t vmo = fb_get_single_buffer(); local
|
/fuchsia/zircon/system/ulib/fdio/ |
H A D | spawn.c | 62 static zx_status_t load_path(const char* path, zx_handle_t* vmo) { argument
|
H A D | remoteio.c | 771 zx_handle_t vmo; local
|
/fuchsia/zircon/system/ulib/framebuffer/ |
H A D | framebuffer.c | 37 static zx_handle_t vmo = ZX_HANDLE_INVALID; variable [all...] |
/fuchsia/zircon/system/ulib/memfs/ |
H A D | directory.cpp | 296 CreateFromVmo(fbl::StringPiece name, zx_handle_t vmo, zx_off_t off, zx_off_t len) argument
|
/fuchsia/zircon/system/ulib/runtests-utils/ |
H A D | fuchsia-run-test.cpp | 138 zx_status_t PublishDataSink(void* ctx, const char* sink_name, zx_handle_t vmo) { argument
|
/fuchsia/zircon/kernel/dev/iommu/intel/ |
H A D | iommu_impl.cpp | 248 zx_status_t IommuImpl::Map(uint64_t bus_txn_id, const fbl::RefPtr<VmObject>& vmo, argument 277 zx_status_t IommuImpl::MapContiguous(uint64_t bus_txn_id, const fbl::RefPtr<VmObject>& vmo, argument
|
/fuchsia/zircon/kernel/object/ |
H A D | diagnostics.cpp | 224 DumpVmObject( const VmObject& vmo, char format_unit, zx_handle_t handle, uint32_t rights, zx_koid_t koid) argument 331 auto vmo = map->vmo(); variable 489 auto vmo = map->vmo(); variable [all...] |
/fuchsia/zircon/kernel/syscalls/ |
H A D | object.cpp | 392 fbl::RefPtr<VmObjectDispatcher> vmo; local
|
/fuchsia/zircon/kernel/vm/ |
H A D | vm_address_region.cpp | 74 CreateSubVmarInternal(size_t offset, size_t size, uint8_t align_pow2, uint32_t vmar_flags, fbl::RefPtr<VmObject> vmo, uint64_t vmo_offset, uint arch_mmu_flags, const char* name, fbl::RefPtr<VmAddressRegionOrMapping>* out) argument 218 CreateVmMapping(size_t mapping_offset, size_t size, uint8_t align_pow2, uint32_t vmar_flags, fbl::RefPtr<VmObject> vmo, uint64_t vmo_offset, uint arch_mmu_flags, const char* name, fbl::RefPtr<VmMapping>* out) argument 269 OverwriteVmMapping( vaddr_t base, size_t size, uint32_t vmar_flags, fbl::RefPtr<VmObject> vmo, uint64_t vmo_offset, uint arch_mmu_flags, fbl::RefPtr<VmAddressRegionOrMapping>* out) argument [all...] |
/fuchsia/zircon/system/core/devmgr/ |
H A D | devhost.cpp | 127 static zx_status_t dh_find_driver(const char* libname, zx_handle_t vmo, zx_driver_t** out) { argument 883 devhost_load_firmware(zx_device_t* dev, const char* path, zx_handle_t* vmo, size_t* size) argument [all...] |
/fuchsia/zircon/system/core/virtcon/ |
H A D | vc-display.cpp | 258 static zx_status_t import_vmo(zx_handle_t vmo, fuchsia_display_ImageConfig* config, uint64_t* id) { argument
|
/fuchsia/zircon/system/dev/bus/platform/ |
H A D | platform-proxy-device.cpp | 289 zx::vmo vmo; local 323 zx::vmo vm local [all...] |
/fuchsia/zircon/system/dev/bus/virtio/ |
H A D | gpu.cpp | 68 virtio_gpu_import_vmo_image(void* ctx, image_t* image, zx_handle_t vmo, size_t offset) argument
|
/fuchsia/zircon/system/dev/display/vim-display/ |
H A D | vim-display.cpp | 81 static zx_status_t vim_import_vmo_image(void* ctx, image_t* image, zx_handle_t vmo, size_t offset) { argument
|
/fuchsia/zircon/system/uapp/disk-pave/ |
H A D | pave-lib.cpp | 82 zx_status_t RegisterFastBlockIo(const fbl::unique_fd& fd, zx_handle_t vmo, argument [all...] |
/fuchsia/zircon/system/ulib/minfs/ |
H A D | minfs-private.h | 63 inline void validate_vmo_size(zx_handle_t vmo, blk_t blk) { argument [all...] |
/fuchsia/zircon/system/ulib/zxcrypt/ |
H A D | volume.cpp | 101 zx::vmo vmo; local [all...] |
/fuchsia/zircon/system/utest/chromeos-disk-setup/ |
H A D | chromeos-disk-setup.cpp | 85 zx::vmo vmo; local
|
/fuchsia/zircon/system/utest/core/vmar/ |
H A D | vmar.cpp | 234 zx_handle_t vmo; local 365 zx_handle_t vmo; local 467 zx_handle_t vmo, vmo2; local 558 zx_handle_t vmo, vmo2; local 663 zx_handle_t vmo; local 851 zx_handle_t vmo; local 886 zx_handle_t vmo; local 930 zx_handle_t vmo; local 987 zx_handle_t vmo; local 1042 zx_handle_t vmo; local 1154 zx_handle_t vmo; local 1219 zx_handle_t vmo; local [all...] |