38 lines
750 B
C++
38 lines
750 B
C++
|
#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);
|
||
|
}
|