Пример #1
0
def _io_to_core(exported_obj: Core, data: Data):
    io = exported_obj.new_io(exported_obj.cache.get_default_queue(), 0,
                             data.size, IoDir.WRITE, 0, 0)
    io.set_data(data)

    completion = OcfCompletion([("err", c_int)])
    io.callback = completion.callback
    io.submit()
    completion.wait()

    assert completion.results["err"] == 0, "IO to exported object completion"
Пример #2
0
def io_to_core(exported_obj: Core, data: Data, offset: int, to_core_device=False):
    io = exported_obj.new_core_io() if to_core_device else exported_obj.new_io()
    io.set_data(data)
    io.configure(offset, data.size, IoDir.WRITE, 0, 0)
    io.set_queue(exported_obj.cache.get_default_queue())

    completion = OcfCompletion([("err", c_int)])
    io.callback = completion.callback
    io.submit()
    completion.wait()

    assert completion.results["err"] == 0, "IO to exported object completion"
Пример #3
0
def io_from_exported_object(exported_obj: Core, buffer_size: int, offset: int):
    read_buffer = Data(buffer_size)
    io = exported_obj.new_io(exported_obj.cache.get_default_queue(), offset,
                             read_buffer.size, IoDir.READ, 0, 0)
    io.set_data(read_buffer)

    completion = OcfCompletion([("err", c_int)])
    io.callback = completion.callback
    io.submit()
    completion.wait()

    assert completion.results["err"] == 0, "IO from exported object completion"
    return read_buffer
Пример #4
0
def send_io(exported_obj: Core,
            data: Data,
            addr: int = 0,
            target_ioclass: int = 0):
    io = exported_obj.new_io(
        exported_obj.cache.get_default_queue(),
        addr,
        data.size,
        IoDir.WRITE,
        target_ioclass,
        0,
    )

    io.set_data(data)

    completion = OcfCompletion([("err", c_int)])
    io.callback = completion.callback
    io.submit()
    completion.wait()

    assert completion.results["err"] == 0, "IO to exported object completion"