/* This file is autogenerated using make-stubs.sh, do not edit */

#ifndef robois_c_stubs_h
#define robois_c_stubs_h

#include "types.h"

/*
 * The stubs are only available when cross compiling user programs to
 * the Eyebot.
 */
#if defined(__mc68000__)

/*
 * Calculate the function pointer on the spot.
 * Grab the value of the pointer at address 4 and add offset to it.
 * This address is then casted to a function pointer with the correct
 * prototype.
 */

__ROBIOS_BEGIN_DECLS


#define AUBeep (( int (*) (void) ) (*((char**)4)+ 294 )) 
#define AUCaptureMic (( int (*) (void) ) (*((char**)4)+ 312 )) 
#define AUCheckRecord (( int (*) (void) ) (*((char**)4)+ 306 )) 
#define AUCheckSample (( int (*) (void) ) (*((char**)4)+ 276 )) 
#define AUCheckTone (( int (*) (void) ) (*((char**)4)+ 288 )) 
#define AUPlaySample (( long (*) (BYTE *sample ) ) (*((char**)4)+ 270 )) 
#define AURecordSample (( long (*) (BYTE *buf, long len, long freq) ) (*((char**)4)+ 300 )) 
#define AUTone (( int (*) (int freq, int dur) ) (*((char**)4)+ 282 )) 
#define BUMPCheck (( int (*) (BumpHandle handle, int *time_stamp) ) (*((char**)4)+ 648 )) 
#define BUMPInit (( BumpHandle (*) (DeviceSemantics semantics) ) (*((char**)4)+ 636 )) 
#define BUMPRelease (( int (*) (BumpHandle handle) ) (*((char**)4)+ 642 )) 
#define CAMGet (( int (*) (int *para1, int *para2, int *para3) ) (*((char**)4)+ 108 )) 
#define CAMGetColFrame (( int (*) (colimage * buf, int convert) ) (*((char**)4)+ 258 )) 
#define CAMGetFrame (( int (*) (image * buf) ) (*((char**)4)+ 96 )) 
#define CAMGetFrameBayer (( int (*) (BYTE *picture) ) (*((char**)4)+ 1098 )) 
#define CAMGetFrameMono (( int (*) (BYTE *picture) ) (*((char**)4)+ 1086 )) 
#define CAMGetFrameRGB (( int (*) (BYTE *picture) ) (*((char**)4)+ 1092 )) 
#define CAMInit (( int (*) (int zoom) ) (*((char**)4)+ 90 )) 
#define CAMMode (( int (*) (int mode) ) (*((char**)4)+ 162 )) 
#define CAMRelease (( int (*) (void) ) (*((char**)4)+ 1026 )) 
#define CAMSet (( int (*) (int para1, int para2, int para3) ) (*((char**)4)+ 102 )) 
#define COMPASSCalibrate (( int (*) (int mode) ) (*((char**)4)+ 990 )) 
#define COMPASSCheck (( int (*) (void) ) (*((char**)4)+ 978 )) 
#define COMPASSGet (( int (*) (void) ) (*((char**)4)+ 984 )) 
#define COMPASSInit (( int (*) (DeviceSemantics semantics) ) (*((char**)4)+ 954 )) 
#define COMPASSRelease (( int (*) (void) ) (*((char**)4)+ 972 )) 
#define COMPASSStart (( int (*) (BOOL cycle) ) (*((char**)4)+ 960 )) 
#define COMPASSStop (( int (*) (void) ) (*((char**)4)+ 966 )) 
#define HDTFindEntry (( void * (*) (TypeID type_id,DeviceSemantics semantics) ) (*((char**)4)+ 996 )) 
#define IPColor2Grey (( int (*) (colimage *buf1, image *buf2) ) (*((char**)4)+ 264 )) 
#define IPDiffer (( int (*) (image *buf1, image *buf2, image *buf3) ) (*((char**)4)+ 132 )) 
#define IPDither (( int (*) (image *buf1, image *buf2) ) (*((char**)4)+ 126 )) 
#define IPLaplace (( int (*) (image *buf1, image *buf2) ) (*((char**)4)+ 114 )) 
#define IPSobel (( int (*) (image *buf1, image *buf2) ) (*((char**)4)+ 120 )) 
#define IRInit (( IRHandle (*) (DeviceSemantics semantics) ) (*((char**)4)+ 654 )) 
#define IRRead (( int (*) (IRHandle handle) ) (*((char**)4)+ 666 )) 
#define IRRelease (( int (*) (IRHandle handle) ) (*((char**)4)+ 660 )) 
#define IRTVDecodeRaw (( int (*) (const int bits[2], int count, int type) ) (*((char**)4)+ 1074 )) 
#define IRTVFlush (( void (*) (void) ) (*((char**)4)+ 1062 )) 
#define IRTVGet (( int (*) (void) ) (*((char**)4)+ 1056 )) 
#define IRTVGetRaw (( void (*) (int bits[2], int *count, int *duration, int *id, int *clock) ) (*((char**)4)+ 1068 )) 
#define IRTVInit (( int (*) (int type, int length, int tog_mask, int inv_mask, int mode, int bufsize, int delay) ) (*((char**)4)+ 1032 )) 
#define IRTVInitHDT (( int (*) (DeviceSemantics semantics) ) (*((char**)4)+ 1080 )) 
#define IRTVPressed (( int (*) (void) ) (*((char**)4)+ 1044 )) 
#define IRTVRead (( int (*) (void) ) (*((char**)4)+ 1050 )) 
#define IRTVTerm (( void (*) (void) ) (*((char**)4)+ 1038 )) 
#define KEYGet (( int (*) (void) ) (*((char**)4)+ 72 )) 
#define KEYGetBuf (( int (*) (char *buf) ) (*((char**)4)+ 480 )) 
#define KEYRead (( int (*) (void) ) (*((char**)4)+ 78 )) 
#define KEYWait (( int (*) (int key ) ) (*((char**)4)+ 84 )) 
#define LCDArea (( int (*) (int x1, int y1, int x2, int y2, int col) ) (*((char**)4)+ 756 )) 
#define LCDClear (( int (*) (void) ) (*((char**)4)+ 18 )) 
#define LCDGetPixel (( int (*) (int row, int col) ) (*((char**)4)+ 222 )) 
#define LCDGetPos (( int (*) (int *row, int *column) ) (*((char**)4)+ 510 )) 
#define LCDInvertPixel (( int (*) (int row, int col) ) (*((char**)4)+ 234 )) 
#define LCDLine (( int (*) (int x1, int y1, int x2, int y2, int col) ) (*((char**)4)+ 750 )) 
#define LCDMenu (( int (*) (const char *k0, const char *k1, const char *k2, const char *k3) ) (*((char**)4)+ 66 )) 
#define LCDMenuI (( int (*) (int key, const char *string) ) (*((char**)4)+ 786 )) 
#define LCDMode (( int (*) (int mode) ) (*((char**)4)+ 48 )) 
#define LCDPrintf (( int (*) (const char format[], ...) ) (*((char**)4)+ 936 )) 
#define LCDPutChar (( int (*) (char buf) ) (*((char**)4)+ 24 )) 
#define LCDPutColorGraphic (( int (*) (colimage *colimg) ) (*((char**)4)+ 942 )) 
#define LCDPutFloat (( int (*) (float f) ) (*((char**)4)+ 1008 )) 
#define LCDPutFloatS (( int (*) (float f, int minsp, int decimals) ) (*((char**)4)+ 1014 )) 
#define LCDPutGraphic (( int (*) (image *img) ) (*((char**)4)+ 60 )) 
#define LCDPutHex (( int (*) (int val) ) (*((char**)4)+ 906 )) 
#define LCDPutHex1 (( int (*) (int val) ) (*((char**)4)+ 912 )) 
#define LCDPutImage (( int (*) (BYTE *img) ) (*((char**)4)+ 792 )) 
#define LCDPutInt (( int (*) (int val) ) (*((char**)4)+ 918 )) 
#define LCDPutIntS (( int (*) (int val, int spaces) ) (*((char**)4)+ 924 )) 
#define LCDPutString (( int (*) (char *buf) ) (*((char**)4)+ 36 )) 
#define LCDSetChar (( int (*) (int row, int column, char ch) ) (*((char**)4)+ 30 )) 
#define LCDSetPixel (( int (*) (int row, int col, int value) ) (*((char**)4)+ 228 )) 
#define LCDSetPos (( int (*) (int row, int col) ) (*((char**)4)+ 54 )) 
#define LCDSetPrintf (( int (*) (unsigned int row, unsigned int column, const char format[], ...) ) (*((char**)4)+ 1020 )) 
#define LCDSetString (( int (*) (int row, int col, char *buf) ) (*((char**)4)+ 42 )) 
#define MOTORDrive (( int (*) (MotorHandle handle,int speed) ) (*((char**)4)+ 336 )) 
#define MOTORInit (( MotorHandle (*) (DeviceSemantics semantics) ) (*((char**)4)+ 330 )) 
#define MOTORRelease (( int (*) (MotorHandle handle) ) (*((char**)4)+ 348 )) 
#define OSAttachTimer (( TimerHandle (*) (int scale, TimerFnc function) ) (*((char**)4)+ 810 )) 
#define OSCheckInRS232 (( int (*) (int face) ) (*((char**)4)+ 534 )) 
#define OSCheckOutRS232 (( int (*) (int face) ) (*((char**)4)+ 540 )) 
#define OSDetachTimer (( int (*) (TimerHandle handle) ) (*((char**)4)+ 816 )) 
#define OSDisable (( int (*) (void) ) (*((char**)4)+ 156 )) 
#define OSDownload (( int (*) (char *name,int *bytes,int baudrate, int handshake, int face) ) (*((char**)4)+ 210 )) 
#define OSEnable (( int (*) (void) ) (*((char**)4)+ 150 )) 
#define OSError (( int (*) (char *msg,int number,BOOL deadend) ) (*((char**)4)+ 468 )) 
#define OSExit (( int (*) (int code) ) (*((char**)4)+ 414 )) 
#define OSFlushInRS232 (( int (*) (int face) ) (*((char**)4)+ 456 )) 
#define OSFlushOutRS232 (( int (*) (int face) ) (*((char**)4)+ 462 )) 
#define OSForbid (( int (*) (void) ) (*((char**)4)+ 144 )) 
#define OSGetAD (( int (*) (int channel) ) (*((char**)4)+ 588 )) 
#define OSGetCount (( int (*) (void) ) (*((char**)4)+ 474 )) 
#define OSGetTime (( int (*) (int *hrs,int *mins,int *secs,int *ticks) ) (*((char**)4)+ 174 )) 
#define OSGetUID (( int (*) (struct tcb *thread) ) (*((char**)4)+ 444 )) 
#define OSGetVar (( int (*) (int varnum) ) (*((char**)4)+ 240 )) 
#define OSInitRS232 (( int (*) (int baudrate, int handshake, int face) ) (*((char**)4)+ 198 )) 
#define OSKill (( int (*) (struct tcb *thread) ) (*((char**)4)+ 408 )) 
#define OSMTInit (( int (*) (BYTE mode) ) (*((char**)4)+ 366 )) 
#define OSMTStatus (( int (*) (void) ) (*((char**)4)+ 552 )) 
#define OSMachineID (( unsigned char (*) (void) ) (*((char**)4)+ 558 )) 
#define OSMachineName (( char * (*) (void) ) (*((char**)4)+ 546 )) 
#define OSMachineSpeed (( int (*) (void) ) (*((char**)4)+ 204 )) 
#define OSMachineType (( int (*) (void) ) (*((char**)4)+ 354 )) 
#define OSOffAD (( int (*) (int mode) ) (*((char**)4)+ 594 )) 
#define OSPanic (( int (*) (char *string) ) (*((char**)4)+ 438 )) 
#define OSPermit (( int (*) (void) ) (*((char**)4)+ 138 )) 
#define OSPutVar (( int (*) (int varnum, int value) ) (*((char**)4)+ 246 )) 
#define OSReadInLatch (( BYTE (*) (int latchnr) ) (*((char**)4)+ 582 )) 
#define OSReadOutLatch (( BYTE (*) (int latchnr) ) (*((char**)4)+ 576 )) 
#define OSReadParCTRL (( BYTE (*) (void) ) (*((char**)4)+ 744 )) 
#define OSReadParData (( BYTE (*) (void) ) (*((char**)4)+ 720 )) 
#define OSReadParSR (( BYTE (*) (void) ) (*((char**)4)+ 732 )) 
#define OSReady (( int (*) (struct tcb *thread) ) (*((char**)4)+ 378 )) 
#define OSRecvRS232 (( int (*) (char *chara, int face) ) (*((char**)4)+ 192 )) 
#define OSReschedule (( int (*) (void) ) (*((char**)4)+ 390 )) 
#define OSRun (( int (*) (struct tcb *thread) ) (*((char**)4)+ 402 )) 
#define OSSemInit (( int (*) (struct sem *sem, int val) ) (*((char**)4)+ 420 )) 
#define OSSemP (( int (*) (struct sem *sem) ) (*((char**)4)+ 426 )) 
#define OSSemV (( int (*) (struct sem *sem) ) (*((char**)4)+ 432 )) 
#define OSSendCharRS232 (( int (*) (const char ch, const int face) ) (*((char**)4)+ 948 )) 
#define OSSendRS232 (( int (*) (const char *ch, const int face) ) (*((char**)4)+ 186 )) 
#define OSSetTime (( int (*) (int hrs,int mins,int secs) ) (*((char**)4)+ 168 )) 
#define OSShowTime (( int (*) (void) ) (*((char**)4)+ 180 )) 
#define OSSleep (( int (*) (int hsecs) ) (*((char**)4)+ 450 )) 
#define OSSpawn (( struct tcb * (*) (char *name, void (*code)(void), int stksiz, int pri, int uid) ) (*((char**)4)+ 372 )) 
#define OSSuspend (( int (*) (struct tcb *thread) ) (*((char**)4)+ 384 )) 
#define OSVersion (( const char * (*) (void) ) (*((char**)4)+ 1002 )) 
#define OSWait (( int (*) (int hsecs) ) (*((char**)4)+ 216 )) 
#define OSWriteOutLatch (( BYTE (*) (int latchnr, BYTE mask, BYTE value) ) (*((char**)4)+ 570 )) 
#define OSWriteParCTRL (( void (*) (BYTE value) ) (*((char**)4)+ 738 )) 
#define OSWriteParData (( void (*) (BYTE value) ) (*((char**)4)+ 726 )) 
#define OSYield (( int (*) (void) ) (*((char**)4)+ 396 )) 
#define PSDCheck (( BOOL (*) (void) ) (*((char**)4)+ 498 )) 
#define PSDGet (( int (*) (PSDHandle handle) ) (*((char**)4)+ 492 )) 
#define PSDGetRaw (( int (*) (PSDHandle handle) ) (*((char**)4)+ 516 )) 
#define PSDInit (( PSDHandle (*) (DeviceSemantics semantics) ) (*((char**)4)+ 522 )) 
#define PSDRelease (( int (*) (void) ) (*((char**)4)+ 504 )) 
#define PSDStart (( int (*) (PSDHandle bitmask, BOOL cycle) ) (*((char**)4)+ 528 )) 
#define PSDStop (( int (*) (void) ) (*((char**)4)+ 486 )) 
#define QUADGetMotor (( DeviceSemantics (*) (DeviceSemantics semantics) ) (*((char**)4)+ 630 )) 
#define QUADInit (( QuadHandle (*) (DeviceSemantics semantics) ) (*((char**)4)+ 606 )) 
#define QUADODORead (( float (*) (QuadHandle handle) ) (*((char**)4)+ 678 )) 
#define QUADODOReset (( int (*) (QuadHandle handle) ) (*((char**)4)+ 672 )) 
#define QUADRead (( int (*) (QuadHandle handle) ) (*((char**)4)+ 624 )) 
#define QUADRelease (( int (*) (QuadHandle handle) ) (*((char**)4)+ 612 )) 
#define QUADReset (( int (*) (QuadHandle handle) ) (*((char**)4)+ 618 )) 
#define RADIOCheck (( int (*) (void) ) (*((char**)4)+ 882 )) 
#define RADIOGetIoctl (( int (*) ( RadioIOParameters* radioParams ) ) (*((char**)4)+ 894 )) 
#define RADIOGetStatus (( int (*) (RadioStatus *s) ) (*((char**)4)+ 930 )) 
#define RADIOInit (( int (*) (void) ) (*((char**)4)+ 864 )) 
#define RADIORecv (( int (*) (BYTE* id, int* bytesReceived, BYTE* buffer) ) (*((char**)4)+ 888 )) 
#define RADIOSend (( int (*) (BYTE id, int byteCount, BYTE* buffer) ) (*((char**)4)+ 876 )) 
#define RADIOSetIoctl (( int (*) ( RadioIOParameters radioParams ) ) (*((char**)4)+ 900 )) 
#define RADIOTerm (( int (*) (void) ) (*((char**)4)+ 870 )) 
#define SERVOInit (( ServoHandle (*) (DeviceSemantics semantics) ) (*((char**)4)+ 318 )) 
#define SERVORelease (( int (*) (ServoHandle handle) ) (*((char**)4)+ 342 )) 
#define SERVOSet (( int (*) (ServoHandle handle,int angle) ) (*((char**)4)+ 324 )) 
#define USRFlashClear (( int (*) (int slot, int magic) ) (*((char**)4)+ 780 )) 
#define USRFlashGetName (( int (*) (int slot, char* name) ) (*((char**)4)+ 774 )) 
#define USRFlashLoad (( int (*) (int slot, int magic) ) (*((char**)4)+ 762 )) 
#define USRFlashSave (( int (*) (int slot, int magic) ) (*((char**)4)+ 768 )) 
#define USRResident (( int (*) (char *name,BOOL mode) ) (*((char**)4)+ 360 )) 
#define USRStart (( int (*) (void) ) (*((char**)4)+ 252 )) 
#define VWDriveCurve (( int (*) (VWHandle handle, meter delta_l, radians delta_phi, meterPerSec v) ) (*((char**)4)+ 834 )) 
#define VWDriveDone (( int (*) (VWHandle handle) ) (*((char**)4)+ 840 )) 
#define VWDriveRemain (( float (*) (VWHandle handle) ) (*((char**)4)+ 852 )) 
#define VWDriveStraight (( int (*) (VWHandle handle, meter delta, meterPerSec v) ) (*((char**)4)+ 822 )) 
#define VWDriveTurn (( int (*) (VWHandle handle, radians delta, radPerSec w) ) (*((char**)4)+ 828 )) 
#define VWDriveWait (( int (*) (VWHandle handle) ) (*((char**)4)+ 846 )) 
#define VWGetPosition (( int (*) (VWHandle handle, PositionType* pos) ) (*((char**)4)+ 708 )) 
#define VWGetSpeed (( int (*) (VWHandle handle, SpeedType* vw) ) (*((char**)4)+ 696 )) 
#define VWInit (( VWHandle (*) (DeviceSemantics semantics, int Timescale) ) (*((char**)4)+ 684 )) 
#define VWRelease (( int (*) (VWHandle handle) ) (*((char**)4)+ 714 )) 
#define VWSetPosition (( int (*) (VWHandle handle, meter x, meter y, radians phi) ) (*((char**)4)+ 702 )) 
#define VWSetSpeed (( int (*) (VWHandle handle, meterPerSec v, radPerSec w) ) (*((char**)4)+ 690 )) 
#define VWStalled (( int (*) (VWHandle handle) ) (*((char**)4)+ 858 )) 
#define VWStartControl (( int (*) (VWHandle handle, float Vv, float Tv, float Vw, float Tw) ) (*((char**)4)+ 798 )) 
#define VWStopControl (( int (*) (VWHandle handle) ) (*((char**)4)+ 804 )) 

__ROBIOS_END_DECLS

#endif /* mc68000 */

#endif /* robios_c_stubs_h */
