Records

Functions

  • fidl::OutgoingMessage MoveToArena (fidl::OutgoingMessage & message, const fdf::Arena & arena)

    Defined at line 12 of file ../../sdk/lib/fidl_driver/natural_messaging.cc

  • fpromise::result<fidl::WireSharedClient<fuchsia_io::File>, zx_status_t> OpenWithResult (const fdf::Namespace & ns, async_dispatcher_t * dispatcher, const char * path, fuchsia_io::Flags flags)

    Opens the given `path` in `ns`, and returns a fpromise::result containing a

    fidl::WireSharedClient on success.

    Defined at line 13 of file ../../sdk/lib/driver/promise/cpp/promise.cc

  • template <typename Protocol>
    fpromise::result<fidl::WireSharedClient<Protocol>, zx_status_t> ConnectWithResult (const fdf::Namespace & ns, async_dispatcher_t * dispatcher, const char * protocol_name)

    Connects to the given `protocol_name` in `ns`, and returns a fpromise::result containing a

    fidl::WireSharedClient on success.

    Defined at line 20 of file ../../sdk/lib/driver/promise/cpp/promise.h

  • template <typename T>
    MMIO_PTR T volatile * GetAddr (const void * ctx, const MmioBuffer & mmio, zx_off_t offs, size_t access_size)

    Defined at line 33 of file ../../sdk/lib/driver/mmio/cpp/mmio-internal.h

  • template <typename ServiceMember>
    zx::result<fdf::ClientEnd<typename ServiceMember::ProtocolType>> DriverTransportConnect (fidl::UnownedClientEnd<fuchsia_io::Directory> svc_dir, std::string_view instance)

    Defined at line 34 of file ../../sdk/lib/driver/incoming/cpp/namespace.h

  • uint8_t Read8 (const void * ctx, const MmioBuffer & mmio, zx_off_t offs)

    Defined at line 41 of file ../../sdk/lib/driver/mmio/cpp/mmio-internal.h

  • uint16_t Read16 (const void * ctx, const MmioBuffer & mmio, zx_off_t offs)

    Defined at line 45 of file ../../sdk/lib/driver/mmio/cpp/mmio-internal.h

  • uint32_t Read32 (const void * ctx, const MmioBuffer & mmio, zx_off_t offs)

    Defined at line 49 of file ../../sdk/lib/driver/mmio/cpp/mmio-internal.h

  • uint64_t Read64 (const void * ctx, const MmioBuffer & mmio, zx_off_t offs)

    Defined at line 53 of file ../../sdk/lib/driver/mmio/cpp/mmio-internal.h

  • void ReadBuffer (const void * ctx, const MmioBuffer & mmio, zx_off_t offs, void * buffer, size_t size)

    Defined at line 57 of file ../../sdk/lib/driver/mmio/cpp/mmio-internal.h

  • void Write8Unsynchronized (const void * ctx, const MmioBuffer & mmio, uint8_t val, zx_off_t offs)

    Defined at line 62 of file ../../sdk/lib/driver/mmio/cpp/mmio-internal.h

  • template <typename ServiceMember>
    zx::result<> DriverTransportConnect (fidl::UnownedClientEnd<fuchsia_io::Directory> svc_dir, fdf::ServerEnd<typename ServiceMember::ProtocolType> server_end, std::string_view instance)

    Defined at line 66 of file ../../sdk/lib/driver/incoming/cpp/namespace.h

  • void Write8 (const void * ctx, const MmioBuffer & mmio, uint8_t val, zx_off_t offs)

    Defined at line 67 of file ../../sdk/lib/driver/mmio/cpp/mmio-internal.h

  • void Write16Unsynchronized (const void * ctx, const MmioBuffer & mmio, uint16_t val, zx_off_t offs)

    Defined at line 72 of file ../../sdk/lib/driver/mmio/cpp/mmio-internal.h

  • void Write16 (const void * ctx, const MmioBuffer & mmio, uint16_t val, zx_off_t offs)

    Defined at line 77 of file ../../sdk/lib/driver/mmio/cpp/mmio-internal.h

  • void Write32Unsynchronized (const void * ctx, const MmioBuffer & mmio, uint32_t val, zx_off_t offs)

    Defined at line 82 of file ../../sdk/lib/driver/mmio/cpp/mmio-internal.h

  • void Write32 (const void * ctx, const MmioBuffer & mmio, uint32_t val, zx_off_t offs)

    Defined at line 87 of file ../../sdk/lib/driver/mmio/cpp/mmio-internal.h

  • void Write64Unsynchronized (const void * ctx, const MmioBuffer & mmio, uint64_t val, zx_off_t offs)

    Defined at line 92 of file ../../sdk/lib/driver/mmio/cpp/mmio-internal.h

  • void Write64 (const void * ctx, const MmioBuffer & mmio, uint64_t val, zx_off_t offs)

    Defined at line 97 of file ../../sdk/lib/driver/mmio/cpp/mmio-internal.h

  • void WriteBufferUnsynchronized (const void * ctx, const MmioBuffer & mmio, zx_off_t offs, const void * buffer, size_t size)

    Defined at line 102 of file ../../sdk/lib/driver/mmio/cpp/mmio-internal.h

  • void WriteBuffer (const void * ctx, const MmioBuffer & mmio, zx_off_t offs, const void * buffer, size_t size)

    Defined at line 107 of file ../../sdk/lib/driver/mmio/cpp/mmio-internal.h

  • zx::result<fdf::MmioBuffer> PDevMakeMmioBufferWeak (PDev::MmioInfo & pdev_mmio, uint32_t cache_policy)

    This helper is marked weak because it is sometimes necessary to provide a

    test-only version that allows for MMIO fakes or mocks to reach the driver under test.

    For example say you have a fake Protocol device that needs to smuggle a fake MMIO:

    class FakePDev {

    .....

    zx::result

    <MmioInfo

    > PDevGetMmio(uint32_t index) {

    MmioInfo out_mmio = {};

    out_mmio.offset = reinterpret_cast

    <size

    _t>(this);

    return zx::ok(out_mmio);

    }

    .....

    };

    The actual implementation expects a real {size, offset, VMO} and therefore it will

    fail. But works if a replacement PDevMakeMmioBufferWeak in the test is provided:

    zx::result

    <fdf

    ::MmioBuffer> PDevMakeMmioBufferWeak(const MmioInfo

    &

    pdev_mmio) {

    auto* test_harness = reinterpret_cast

    <FakePDev

    *>(pdev_mmio.offset);

    return zx::ok(test_harness->fake_mmio());

    }

    Note that if you are using `//sdk/lib/driver/fake-platform-device/cpp`, it provides an

    implementation of this functionality for you. Drivers must set the `mmios` field in

    `FakePDev::Config`.

    Defined at line 242 of file ../../sdk/lib/driver/platform-device/cpp/pdev.cc

Variables

const char *const kFailedToCreateDriverArena

Defined at line 10 of file ../../sdk/lib/fidl_driver/natural_messaging.cc

const MmioBufferOps kUnsynchronizedOps

Defined at line 113 of file ../../sdk/lib/driver/mmio/cpp/mmio-internal.h

const MmioBufferOps kDefaultOps

Defined at line 126 of file ../../sdk/lib/driver/mmio/cpp/mmio-internal.h