Files
ladybird/Kernel/Arch/aarch64/FramebufferMailboxMessages.h
Jakub V. Flasar 6d2c298b66 Kernel: Move aarch64 Prekernel into Kernel
As there is no need for a Prekernel on aarch64, the Prekernel code was
moved into Kernel itself. The functionality remains the same.

SERENITY_KERNEL_AND_INITRD in run.sh specifies a kernel and an inital
ramdisk to be used by the emulator. This is needed because aarch64
does not need a Prekernel and the other ones do.
2022-03-12 14:54:12 -08:00

114 lines
2.3 KiB
C++

/*
* Copyright (c) 2021, Marcin Undak <mcinek@gmail.com>
*
* SPDX-License-Identifier: BSD-2-Clause
*/
#pragma once
#include <Kernel/Arch/aarch64/Mailbox.h>
namespace Prekernel {
class FramebufferSetPhysicalSizeMboxMessage : public Mailbox::Message {
public:
u32 width;
u32 height;
FramebufferSetPhysicalSizeMboxMessage()
: Mailbox::Message(0x48003, 8)
{
width = 0;
height = 0;
}
};
static_assert(sizeof(FramebufferSetPhysicalSizeMboxMessage) == 20);
class FramebufferSetVirtualSizeMboxMessage : public Mailbox::Message {
public:
u32 width;
u32 height;
FramebufferSetVirtualSizeMboxMessage()
: Mailbox::Message(0x48004, 8)
{
width = 0;
height = 0;
}
};
static_assert(sizeof(FramebufferSetVirtualSizeMboxMessage) == 20);
class FramebufferSetVirtualOffsetMboxMessage : public Mailbox::Message {
public:
u32 x;
u32 y;
FramebufferSetVirtualOffsetMboxMessage()
: Mailbox::Message(0x48009, 8)
{
x = 0;
y = 0;
}
};
static_assert(sizeof(FramebufferSetVirtualOffsetMboxMessage) == 20);
class FramebufferSetDepthMboxMessage : public Mailbox::Message {
public:
u32 depth_bits;
FramebufferSetDepthMboxMessage()
: Mailbox::Message(0x48005, 4)
{
depth_bits = 0;
}
};
static_assert(sizeof(FramebufferSetDepthMboxMessage) == 16);
class FramebufferSetPixelOrderMboxMessage : public Mailbox::Message {
public:
enum PixelOrder : u32 {
BGR = 0,
RGB = 1
};
PixelOrder pixel_order;
FramebufferSetPixelOrderMboxMessage()
: Mailbox::Message(0x48006, 4)
{
pixel_order = PixelOrder::BGR;
}
};
static_assert(sizeof(FramebufferSetPixelOrderMboxMessage) == 16);
class FramebufferAllocateBufferMboxMessage : public Mailbox::Message {
public:
union {
u32 alignment;
u32 address;
};
u32 size = 0;
FramebufferAllocateBufferMboxMessage()
: Mailbox::Message(0x40001, 8)
{
alignment = 0;
size = 0;
}
};
static_assert(sizeof(FramebufferAllocateBufferMboxMessage) == 20);
class FramebufferGetPithMboxMessage : public Mailbox::Message {
public:
u32 pitch;
FramebufferGetPithMboxMessage()
: Mailbox::Message(0x40008, 4)
{
pitch = 0;
}
};
static_assert(sizeof(FramebufferGetPithMboxMessage) == 16);
}