[Scummvm-cvs-logs] CVS: scummvm/backends/PalmOS/Src/arm macros.h,NONE,1.1
Chris Apers
chrilith at users.sourceforge.net
Sun Sep 12 05:37:01 CEST 2004
- Previous message: [Scummvm-cvs-logs] CVS: scummvm/backends/PalmOS/Src/arm ArmNative.h,1.3,NONE copy_rect.cpp,1.2,NONE copy_rect.h,1.1,NONE wide_ls.cpp,1.1,NONE wide_ls.h,1.1,NONE wide_pt.cpp,1.1,NONE wide_pt.h,1.1,NONE
- Next message: [Scummvm-cvs-logs] CVS: scummvm/backends/PalmOS/Src/arm copyrectangle.cpp,NONE,1.1 copyrectangle.h,NONE,1.1
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Update of /cvsroot/scummvm/scummvm/backends/PalmOS/Src/arm
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30673
Added Files:
macros.h
Log Message:
Convenient macros to ease ARM code
--- NEW FILE: macros.h ---
#ifndef __MACROS_H__
#define __MACROS_H__
#ifndef DISABLE_ARM
// macros for ARM calls
#define ARM_START(TYPE) \
if (OPTIONS_TST(kOptDeviceARM)) { \
TYPE data;
#define ARM_CHECK_EXEC(test) if (test) {
#define ARM_CHECK_END() }
#define ARM_ADDP(member) data.member = &member;
#define ARM_ADDM(member) data.member = member;
#define ARM_ADDV(member, var) data.member = var;
#define ARM_INIT(id) data.funcID = id;
#define ARM_DATA() &data
#define ARM_CONTINUE() } else
#define ARM_END() return; \
}
#define PNO_CALL(pno, data) _PnoCall(&ARM(pno).pnoDesc, data);
#define PNO_CALL_RETURN(pno, data, var) var = _PnoCall(&ARM(pno).pnoDesc, data);
#define PCE_CALL(pno, data) _PceCall(ARM(pno).pnoPtr, data);
#define PCE_CALL_RETURN(pno, data, var) var = _PceCall(ARM(pno).pnoPtr, data);
#else
// no ARM = empty definition
#define ARM_START(TYPE)
#define ARM_CHECK_EXEC(test)
#define ARM_CHECK_END()
#define ARM_ADDP(member)
#define ARM_ADDM(member)
#define ARM_ADDV(member, var)
#define ARM_INIT(id)
#define ARM_DATA()
#define ARM_CONTINUE()
#define ARM_END()
#define PNO_CALL(data)
#define PNO_CALL_RETURN(data, var)
#define PCE_CALL(data)
#define PCE_CALL_RETURN(data, var)
#endif
// Data access
#define _GETPTR(ptr, base, member, type) (type)ReadUnaligned32( (byte *)ptr + OffsetOf(base, member) )
#define _SETPTR(base, member, type, var) type var = _GETPTR(userData68KP, base, member, type);
#define _GET32 _GETPTR
#define _SET32 _SETPTR
#define _GET16(ptr, base, member, type) (type)ByteSwap16( ((UInt16 *)((byte *)ptr + OffsetOf(base, member)))[0] )
#define _SET16(base, member, type, var) type var = _GET16(userData68KP, base, member, type);
#define _GET8(ptr, base, member, type) (type)((byte *)ptr + OffsetOf(base, member))[0]
#define _SET8(base, member, type, var) type var = _GET8(userData68KP, base, member, type);
// convenient macros to ease data access
#ifdef MAIN_TYPE
# define SETPTRV(type, member, var) _SETPTR(MAIN_TYPE, member, type, var)
# define SETPTR(type, member) _SETPTR(MAIN_TYPE, member, type, member)
# define SET32(type, member) _SET32 (MAIN_TYPE, member, type, member)
# define SET16(type, member) _SET16 (MAIN_TYPE, member, type, member)
# define SET8(type, member) _SET8 (MAIN_TYPE, member, type, member)
#endif
#endif
- Previous message: [Scummvm-cvs-logs] CVS: scummvm/backends/PalmOS/Src/arm ArmNative.h,1.3,NONE copy_rect.cpp,1.2,NONE copy_rect.h,1.1,NONE wide_ls.cpp,1.1,NONE wide_ls.h,1.1,NONE wide_pt.cpp,1.1,NONE wide_pt.h,1.1,NONE
- Next message: [Scummvm-cvs-logs] CVS: scummvm/backends/PalmOS/Src/arm copyrectangle.cpp,NONE,1.1 copyrectangle.h,NONE,1.1
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the Scummvm-git-logs
mailing list