diff options
Diffstat (limited to 'xorg-server/hw/kdrive/ephyr')
-rw-r--r-- | xorg-server/hw/kdrive/ephyr/ephyr.c | 13 | ||||
-rw-r--r-- | xorg-server/hw/kdrive/ephyr/ephyr.h | 6 | ||||
-rw-r--r-- | xorg-server/hw/kdrive/ephyr/ephyrinit.c | 12 | ||||
-rw-r--r-- | xorg-server/hw/kdrive/ephyr/ephyrlog.h | 4 | ||||
-rw-r--r-- | xorg-server/hw/kdrive/ephyr/hostx.c | 41 | ||||
-rw-r--r-- | xorg-server/hw/kdrive/ephyr/hostx.h | 4 | ||||
-rw-r--r-- | xorg-server/hw/kdrive/ephyr/makefile | 6 |
7 files changed, 81 insertions, 5 deletions
diff --git a/xorg-server/hw/kdrive/ephyr/ephyr.c b/xorg-server/hw/kdrive/ephyr/ephyr.c index 8eda539aa..cfb1be811 100644 --- a/xorg-server/hw/kdrive/ephyr/ephyr.c +++ b/xorg-server/hw/kdrive/ephyr/ephyr.c @@ -64,8 +64,11 @@ Bool EphyrWantGrayScale = 0; Bool ephyrInitialize(KdCardInfo * card, EphyrPriv * priv) { +#ifdef _MSC_VER + __asm int 3; +#else OsSignal(SIGUSR1, hostx_handle_signal); - +#endif priv->base = 0; priv->bytes_per_line = 0; return TRUE; @@ -775,21 +778,29 @@ ephyrUpdateModifierState(unsigned int state) static void ephyrBlockSigio(void) { +#ifdef _MSC_VER + __asm int 3; +#else sigset_t set; sigemptyset(&set); sigaddset(&set, SIGIO); sigprocmask(SIG_BLOCK, &set, 0); +#endif } static void ephyrUnblockSigio(void) { +#ifdef _MSC_VER + __asm int 3; +#else sigset_t set; sigemptyset(&set); sigaddset(&set, SIGIO); sigprocmask(SIG_UNBLOCK, &set, 0); +#endif } static Bool diff --git a/xorg-server/hw/kdrive/ephyr/ephyr.h b/xorg-server/hw/kdrive/ephyr/ephyr.h index be910c19e..1e9b930c7 100644 --- a/xorg-server/hw/kdrive/ephyr/ephyr.h +++ b/xorg-server/hw/kdrive/ephyr/ephyr.h @@ -26,9 +26,11 @@ #ifndef _EPHYR_H_ #define _EPHYR_H_ #include <stdio.h> +#ifndef _MSC_VER #include <unistd.h> -#include <signal.h> #include <libgen.h> +#endif +#include <signal.h> #include "os.h" /* for OsSignal() */ #include "kdrive.h" @@ -177,6 +179,8 @@ extern void ephyrCursorEnable(ScreenPtr pScreen); extern int ephyrBufferHeight(KdScreenInfo * screen); +extern int ephyrBufferHeight(KdScreenInfo *screen); + /* ephyr_draw.c */ Bool diff --git a/xorg-server/hw/kdrive/ephyr/ephyrinit.c b/xorg-server/hw/kdrive/ephyr/ephyrinit.c index a62b49d4b..a01d5d0d0 100644 --- a/xorg-server/hw/kdrive/ephyr/ephyrinit.c +++ b/xorg-server/hw/kdrive/ephyr/ephyrinit.c @@ -54,6 +54,7 @@ InitCard(char *name) KdCardInfoAdd(&ephyrFuncs, 0); } +#ifndef _MSC_VER void InitOutput(ScreenInfo * pScreenInfo, int argc, char **argv) { @@ -131,6 +132,7 @@ ddxUseMsg(void) exit(1); } +#endif void processScreenArg(char *screen_size, char *parent_id) @@ -158,6 +160,7 @@ processScreenArg(char *screen_size, char *parent_id) } } +#ifndef _MSC_VER int ddxProcessArgument(int argc, char **argv, int i) { @@ -300,6 +303,15 @@ OsVendorInit(void) KdOsInit(&EphyrOsFuncs); } +#ifdef DDXOSFATALERROR +void +OsVendorFatalError(void) +{ +} +#endif + +#endif + /* 'Fake' cursor stuff, could be improved */ static Bool diff --git a/xorg-server/hw/kdrive/ephyr/ephyrlog.h b/xorg-server/hw/kdrive/ephyr/ephyrlog.h index 0da0a2518..6671c4779 100644 --- a/xorg-server/hw/kdrive/ephyr/ephyrlog.h +++ b/xorg-server/hw/kdrive/ephyr/ephyrlog.h @@ -43,14 +43,14 @@ #ifndef EPHYR_LOG #define EPHYR_LOG(...) \ LogMessageVerb(X_NOTICE, INFO_LOG_LEVEL, "in %s:%d:%s: ",\ - __FILE__, __LINE__, __func__) ; \ + __FILE__, __LINE__, __FUNCTION__) ; \ LogMessageVerb(X_NOTICE, INFO_LOG_LEVEL, __VA_ARGS__) #endif /*nomadik_log */ #ifndef EPHYR_LOG_ERROR #define EPHYR_LOG_ERROR(...) \ LogMessageVerb(X_NOTICE, ERROR_LOG_LEVEL, "Error:in %s:%d:%s: ",\ - __FILE__, __LINE__, __func__) ; \ + __FILE__, __LINE__, __FUNCTION__) ; \ LogMessageVerb(X_NOTICE, ERROR_LOG_LEVEL, __VA_ARGS__) #endif /*EPHYR_LOG_ERROR */ diff --git a/xorg-server/hw/kdrive/ephyr/hostx.c b/xorg-server/hw/kdrive/ephyr/hostx.c index 6988f1625..f313afa5a 100644 --- a/xorg-server/hw/kdrive/ephyr/hostx.c +++ b/xorg-server/hw/kdrive/ephyr/hostx.c @@ -47,9 +47,11 @@ #include <errno.h> #include <time.h> +#ifndef _MSC_VER #include <sys/ipc.h> #include <sys/shm.h> #include <sys/time.h> +#endif #include <X11/Xlib.h> #include <X11/Xutil.h> @@ -198,7 +200,11 @@ hostx_add_screen(EphyrScreenInfo screen, unsigned long win_id, int screen_num) void hostx_set_display_name(char *name) { +#ifdef _MSC_VER + __asm int 3; +#else HostX.server_dpy_name = strdup(name); +#endif } void @@ -458,6 +464,9 @@ hostx_init(void) } /* Try to get share memory ximages for a little bit more speed */ +#ifdef _MSC_VER + __asm int 3; +#else if (!XShmQueryExtension(HostX.dpy) || getenv("XEPHYR_NO_SHM")) { fprintf(stderr, "\nXephyr unable to use SHM XImages\n"); HostX.have_shm = False; @@ -485,6 +494,7 @@ hostx_init(void) shmdt(shminfo.shmaddr); shmctl(shminfo.shmid, IPC_RMID, 0); } +#endif XFlush(HostX.dpy); @@ -622,7 +632,7 @@ hostx_screen_init(EphyrScreenInfo screen, struct EphyrHostScreen *host_screen = host_screen_from_screen_info(screen); if (!host_screen) { - fprintf(stderr, "%s: Error in accessing hostx data\n", __func__); + fprintf(stderr, "%s: Error in accessing hostx data\n", __FUNCTION__); exit(1); } @@ -635,10 +645,14 @@ hostx_screen_init(EphyrScreenInfo screen, */ if (HostX.have_shm) { +#ifdef _MSC_VER + __asm int 3; +#else XShmDetach(HostX.dpy, &host_screen->shminfo); XDestroyImage(host_screen->ximg); shmdt(host_screen->shminfo.shmaddr); shmctl(host_screen->shminfo.shmid, IPC_RMID, 0); +#endif } else { free(host_screen->ximg->data); @@ -650,6 +664,10 @@ hostx_screen_init(EphyrScreenInfo screen, if (HostX.have_shm) { host_screen->ximg = +#ifdef _MSC_VER +__asm int 3; +#else + host_screen->ximg = XShmCreateImage(HostX.dpy, HostX.visual, HostX.depth, ZPixmap, NULL, &host_screen->shminfo, width, buffer_height); @@ -673,6 +691,7 @@ hostx_screen_init(EphyrScreenInfo screen, XShmAttach(HostX.dpy, &host_screen->shminfo); shm_success = True; } +#endif } if (!shm_success) { @@ -792,9 +811,13 @@ hostx_paint_rect(EphyrScreenInfo screen, } if (HostX.have_shm) { +#ifdef _MSC_VER + __asm int 3; +#else XShmPutImage(HostX.dpy, host_screen->win, HostX.gc, host_screen->ximg, sx, sy, dx, dy, width, height, False); +#endif } else { XPutImage(HostX.dpy, host_screen->win, HostX.gc, host_screen->ximg, @@ -808,6 +831,9 @@ static void hostx_paint_debug_rect(struct EphyrHostScreen *host_screen, int x, int y, int width, int height) { +#ifdef _MSC_VER + __asm int 3; +#else struct timespec tspec; tspec.tv_sec = HostX.damage_debug_msec / (1000000); @@ -823,6 +849,7 @@ hostx_paint_debug_rect(struct EphyrHostScreen *host_screen, /* nanosleep seems to work better than usleep for me... */ nanosleep(&tspec, NULL); +#endif } void @@ -1217,8 +1244,12 @@ hostx_set_window_bounding_rectangles(int a_window, rects[i].x, rects[i].y, rects[i].width, rects[i].height); } /*this aways returns 1 */ +#ifdef _MSC_VER + __asm int 3; +#else XShapeCombineRectangles(dpy, a_window, ShapeBounding, 0, 0, rects, a_num_rects, ShapeSet, YXBanded); +#endif is_ok = TRUE; free(rects); @@ -1250,8 +1281,12 @@ hostx_set_window_clipping_rectangles(int a_window, rects[i].x, rects[i].y, rects[i].width, rects[i].height); } /*this aways returns 1 */ +#ifdef _MSC_VER + __asm int 3; +#else XShapeCombineRectangles(dpy, a_window, ShapeClip, 0, 0, rects, a_num_rects, ShapeSet, YXBanded); +#endif is_ok = TRUE; free(rects); @@ -1264,11 +1299,15 @@ int hostx_has_xshape(void) { int event_base = 0, error_base = 0; +#ifdef _MSC_VER + __asm int 3; +#else Display *dpy = hostx_get_display(); if (!XShapeQueryExtension(dpy, &event_base, &error_base)) { return FALSE; } +#endif return TRUE; } diff --git a/xorg-server/hw/kdrive/ephyr/hostx.h b/xorg-server/hw/kdrive/ephyr/hostx.h index d6217119a..c1e1133c0 100644 --- a/xorg-server/hw/kdrive/ephyr/hostx.h +++ b/xorg-server/hw/kdrive/ephyr/hostx.h @@ -35,8 +35,12 @@ #define EPHYR_DBG(x, a...) \ fprintf(stderr, __FILE__ ":%d,%s() " x "\n", __LINE__, __func__, ##a) #else +#ifdef _MSC_VER +#define EPHYR_DBG() +#else #define EPHYR_DBG(x, a...) do {} while (0) #endif +#endif typedef struct EphyrHostXVars EphyrHostXVars; typedef struct EphyrHostXEvent EphyrHostXEvent; diff --git a/xorg-server/hw/kdrive/ephyr/makefile b/xorg-server/hw/kdrive/ephyr/makefile new file mode 100644 index 000000000..eba9a93e1 --- /dev/null +++ b/xorg-server/hw/kdrive/ephyr/makefile @@ -0,0 +1,6 @@ +LIBRARY = libxephyr + +CSRCS=ephyrinit.c ephyr.c hostx.c + +INCLUDES += ..\src ..\..\..\exa + |