mirror of
https://github.com/reactos/reactos.git
synced 2025-08-03 12:06:52 +00:00
an attempt to partially implement ctor_dtor_initialize() and a few more libskygi stubs
svn path=/trunk/; revision=10505
This commit is contained in:
parent
7cf25ed92f
commit
78f66ec97c
10 changed files with 547 additions and 16 deletions
|
@ -208,4 +208,35 @@ typedef struct s_window
|
|||
int origin_y;
|
||||
} s_window;
|
||||
|
||||
typedef struct sCreateApplication
|
||||
{
|
||||
unsigned char ucApplicationName[255];
|
||||
unsigned int uiX;
|
||||
unsigned int uiY;
|
||||
unsigned int uiWidth;
|
||||
unsigned int uiHeight;
|
||||
|
||||
void *fwndClient;
|
||||
unsigned int uiStyleApplication;
|
||||
unsigned int uiStyleFrame;
|
||||
unsigned int uiStyleTitle;
|
||||
unsigned int uiStyleMenu;
|
||||
unsigned int uiStyleBar;
|
||||
unsigned int uiStyleClient;
|
||||
unsigned int uiBackGroundColor;
|
||||
unsigned int uiApplicationIcon;
|
||||
widget_menu *pFrameMenu;
|
||||
|
||||
unsigned int uiReserved[128];
|
||||
|
||||
void (__cdecl *PostCreateWindowBitmap)(HANDLE hWnd, void *pGCBuf);
|
||||
} sCreateApplication;
|
||||
|
||||
typedef struct s_resolution
|
||||
{
|
||||
unsigned int width;
|
||||
unsigned int height;
|
||||
unsigned int bpp;
|
||||
} s_resolution;
|
||||
|
||||
#endif /* __RSK_STRUCTS_H */
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# $Id: Makefile,v 1.1 2004/08/12 02:50:35 weiden Exp $
|
||||
# $Id: Makefile,v 1.2 2004/08/12 15:41:36 weiden Exp $
|
||||
|
||||
PATH_TO_TOP = ../../..
|
||||
|
||||
|
@ -12,6 +12,7 @@ TARGET_BASE = 0x71c10000
|
|||
|
||||
TARGET_CFLAGS = \
|
||||
-I./include \
|
||||
-DDEBUG \
|
||||
-Wall \
|
||||
-Werror \
|
||||
-fno-builtin
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*/
|
||||
/* $Id: libsky.c,v 1.1 2004/08/12 02:50:35 weiden Exp $
|
||||
/* $Id: libsky.c,v 1.2 2004/08/12 15:41:36 weiden Exp $
|
||||
*
|
||||
* PROJECT: SkyOS library
|
||||
* FILE: lib/libsky/libsky.c
|
||||
|
@ -26,6 +26,7 @@
|
|||
* 08/12/2004 Created
|
||||
*/
|
||||
#include <windows.h>
|
||||
/* #define NDEBUG */
|
||||
#include "libsky.h"
|
||||
#include "resource.h"
|
||||
|
||||
|
|
|
@ -3,11 +3,22 @@ LIBRARY libsky.dll
|
|||
EXPORTS
|
||||
__libc_init_memory
|
||||
__to_kernel
|
||||
_alloca
|
||||
ctor_dtor_initialize=ctor_dtor_initialize
|
||||
ctor_dtor_initialize
|
||||
get_usec_counter
|
||||
|
||||
; MSVCRT
|
||||
rand
|
||||
srand
|
||||
|
||||
; NTDLL
|
||||
_alloca
|
||||
|
||||
; CRTDLL
|
||||
printf
|
||||
putchar
|
||||
sprintf
|
||||
strcat
|
||||
strcpy
|
||||
time
|
||||
|
||||
; EOF
|
||||
|
|
|
@ -3,11 +3,22 @@ LIBRARY acledit.dll
|
|||
EXPORTS
|
||||
__libc_init_memory=__libc_init_memory
|
||||
__to_kernel=__to_kernel
|
||||
_alloca=NTDLL._alloca_probe
|
||||
ctor_dtor_initialize=ctor_dtor_initialize
|
||||
get_usec_counter=get_usec_counter
|
||||
|
||||
; MSVCRT
|
||||
rand=MSVCRT.rand
|
||||
srand=MSVCRT.srand
|
||||
strcpy=NTDLL.strcpy
|
||||
|
||||
; NTDLL
|
||||
_alloca=NTDLL._alloca_probe
|
||||
|
||||
; CRTDLL
|
||||
printf=CRTDLL.printf
|
||||
putchar=CRTDLL.putchar
|
||||
sprintf=CRTDLL.sprintf
|
||||
strcat=CRTDLL.strcat
|
||||
strcpy=CRTDLL.strcpy
|
||||
time=CRTDLL.time
|
||||
|
||||
; EOF
|
||||
|
|
|
@ -1,7 +1,17 @@
|
|||
#ifndef __LIBSKY_H
|
||||
#define __LIBSKY_H
|
||||
|
||||
#define DBG DbgPrint
|
||||
#ifdef DEBUG
|
||||
# ifdef NDEBUG
|
||||
# define DBG(...)
|
||||
# else
|
||||
# define DBG DbgPrint
|
||||
# endif
|
||||
# define DBG1 DbgPrint
|
||||
#else
|
||||
# define DBG(...)
|
||||
# define DBG1(...)
|
||||
#endif
|
||||
#define STUB DbgPrint("Stub in %s:%i: ", __FILE__, __LINE__); DbgPrint
|
||||
|
||||
#endif /* __LIBSKY_H */
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $Id: stubs.c,v 1.1 2004/08/12 02:50:35 weiden Exp $
|
||||
/* $Id: stubs.c,v 1.2 2004/08/12 15:41:36 weiden Exp $
|
||||
*
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: SkyOS library
|
||||
|
@ -10,29 +10,106 @@
|
|||
* 08/12/2004 Created
|
||||
*/
|
||||
#include <windows.h>
|
||||
#include <libsky.h>
|
||||
/* #define NDEBUG */
|
||||
#include "libsky.h"
|
||||
|
||||
/*
|
||||
* @unimplemented
|
||||
*/
|
||||
void __cdecl
|
||||
__libc_init_memory(void * end,
|
||||
void * __bss_end__,
|
||||
void * __bss_start__)
|
||||
__libc_init_memory(void *end,
|
||||
void *__bss_end__,
|
||||
void *__bss_start__)
|
||||
{
|
||||
STUB("__libc_init_memory: end=0x%x __bss_end__=0x%x __bss_start__=0x%x\n", end, __bss_end__, __bss_start__);
|
||||
#if 1
|
||||
RtlZeroMemory(__bss_start__, (PCHAR)__bss_end__ - (PCHAR)__bss_start__);
|
||||
#else
|
||||
RtlCopyMemory(__bss_start__, /* I think this function should initialize the data in the .bss section */
|
||||
end, /* The source should be the pointer to raw of the EOF Extra Data, but how to get it?! It's not loaded to memory in win/ros */
|
||||
(PCHAR)__bss_end__ - (PCHAR)__bss_start__); /* Or should we rather copy 0x2000 (raw size of EOF Extra data)? */
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
typedef void (__cdecl *func_ptr) (void);
|
||||
|
||||
/*
|
||||
* @unimplemented
|
||||
*/
|
||||
void __cdecl
|
||||
ctor_dtor_initialize(void * __CTOR_LIST__,
|
||||
void * __DTOR_LIST__,
|
||||
void * unknown)
|
||||
ctor_dtor_initialize(func_ptr *__CTOR_LIST__,
|
||||
func_ptr *__DTOR_LIST__,
|
||||
void *unknown)
|
||||
{
|
||||
STUB("ctor_dtor_initialize: __CTOR_LIST__=0x%x __DTOR_LIST__=0x%x unknown=0x%x\n", __CTOR_LIST__, __DTOR_LIST__, unknown);
|
||||
|
||||
/* unknown apparently is the virtual address of the .bss section, but what should
|
||||
* we do with it?! Perhaps load a list of constructor/destructor addresses to this
|
||||
* address before we call them?
|
||||
*/
|
||||
|
||||
/*
|
||||
* Call constructors
|
||||
*/
|
||||
if(__CTOR_LIST__ != NULL)
|
||||
{
|
||||
unsigned long nptrs;
|
||||
/*
|
||||
* If the first entry in the constructor list is -1 then the list
|
||||
* is terminated with a null entry. Otherwise the first entry was
|
||||
* the number of pointers in the list.
|
||||
*/
|
||||
DBG("Calling constructors...\n");
|
||||
nptrs = (unsigned long)__CTOR_LIST__[0];
|
||||
if (nptrs == -1)
|
||||
{
|
||||
for(nptrs = 0; __CTOR_LIST__[nptrs + 1] != NULL; nptrs++);
|
||||
}
|
||||
DBG("There are %d constructors to call...\n", nptrs);
|
||||
|
||||
/*
|
||||
* Go through the list backwards calling constructors.
|
||||
* FIXME - backwards?! This is ripped off crtdll\misc\gccmain.c
|
||||
*/
|
||||
for(; nptrs > 0; nptrs--)
|
||||
{
|
||||
DBG("call constructor 0x%x\n", __CTOR_LIST__[nptrs]);
|
||||
__CTOR_LIST__[nptrs]();
|
||||
}
|
||||
DBG("Called all constructors\n");
|
||||
}
|
||||
|
||||
/*
|
||||
* Call destructors
|
||||
*/
|
||||
if(__DTOR_LIST__ != NULL)
|
||||
{
|
||||
unsigned long nptrs;
|
||||
/*
|
||||
* If the first entry in the destructor list is -1 then the list
|
||||
* is terminated with a null entry. Otherwise the first entry was
|
||||
* the number of pointers in the list.
|
||||
*/
|
||||
DBG("Calling destructors...\n");
|
||||
nptrs = (unsigned long)__DTOR_LIST__[0];
|
||||
if (nptrs == -1)
|
||||
{
|
||||
for(nptrs = 0; __DTOR_LIST__[nptrs + 1] != NULL; nptrs++);
|
||||
}
|
||||
DBG("There are %d destructors to call...\n", nptrs);
|
||||
|
||||
/*
|
||||
* Go through the list backwards calling constructors.
|
||||
* FIXME - backwards?! This is ripped off crtdll\misc\gccmain.c
|
||||
*/
|
||||
for(; nptrs > 0; nptrs--)
|
||||
{
|
||||
DBG("call destructor 0x%x\n", __DTOR_LIST__[nptrs]);
|
||||
__DTOR_LIST__[nptrs]();
|
||||
}
|
||||
DBG("Called all destructors\n");
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
@ -24,5 +24,32 @@ GI_messagebox
|
|||
GI_post_quit
|
||||
GI_set_high_timer
|
||||
GI_wait_message
|
||||
GC_draw_text
|
||||
GC_set_fg_color
|
||||
GC_set_font
|
||||
GC_set_font_size
|
||||
GC_set_font_flags
|
||||
GC_set_font_param
|
||||
GI_CreateApplicationStruct
|
||||
GI_CreateApplication
|
||||
GI_EnableMouseTracking
|
||||
GI_GetTopLevelWindow
|
||||
GI_GetWindowX
|
||||
GI_GetWindowY
|
||||
GI_GetWindowWidth
|
||||
GI_GetWindowHeight
|
||||
GI_create_font
|
||||
GI_textheight
|
||||
GI_textlength
|
||||
GI_init
|
||||
GI_set_dimension
|
||||
GC_blit_from_DIB
|
||||
GC_draw_pixel
|
||||
GC_set_clip
|
||||
GI_create_DIB
|
||||
GI_redraw_window
|
||||
GI_ScaleDIB
|
||||
GI_get_resolution
|
||||
GI_widget_status_set
|
||||
|
||||
; EOF
|
||||
|
|
|
@ -24,5 +24,32 @@ GI_messagebox=GI_messagebox
|
|||
GI_post_quit=GI_post_quit
|
||||
GI_set_high_timer=GI_set_high_timer
|
||||
GI_wait_message=GI_wait_message
|
||||
GC_draw_text=GC_draw_text
|
||||
GC_set_fg_color=GC_set_fg_color
|
||||
GC_set_font=GC_set_font
|
||||
GC_set_font_size=GC_set_font_size
|
||||
GC_set_font_flags=GC_set_font_flags
|
||||
GC_set_font_param=GC_set_font_param
|
||||
GI_CreateApplicationStruct=GI_CreateApplicationStruct
|
||||
GI_CreateApplication=GI_CreateApplication
|
||||
GI_EnableMouseTracking=GI_EnableMouseTracking
|
||||
GI_GetTopLevelWindow=GI_GetTopLevelWindow
|
||||
GI_GetWindowX=GI_GetWindowX
|
||||
GI_GetWindowY=GI_GetWindowY
|
||||
GI_GetWindowWidth=GI_GetWindowWidth
|
||||
GI_GetWindowHeight=GI_GetWindowHeight
|
||||
GI_create_font=GI_create_font
|
||||
GI_textheight=GI_textheight
|
||||
GI_textlength=GI_textlength
|
||||
GI_init=GI_init
|
||||
GI_set_dimension=GI_set_dimension
|
||||
GC_blit_from_DIB=GC_blit_from_DIB
|
||||
GC_draw_pixel=GC_draw_pixel
|
||||
GC_set_clip=GC_set_clip
|
||||
GI_create_DIB=GI_create_DIB
|
||||
GI_redraw_window=GI_redraw_window
|
||||
GI_ScaleDIB=GI_ScaleDIB
|
||||
GI_get_resolution=GI_get_resolution
|
||||
GI_widget_status_set=GI_widget_status_set
|
||||
|
||||
; EOF
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $Id: stubs.c,v 1.1 2004/08/12 02:50:35 weiden Exp $
|
||||
/* $Id: stubs.c,v 1.2 2004/08/12 15:41:36 weiden Exp $
|
||||
*
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: SkyOS GI library
|
||||
|
@ -291,4 +291,339 @@ GI_wait_message(s_gi_msg *m,
|
|||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* @unimplemented
|
||||
*/
|
||||
int __cdecl
|
||||
GC_draw_text(GC *gc,
|
||||
s_region *rect,
|
||||
unsigned char *text)
|
||||
{
|
||||
STUB("GC_draw_text(0x%x, 0x%x, 0x%x) returns 0!\n", gc, rect, text);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* @unimplemented
|
||||
*/
|
||||
int __cdecl
|
||||
GC_set_fg_color(GC *gc,
|
||||
COLOR col)
|
||||
{
|
||||
STUB("GC_set_fg_color(0x%x, 0x%x) returns 0!\n", gc, col);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* @unimplemented
|
||||
*/
|
||||
int __cdecl
|
||||
GC_set_font(GC *gc,
|
||||
unsigned int fontIndex)
|
||||
{
|
||||
STUB("GC_set_font(0x%x, 0x%x) returns 0!\n", gc, fontIndex);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* @unimplemented
|
||||
*/
|
||||
int __cdecl
|
||||
GC_set_font_size(GC *gc,
|
||||
unsigned int fontSize)
|
||||
{
|
||||
STUB("GC_set_font_size(0x%x, 0x%x) returns 0!\n", gc, fontSize);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* @unimplemented
|
||||
*/
|
||||
int __cdecl
|
||||
GC_set_font_flags(GC *gc,
|
||||
unsigned int flags)
|
||||
{
|
||||
STUB("GC_set_font_flags(0x%x, 0x%x) returns 0!\n", gc, flags);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* @unimplemented
|
||||
*/
|
||||
int __cdecl
|
||||
GC_set_font_param(GC *gc,
|
||||
unsigned int font,
|
||||
unsigned int fontsize,
|
||||
unsigned int flags,
|
||||
unsigned int trans)
|
||||
{
|
||||
STUB("GC_set_font_param(0x%x, 0x%x, 0x%x, 0x%x, 0x%x) returns 0!\n", gc, font, fontsize, flags, trans);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* @unimplemented
|
||||
*/
|
||||
sCreateApplication* __cdecl
|
||||
GI_CreateApplicationStruct(void)
|
||||
{
|
||||
STUB("GI_CreateApplicationStruct() returns NULL!\n");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* @unimplemented
|
||||
*/
|
||||
HANDLE __cdecl
|
||||
GI_CreateApplication(sCreateApplication *application)
|
||||
{
|
||||
STUB("GI_CreateApplication(0x%x) returns NULL!\n", application);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* @unimplemented
|
||||
*/
|
||||
int __cdecl
|
||||
GI_EnableMouseTracking(HANDLE hWnd)
|
||||
{
|
||||
STUB("GI_EnableMouseTracking(0x%x) returns 0!\n", hWnd);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* @unimplemented
|
||||
*/
|
||||
HANDLE __cdecl
|
||||
GI_GetTopLevelWindow(HANDLE hWnd)
|
||||
{
|
||||
STUB("GI_GetTopLevelWindow(0x%x) returns NULL!\n", hWnd);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* @unimplemented
|
||||
*/
|
||||
int __cdecl
|
||||
GI_GetWindowX(HANDLE hWnd)
|
||||
{
|
||||
STUB("GI_GetWindowX(0x%x) returns 0!\n", hWnd);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* @unimplemented
|
||||
*/
|
||||
int __cdecl
|
||||
GI_GetWindowY(HANDLE hWnd)
|
||||
{
|
||||
STUB("GI_GetWindowY(0x%x) returns 0!\n", hWnd);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* @unimplemented
|
||||
*/
|
||||
int __cdecl
|
||||
GI_GetWindowWidth(HANDLE hWnd)
|
||||
{
|
||||
STUB("GI_GetWindowWidth(0x%x) returns 0!\n", hWnd);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* @unimplemented
|
||||
*/
|
||||
int __cdecl
|
||||
GI_GetWindowHeight(HANDLE hWnd)
|
||||
{
|
||||
STUB("GI_GetWindowHeight(0x%x) returns 0!\n", hWnd);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* @unimplemented
|
||||
*/
|
||||
int __cdecl
|
||||
GI_create_font(unsigned char *family,
|
||||
unsigned char *style,
|
||||
unsigned char *filename)
|
||||
{
|
||||
STUB("GI_create_font(0x%x, 0x%x, 0x%x) returns 0!\n", family, style, filename);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* @unimplemented
|
||||
*/
|
||||
int __cdecl
|
||||
GI_textheight(unsigned int index,
|
||||
unsigned int size,
|
||||
unsigned char *text)
|
||||
{
|
||||
STUB("GI_textheight(0x%x, 0x%x, 0x%x) returns 0!\n", index, size, text);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* @unimplemented
|
||||
*/
|
||||
int __cdecl
|
||||
GI_textlength(unsigned int index,
|
||||
unsigned int size,
|
||||
unsigned char *text)
|
||||
{
|
||||
STUB("GI_textlength(0x%x, 0x%x, 0x%x) returns 0!\n", index, size, text);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* @unimplemented
|
||||
*/
|
||||
int __cdecl
|
||||
GI_init(void)
|
||||
{
|
||||
STUB("GI_init() returns 0!\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* @unimplemented
|
||||
*/
|
||||
int __cdecl
|
||||
GI_set_dimension(HANDLE hWnd,
|
||||
int notify,
|
||||
int x1,
|
||||
int y1,
|
||||
unsigned int width,
|
||||
unsigned int height)
|
||||
{
|
||||
STUB("GI_set_dimension(0x%x, 0x%x, 0x%x, 0x%x, 0x%x, 0x%x) returns 0!\n", hWnd, notify, x1, y1, width, height);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* @unimplemented
|
||||
*/
|
||||
int __cdecl
|
||||
GC_blit_from_DIB(GC *gc,
|
||||
DIB *dib,
|
||||
int x,
|
||||
int y)
|
||||
{
|
||||
STUB("GC_blit_from_DIB(0x%x, 0x%x, 0x%x, 0x%x) returns 0!\n", gc, dib, x, y);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* @unimplemented
|
||||
*/
|
||||
int __cdecl
|
||||
GC_draw_pixel(GC *gc,
|
||||
int x,
|
||||
int y)
|
||||
{
|
||||
STUB("GC_draw_pixel(0x%x, 0x%x, 0x%x) returns 0!\n", gc, x, y);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* @unimplemented
|
||||
*/
|
||||
int __cdecl
|
||||
GC_set_clip(GC *gc,
|
||||
s_region *clip)
|
||||
{
|
||||
STUB("GC_set_clip(0x%x, 0x%x) returns 0!\n", gc, clip);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* @unimplemented
|
||||
*/
|
||||
DIB* __cdecl
|
||||
GI_create_DIB(void *data,
|
||||
unsigned int width,
|
||||
unsigned int height,
|
||||
unsigned int bpp,
|
||||
void *palette,
|
||||
unsigned int palette_size)
|
||||
{
|
||||
STUB("GI_create_DIB(0x%x, 0x%x, 0x%x, 0x%x, 0x%x, 0x%x) returns NULL!\n", data, width, height, bpp, palette, palette_size);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* @unimplemented
|
||||
*/
|
||||
int __cdecl
|
||||
GI_redraw_window(s_window *win)
|
||||
{
|
||||
STUB("GI_redraw_window(0x%x) returns 0!\n", win);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* @unimplemented
|
||||
*/
|
||||
DIB* __cdecl
|
||||
GI_ScaleDIB(DIB *srcbitmap,
|
||||
int iWidth,
|
||||
int iHeight,
|
||||
int filtertype,
|
||||
float filterwidth)
|
||||
{
|
||||
STUB("GI_ScaleDIB(0x%x, 0x%x, 0x%x, 0x%x, 0x%x) returns 0!\n", srcbitmap, iWidth, iHeight, filtertype, filterwidth);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* @unimplemented
|
||||
*/
|
||||
int __cdecl
|
||||
GI_get_resolution(s_resolution *res)
|
||||
{
|
||||
STUB("GI_get_resolution(0x%x) returns 0!\n", res);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* @unimplemented
|
||||
*/
|
||||
int __cdecl
|
||||
GI_widget_status_set(s_window *win,
|
||||
unsigned char *text)
|
||||
{
|
||||
STUB("GI_widget_status_set(0x%x, 0x%x) returns 0!\n", win, text);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/* EOF */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue