5 /* Memory access functions */
18 void v_wrb(u32 addr
, u8 val
) {
22 void v_wrw(u32 addr
, u16 val
) {
26 void v_wrl(u32 addr
, u32 val
) {
30 void *vptr(u32 addr
) {
34 void rconv_v86_to_LRMI(struct v86_regs
*rs
, struct LRMI_regs
*rd
)
36 memset(rd
, 0, sizeof(*rd
));
46 rd
->flags
= rs
->eflags
;
55 void rconv_LRMI_to_v86(struct LRMI_regs
*rs
, struct v86_regs
*rd
)
65 rd
->eflags
= rs
->flags
;
75 int err
= LRMI_init();
80 return (err
== 1) ? 0 : 1;
89 * Perform a simulated interrupt call.
91 int v86_int(int num
, struct v86_regs
*regs
)
96 rconv_v86_to_LRMI(regs
, &r
);
97 err
= LRMI_int(num
, &r
);
98 rconv_LRMI_to_v86(&r
, regs
);
100 return (err
== 1) ? 0 : 1;
103 inline void v86_mem_free(u32 m
) {
104 LRMI_free_real((void*)m
);
107 inline u32
v86_mem_alloc(int size
) {
108 return (u32
)LRMI_alloc_real(size
);