196 lines
6.8 KiB
C
196 lines
6.8 KiB
C
//added 05/17/99 Matt Mueller - checker stubs for various functions.
|
|
|
|
/* Needed for CHKR_PREFIX. */
|
|
#include <SDL/SDL.h>
|
|
#include "checker_api.h"
|
|
#include <setjmp.h>
|
|
#include <glob.h>
|
|
#include <termios.h>
|
|
#include <unistd.h>
|
|
#include <stdio.h>
|
|
#include "gr.h"
|
|
|
|
void chcksetwritable(char * p, int size)__asm__(CHKR_PREFIX ("chcksetwritable"));
|
|
void chcksetwritable(char * p, int size){
|
|
stubs_chkr_set_right (p,size,CHKR_RW);
|
|
}
|
|
void chcksetunwritable(char * p, int size)__asm__(CHKR_PREFIX ("chcksetunwritable"));
|
|
void chcksetunwritable(char * p, int size){
|
|
stubs_chkr_set_right (p,size,CHKR_RO);
|
|
}
|
|
|
|
int chkr_stub_glob(const char *pattern, int flags,int errfunc(const char * epath, int eerrno),glob_t *pglob)__asm__ (CHKR_PREFIX ("glob"));
|
|
int
|
|
chkr_stub_glob(const char *pattern, int flags,int errfunc(const char * epath, int eerrno),glob_t *pglob)
|
|
{
|
|
int g;
|
|
stubs_chkr_check_str(pattern,CHKR_RO,"pattern");
|
|
stubs_chkr_check_addr(pglob,sizeof(glob_t),CHKR_WO,"pglob");
|
|
g=glob(pattern,flags,errfunc,pglob);
|
|
if (g==0){
|
|
int i;
|
|
stubs_chkr_set_right (pglob, sizeof(glob_t), CHKR_RW);
|
|
stubs_chkr_set_right (pglob->gl_pathv, sizeof(char*) * pglob->gl_pathc, CHKR_RW);
|
|
for (i=0;i<pglob->gl_pathc;i++)
|
|
stubs_chkr_set_right (pglob->gl_pathv[i], strlen(pglob->gl_pathv[i])+1, CHKR_RW);
|
|
|
|
}
|
|
return g;
|
|
}
|
|
|
|
int chkr_stub_SDL_VideoModeOK (int width, int height, int bpp, Uint32 flags)__asm__(CHKR_PREFIX ("SDL_VideoModeOK"));
|
|
int chkr_stub_SDL_VideoModeOK (int width, int height, int bpp, Uint32 flags)
|
|
{
|
|
return SDL_VideoModeOK(width,height,bpp,flags);
|
|
}
|
|
SDL_Surface * chkr_stub_SDL_SetVideoMode (int width, int height, int bpp, Uint32 flags)__asm__(CHKR_PREFIX ("SDL_SetVideoMode"));
|
|
SDL_Surface * chkr_stub_SDL_SetVideoMode (int width, int height, int bpp, Uint32 flags)
|
|
{
|
|
SDL_Surface * s;
|
|
s=SDL_SetVideoMode(width,height,bpp,flags);
|
|
stubs_chkr_set_right (s,sizeof(SDL_Surface),CHKR_RO);
|
|
stubs_chkr_set_right (s->format,sizeof(SDL_PixelFormat),CHKR_RO);
|
|
stubs_chkr_set_right (s->format->palette,256*3,CHKR_RO);
|
|
#ifdef TEST_GR_LOCK
|
|
stubs_chkr_set_right (s->pixels,s->w*s->h*s->format->BytesPerPixel,CHKR_RO);
|
|
#else
|
|
stubs_chkr_set_right (s->pixels,s->w*s->h*s->format->BytesPerPixel,CHKR_RW);
|
|
#endif
|
|
return s;
|
|
}
|
|
int chkr_stub_SDL_SetColors (SDL_Surface *surface,SDL_Color *colors, int firstcolor, int ncolors)__asm__ (CHKR_PREFIX ("SDL_SetColors"));
|
|
int chkr_stub_SDL_SetColors (SDL_Surface *surface,SDL_Color *colors, int firstcolor, int ncolors){
|
|
int i;
|
|
|
|
stubs_chkr_check_addr(surface,sizeof(SDL_Surface),CHKR_RO,"surface");
|
|
// for (i=firstcolor;i<ncolors;i++){
|
|
// stubs_chkr_check_addr(colors,sizeof(Uint8)*3,CHKR_RO,"colors");
|
|
// }
|
|
i=SDL_SetColors (surface,colors,firstcolor,ncolors);
|
|
return i;
|
|
}
|
|
void chkr_stub_SDL_UpdateRect(SDL_Surface *screen, Sint32 x, Sint32 y, Uint32 w, Uint32 h)__asm__ (CHKR_PREFIX ("SDL_UpdateRect"));
|
|
void chkr_stub_SDL_UpdateRect(SDL_Surface *screen, Sint32 x, Sint32 y, Uint32 w, Uint32 h){
|
|
stubs_chkr_check_addr(screen,sizeof(SDL_Surface),CHKR_RO,"screen");
|
|
SDL_UpdateRect(screen,x,y,w,h);
|
|
}
|
|
void chkr_stub_SDL_WM_SetCaption (const char *title, const char *icon)__asm__ (CHKR_PREFIX ("SDL_WM_SetCaption"));
|
|
void chkr_stub_SDL_WM_SetCaption (const char *title, const char *icon){
|
|
stubs_chkr_check_str(title,CHKR_RO,"title");
|
|
if (icon)
|
|
stubs_chkr_check_str(icon,CHKR_RO,"icon");
|
|
SDL_WM_SetCaption(title,icon);
|
|
}
|
|
|
|
void chkr_stub_SDL_PauseAudio (int pause_on)__asm__ (CHKR_PREFIX ("SDL_PauseAudio"));
|
|
void chkr_stub_SDL_PauseAudio (int pause_on){
|
|
SDL_PauseAudio(pause_on);
|
|
}
|
|
void chkr_stub_SDL_CloseAudio (void)__asm__ (CHKR_PREFIX ("SDL_CloseAudio"));
|
|
void chkr_stub_SDL_CloseAudio (void){
|
|
SDL_CloseAudio();
|
|
}
|
|
int chkr_stub_SDL_OpenAudio (SDL_AudioSpec *desired, SDL_AudioSpec *obtained)__asm__ (CHKR_PREFIX ("SDL_OpenAudio"));
|
|
int chkr_stub_SDL_OpenAudio (SDL_AudioSpec *desired, SDL_AudioSpec *obtained)
|
|
{
|
|
int i;
|
|
stubs_chkr_check_addr(desired,sizeof(SDL_AudioSpec),CHKR_RO,"desired");
|
|
i=SDL_OpenAudio(desired,obtained);
|
|
if (i && obtained){
|
|
stubs_chkr_set_right (obtained,sizeof(SDL_AudioSpec),CHKR_RO);
|
|
}
|
|
return i;
|
|
}
|
|
#define CD_Stub(name) int chkr_stub_SDL_CD ## name (SDL_CD *cdrom)__asm__ (CHKR_PREFIX ("SDL_CD" ## #name));\
|
|
int chkr_stub_SDL_CD ## name (SDL_CD *cdrom){\
|
|
return SDL_CD ## name(cdrom);\
|
|
}
|
|
CD_Stub(Stop);
|
|
CD_Stub(Pause);
|
|
CD_Stub(Resume);
|
|
CDstatus chkr_stub_SDL_CDStatus(SDL_CD *cdrom)__asm__ (CHKR_PREFIX ("SDL_CDStatus"));
|
|
CDstatus chkr_stub_SDL_CDStatus(SDL_CD *cdrom){
|
|
return SDL_CDStatus(cdrom);
|
|
}
|
|
SDL_CD * chkr_stub_SDL_CDOpen (int drive)__asm__ (CHKR_PREFIX ("SDL_CDOpen"));
|
|
SDL_CD * chkr_stub_SDL_CDOpen (int drive){
|
|
SDL_CD *c;
|
|
c=SDL_CDOpen(drive);
|
|
if (c)
|
|
stubs_chkr_set_right(c,sizeof(SDL_CD),CHKR_RO);
|
|
return c;
|
|
}
|
|
int chkr_stub_SDL_CDPlayTracks (SDL_CD *cdrom,int start_track, int start_frame, int ntracks, int nframes)__asm__ (CHKR_PREFIX ("SDL_CDPlayTracks"));
|
|
int chkr_stub_SDL_CDPlayTracks (SDL_CD *cdrom,int start_track, int start_frame, int ntracks, int nframes){
|
|
return SDL_CDPlayTracks(cdrom,start_track,start_frame,ntracks,nframes);
|
|
}
|
|
|
|
|
|
int chkr_stub_SDL_PollEvent (SDL_Event *event)__asm__ (CHKR_PREFIX ("SDL_PollEvent"));
|
|
int chkr_stub_SDL_PollEvent (SDL_Event *event){
|
|
int i;
|
|
i=SDL_PollEvent(event);
|
|
if(i && event){
|
|
stubs_chkr_set_right(event,sizeof(SDL_Event),CHKR_RO);
|
|
}
|
|
return i;
|
|
}
|
|
|
|
void chkr_stub_SDL_ShowCursor (int tog)__asm__ (CHKR_PREFIX ("SDL_ShowCursor"));
|
|
void chkr_stub_SDL_ShowCursor (int tog){
|
|
SDL_ShowCursor(tog);
|
|
}
|
|
|
|
Uint32 chkr_stub_SDL_GetTicks (void)__asm__ (CHKR_PREFIX ("SDL_GetTicks"));
|
|
Uint32 chkr_stub_SDL_GetTicks (void){
|
|
return SDL_GetTicks();
|
|
}
|
|
|
|
char * chkr_stub_SDL_GetError (void)__asm__ (CHKR_PREFIX ("SDL_GetError"));
|
|
char * chkr_stub_SDL_GetError (void){
|
|
char * t=SDL_GetError();
|
|
stubs_chkr_set_right(t,strlen(t)+1,CHKR_RO);
|
|
return t;
|
|
}
|
|
|
|
void chkr_stub_SDL_Quit(void)__asm__ (CHKR_PREFIX ("SDL_Quit"));
|
|
void chkr_stub_SDL_Quit(void){
|
|
SDL_Quit();
|
|
}
|
|
int chkr_stub_SDL_Init(Uint32 flags)__asm__ (CHKR_PREFIX ("SDL_Init"));
|
|
int chkr_stub_SDL_Init(Uint32 flags){
|
|
return SDL_Init(flags);
|
|
}
|
|
|
|
int chkr_stub_tcflush(int fd, int queue_selector)__asm__ (CHKR_PREFIX ("tcflush"));
|
|
int chkr_stub_tcflush(int fd, int queue_selector){
|
|
fd_used_by_prog(fd);
|
|
return tcflush(fd,queue_selector);
|
|
}
|
|
|
|
|
|
int chkr_stub_longjmp(jmp_buf buf,int val)__asm__ (CHKR_PREFIX ("__chcklongjmp"));
|
|
int
|
|
chkr_stub_longjmp(jmp_buf buf,int val)
|
|
{
|
|
// stubs_chkr_check_addr(buf,sizeof(jmp_buf),CHKR_WO,"jmp_buf");
|
|
//return __siglongjmp(buf,val);
|
|
longjmp(buf,val);
|
|
}
|
|
int chkr_stub_setjmp(jmp_buf buf)__asm__ (CHKR_PREFIX ("__chcksetjmp"));
|
|
int
|
|
chkr_stub_setjmp(jmp_buf buf)
|
|
{
|
|
// stubs_chkr_check_addr(buf,sizeof(jmp_buf),CHKR_WO,"jmp_buf");
|
|
return setjmp(buf);
|
|
}
|
|
int chkr_stub_sigsetjmp(jmp_buf buf,int save)__asm__ (CHKR_PREFIX ("__chcksigsetjmp"));
|
|
int
|
|
chkr_stub_sigsetjmp(jmp_buf buf,int save)
|
|
{
|
|
// stubs_chkr_check_addr(buf,sizeof(jmp_buf),CHKR_WO,"jmp_buf");
|
|
//return __sigsetjmp(buf,save);
|
|
return sigsetjmp(buf,save);
|
|
}
|
|
|