mirror of
https://github.com/Qortal/Brooklyn.git
synced 2025-01-30 23:02:18 +00:00
2a709f28fa
* 0day explit mitigation * Memory corruption prevention * Privilege escalation prevention * Buffer over flow prevention * File System corruption defense * Thread escape prevention This may very well be the most intensive inclusion to BrooklynR. This will not be part of an x86 suite nor it will be released as tool kit. The security core toolkit will remain part of kernel base.
45 lines
1.5 KiB
C
45 lines
1.5 KiB
C
#ifndef _LINUX_LGUEST_LAUNCHER
|
|
#define _LINUX_LGUEST_LAUNCHER
|
|
/* Everything the "lguest" userspace program needs to know. */
|
|
#include <linux/types.h>
|
|
|
|
/*D:010
|
|
* Drivers
|
|
*
|
|
* The Guest needs devices to do anything useful. Since we don't let it touch
|
|
* real devices (think of the damage it could do!) we provide virtual devices.
|
|
* We emulate a PCI bus with virtio devices on it; we used to have our own
|
|
* lguest bus which was far simpler, but this tests the virtio 1.0 standard.
|
|
*
|
|
* Virtio devices are also used by kvm, so we can simply reuse their optimized
|
|
* device drivers. And one day when everyone uses virtio, my plan will be
|
|
* complete. Bwahahahah!
|
|
*/
|
|
|
|
/* Write command first word is a request. */
|
|
enum lguest_req
|
|
{
|
|
LHREQ_INITIALIZE, /* + base, pfnlimit, start */
|
|
LHREQ_GETDMA, /* No longer used */
|
|
LHREQ_IRQ, /* + irq */
|
|
LHREQ_BREAK, /* No longer used */
|
|
LHREQ_EVENTFD, /* No longer used. */
|
|
LHREQ_GETREG, /* + offset within struct pt_regs (then read value). */
|
|
LHREQ_SETREG, /* + offset within struct pt_regs, value. */
|
|
LHREQ_TRAP, /* + trap number to deliver to guest. */
|
|
};
|
|
|
|
/*
|
|
* This is what read() of the lguest fd populates. trap ==
|
|
* LGUEST_TRAP_ENTRY for an LHCALL_NOTIFY (addr is the
|
|
* argument), 14 for a page fault in the MMIO region (addr is
|
|
* the trap address, insn is the instruction), or 13 for a GPF
|
|
* (insn is the instruction).
|
|
*/
|
|
struct lguest_pending {
|
|
__u8 trap;
|
|
__u8 insn[7];
|
|
__u32 addr;
|
|
};
|
|
#endif /* _LINUX_LGUEST_LAUNCHER */
|