delorie.com/djgpp/doc/libc/libc_449.html   search  
libc.a reference

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

_go32_dpmi_simulate_fcall_iret

Syntax

 
#include <dpmi.h>

int _go32_dpmi_simulate_fcall_iret(_go32_dpmi_registers *regs);

Description

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.

Return Value

Zero on success, nonzero on failure.

Portability

ANSI/ISO C No
POSIX No

Example

 
_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);


  webmaster     delorie software   privacy  
  Copyright © 2004     Updated Apr 2004