Subversion Repositories HelenOS

Compare Revisions

Ignore whitespace Rev 1830 → Rev 1831

/trunk/kernel/arch/xen32/include/boot/boot.h
49,6 → 49,9
 
#define mp_map ((pfn_t *) XEN_VIRT_START)
 
#define SIF_PRIVILEGED (1 << 0) /**< Privileged domain */
#define SIF_INITDOMAIN (1 << 1) /**< Iinitial control domain */
 
#include <arch/types.h>
 
typedef uint32_t evtchn_t;
101,7 → 104,7
uint32_t flags; /**< SIF_xxx flags */
pfn_t store_mfn; /**< Shared page (machine page) */
evtchn_t store_evtchn; /**< Event channel for store communication */
void *console_mfn; /**< Console page (machine address) */
pfn_t console_mfn; /**< Console page (machine page) */
evtchn_t console_evtchn; /**< Event channel for console messages */
pte_t *ptl0; /**< Boot PTL0 (kernel address) */
uint32_t pt_frames; /**< Number of bootstrap page table frames */
/trunk/kernel/arch/xen32/include/asm.h
41,10 → 41,6
#include <arch/barrier.h>
#include <config.h>
 
extern uint32_t interrupt_handler_size;
 
extern void interrupt_handlers(void);
 
extern void enable_l_apic_in_msr(void);
 
 
/trunk/kernel/arch/xen32/include/hypercall.h
40,14 → 40,27
uint8_t vector; /**< Exception vector */
uint8_t flags; /**< 0-3: privilege level; 4: clear event enable */
uint16_t cs; /**< Code selector */
uintptr_t address; /**< Code offset */
void *address; /**< Code offset */
} trap_info_t;
 
 
typedef struct {
evtchn_t port;
} evtchn_send_t;
 
typedef struct {
uint32_t cmd;
union {
evtchn_send_t send;
};
} evtchn_op_t;
 
 
#define XEN_SET_TRAP_TABLE 0
#define XEN_MMU_UPDATE 1
#define XEN_SET_CALLBACKS 4
#define XEN_UPDATE_VA_MAPPING 14
#define XEN_EVENT_CHANNEL_OP 16
#define XEN_VERSION 17
#define XEN_CONSOLE_IO 18
#define XEN_VM_ASSIST 21
78,6 → 91,9
#define MMUEXT_NEW_USER_BASEPTR 15
 
 
#define EVTCHNOP_SEND 4
 
 
#define UVMF_NONE 0 /**< No flushing at all */
#define UVMF_TLB_FLUSH 1 /**< Flush entire TLB(s) */
#define UVMF_INVLPG 2 /**< Flush only one entry */
226,4 → 242,13
return hypercall2(XEN_VERSION, cmd, arg);
}
 
static inline int xen_notify_remote(evtchn_t channel)
{
evtchn_op_t op;
op.cmd = EVTCHNOP_SEND;
op.send.port = channel;
return hypercall1(XEN_EVENT_CHANNEL_OP, &op);
}
 
#endif