Luna/kernel/src/fs/devices/FramebufferDevice.cpp

38 lines
750 B
C++
Raw Normal View History

#include "fs/devices/FramebufferDevice.h"
#include "video/Framebuffer.h"
#include <luna/CString.h>
Result<SharedPtr<Device>> FramebufferDevice::create()
{
return (SharedPtr<Device>)TRY(make_shared<FramebufferDevice>());
}
Result<usize> FramebufferDevice::read(u8*, usize, usize) const
{
return 0;
}
Result<usize> FramebufferDevice::write(const u8* buf, usize offset, usize length)
{
if ((offset + length) > size()) length = size() - offset;
memcpy(Framebuffer::ptr() + offset, buf, length);
return length;
}
usize FramebufferDevice::size() const
{
return Framebuffer::size();
}
bool FramebufferDevice::blocking() const
{
return false;
}
Result<u64> FramebufferDevice::ioctl(int, void*)
{
return err(EINVAL);
}