| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
#include <dpmi.h> int _go32_dpmi_simulate_fcall_iret(_go32_dpmi_registers *regs); |
See section DPMI Overview.
This function simulates a real-mode far call to a function that returns
with an iret instruction. The registers are set up from
regs, including CS and IP, which indicate the
address of the call. Any registers the function modifies are reflected
in regs on return.
If SS and SP are both zero, a small temporary stack is
used when in real mode. If not, they are used as is. It's a good
idea to use memset to initialize the register structure before
using it.
Zero on success, nonzero on failure.
| ANSI/ISO C | No |
| POSIX | No |
_go32_dpmi_registers r;
r.x.ax = 47;
r.x.cs = some_segment;
r.x.ip = some_offset;
r.x.ss = r.x.sp = 0;
_go32_dpmi_simulate_fcall_iret(&r);
printf("returns %d\n", r.x.ax);
|