home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
linuxmafia.com 2016
/
linuxmafia.com.tar
/
linuxmafia.com
/
pub
/
palmos
/
ifmapper-src-0.7.tar.gz
/
ifmapper-src-0.7.tar
/
ifmapper-0.7
/
callback.h
next >
Wrap
C/C++ Source or Header
|
2000-04-22
|
743b
|
25 lines
#ifndef __CALLBACK_H__
#define __CALLBACK_H__
/* This is a workaround for a bug in the current version of gcc:
gcc assumes that no one will touch %a4 after it is set up in crt0.o.
This isn't true if a function is called as a callback by something
that wasn't compiled by gcc (like FrmCloseAllForms()). It may also
not be true if it is used as a callback by something in a different
shared library.
We really want a function attribute "callback" which will insert this
progloue and epilogoue automatically.
- Ian */
register void *reg_a4 asm("%a4");
#define CALLBACK_PROLOGUE \
void *save_a4 = reg_a4; asm("move.l %%a5,%%a4; sub.l #edata,%%a4" : :);
#define CALLBACK_EPILOGUE reg_a4 = save_a4;
#endif