Add Xmuu library to remove requirement for Xt/Xaw from most X utilities Add

i810 and Xv support to kdrive
This commit is contained in:
Keith Packard 2001-03-30 02:15:20 +00:00
parent a161cfd728
commit f39a62d122
13 changed files with 864 additions and 794 deletions

View File

@ -1,5 +1,5 @@
XCOMM $XConsortium: Imakefile /main/10 1996/12/02 10:20:33 lehors $ XCOMM $XConsortium: Imakefile /main/10 1996/12/02 10:20:33 lehors $
XCOMM $XFree86: xc/programs/Xserver/hw/kdrive/Imakefile,v 1.4 2000/09/15 15:19:00 keithp Exp $ XCOMM $XFree86: xc/programs/Xserver/hw/kdrive/Imakefile,v 1.5 2000/12/01 00:01:30 keithp Exp $
KDRIVE=. KDRIVE=.
#include "Kdrive.tmpl" #include "Kdrive.tmpl"
@ -8,11 +8,16 @@ RENDERSRCS=kpict.c
RENDEROBJS=kpict.o RENDEROBJS=kpict.o
#endif #endif
#if BuildXvExt
XVSRCS=kxv.c
XVOBJS=kxv.o
#endif
SRCS = kcmap.c kcolor.c kdrive.c kinfo.c kinput.c kmap.c knoop.c ktest.c \ SRCS = kcmap.c kcolor.c kdrive.c kinfo.c kinput.c kmap.c knoop.c ktest.c \
vga.c kasync.c kmode.c kcurscol.c kshadow.c $(RENDERSRCS) vga.c kasync.c kmode.c kcurscol.c kshadow.c $(RENDERSRCS) $(XVSRCS)
OBJS = kcmap.o kcolor.o kdrive.o kinfo.o kinput.o kmap.o knoop.o ktest.o \ OBJS = kcmap.o kcolor.o kdrive.o kinfo.o kinput.o kmap.o knoop.o ktest.o \
vga.o kasync.o kmode.o kcurscol.o kshadow.o $(RENDEROBJS) vga.o kasync.o kmode.o kcurscol.o kshadow.o $(RENDEROBJS) $(XVOBJS)
INCLUDES = $(KDINCS) INCLUDES = $(KDINCS)

View File

@ -21,7 +21,7 @@
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE. * PERFORMANCE OF THIS SOFTWARE.
*/ */
/* $XFree86: xc/programs/Xserver/hw/kdrive/fbdev/fbdev.c,v 1.9 2000/09/27 20:46:36 keithp Exp $ */ /* $XFree86: xc/programs/Xserver/hw/kdrive/fbdev/fbdev.c,v 1.10 2000/10/03 17:22:14 keithp Exp $ */
#include "fbdev.h" #include "fbdev.h"
@ -119,6 +119,11 @@ fbdevScreenInitialize (KdScreenInfo *screen, FbdevScrPriv *scrpriv)
screen->fb[0].redMask = Mask (priv->var.red.offset, priv->var.red.length); screen->fb[0].redMask = Mask (priv->var.red.offset, priv->var.red.length);
screen->fb[0].greenMask = Mask (priv->var.green.offset, priv->var.green.length); screen->fb[0].greenMask = Mask (priv->var.green.offset, priv->var.green.length);
screen->fb[0].blueMask = Mask (priv->var.blue.offset, priv->var.blue.length); screen->fb[0].blueMask = Mask (priv->var.blue.offset, priv->var.blue.length);
#ifdef ITSY
screen->fb[0].redMask = 0xf800;
screen->fb[0].greenMask = 0x07e0;
screen->fb[0].blueMask = 0x001f;
#endif
allbits = screen->fb[0].redMask | screen->fb[0].greenMask | screen->fb[0].blueMask; allbits = screen->fb[0].redMask | screen->fb[0].greenMask | screen->fb[0].blueMask;
depth = 32; depth = 32;
while (depth && !(allbits & (1 << (depth - 1)))) while (depth && !(allbits & (1 << (depth - 1))))

View File

@ -8,9 +8,9 @@ TSSRCS = ts.c
TSOBJS = ts.o TSOBJS = ts.o
#endif #endif
SRCS = keyboard.c linux.c ps2.c bus.c $(TSSRCS) SRCS = keyboard.c linux.c ps2.c bus.c agp.c $(TSSRCS)
OBJS = keyboard.o linux.o ps2.o bus.o $(TSOBJS) OBJS = keyboard.o linux.o ps2.o bus.o agp.o $(TSOBJS)
INCLUDES = -I. $(KDINCS) INCLUDES = -I. $(KDINCS)

View File

@ -1,5 +1,5 @@
/* /*
* $XFree86: xc/programs/Xserver/hw/kdrive/linux/keyboard.c,v 1.4 2000/10/10 14:05:48 tsi Exp $ * $XFree86: xc/programs/Xserver/hw/kdrive/linux/keyboard.c,v 1.5 2000/12/08 23:04:57 keithp Exp $
* *
* Copyright © 1999 Keith Packard * Copyright © 1999 Keith Packard
* *
@ -29,6 +29,7 @@
#define XK_PUBLISHING #define XK_PUBLISHING
#include <X11/keysym.h> #include <X11/keysym.h>
#include <termios.h> #include <termios.h>
#include <sys/ioctl.h>
extern int LinuxConsoleFd; extern int LinuxConsoleFd;

View File

@ -28,6 +28,7 @@
#include <linux/vt.h> #include <linux/vt.h>
#include <linux/kd.h> #include <linux/kd.h>
#include <sys/stat.h> #include <sys/stat.h>
#include <sys/ioctl.h>
#include <keysym.h> #include <keysym.h>
static int vtno; static int vtno;
@ -174,6 +175,7 @@ LinuxFindPci (CARD16 vendor, CARD16 device, CARD32 count, KdCardAttr *attr)
n--; n--;
} }
attr->naddr = n; attr->naddr = n;
attr->bus = bus;
ret = TRUE; ret = TRUE;
break; break;
} }
@ -181,6 +183,37 @@ LinuxFindPci (CARD16 vendor, CARD16 device, CARD32 count, KdCardAttr *attr)
return ret; return ret;
} }
unsigned char *
LinuxGetPciCfg(KdCardAttr *attr) {
char filename[256];
FILE *f;
unsigned char *cfg;
int r;
snprintf(filename, 255, "/proc/bus/pci/%02x/%02x.%x",
attr->bus >> 8, (attr->bus & 0xff) >> 3, attr->bus & 7);
/* fprintf(stderr,"Find card on path %s\n",filename); */
if (!(f=fopen(filename,"r")))
return NULL;
if (!(cfg=xalloc(256)))
{
fclose(f);
return NULL;
}
if (256 != (r=fread(cfg, 1, 256, f)))
{
fprintf(stderr,"LinuxGetPciCfg: read %d, expected 256\n",r);
free(cfg);
cfg=NULL;
}
fclose(f);
/* fprintf(stderr,"LinuxGetPciCfg: success, returning %p\n",cfg); */
return cfg;
}
void void
LinuxSetSwitchMode (int mode) LinuxSetSwitchMode (int mode)
{ {

View File

@ -115,6 +115,7 @@ Ps2Init (void)
if (ps2Port >= 0) if (ps2Port >= 0)
return ps2Port; return ps2Port;
} }
return -1;
} }
void void

View File

@ -21,7 +21,7 @@
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE. * PERFORMANCE OF THIS SOFTWARE.
*/ */
/* $XFree86: xc/programs/Xserver/hw/kdrive/kasync.c,v 1.5 2000/08/26 00:24:37 keithp Exp $ */ /* $XFree86: xc/programs/Xserver/hw/kdrive/kasync.c,v 1.7 2000/09/22 06:25:29 keithp Exp $ */
#include "kdrive.h" #include "kdrive.h"
@ -287,12 +287,12 @@ const GCOps kdAsyncPixmapGCOps = {
KdCheckCopyPlane, KdCheckCopyPlane,
fbPolyPoint, fbPolyPoint,
fbPolyLine, fbPolyLine,
miPolySegment, fbPolySegment,
miPolyRectangle, fbPolyRectangle,
fbPolyArc, fbPolyArc,
miFillPolygon, fbFillPolygon,
fbPolyFillRect, fbPolyFillRect,
miPolyFillArc, fbPolyFillArc,
miPolyText8, miPolyText8,
miPolyText16, miPolyText16,
miImageText8, miImageText8,

File diff suppressed because it is too large Load Diff

View File

@ -21,7 +21,7 @@
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE. * PERFORMANCE OF THIS SOFTWARE.
*/ */
/* $XFree86: xc/programs/Xserver/hw/kdrive/kdrive.c,v 1.10 2000/09/27 20:47:36 keithp Exp $ */ /* $XFree86: xc/programs/Xserver/hw/kdrive/kdrive.c,v 1.11 2000/12/08 22:59:37 keithp Exp $ */
#include "kdrive.h" #include "kdrive.h"
#ifdef PSEUDO8 #ifdef PSEUDO8
@ -30,6 +30,10 @@
#include <mivalidate.h> #include <mivalidate.h>
#include <dixstruct.h> #include <dixstruct.h>
#ifdef XV
#include "kxv.h"
#endif
CARD8 kdBpp[] = { 1, 4, 8, 16, 24, 32 }; CARD8 kdBpp[] = { 1, 4, 8, 16, 24, 32 };
#define NUM_KD_BPP (sizeof (kdBpp) / sizeof (kdBpp[0])) #define NUM_KD_BPP (sizeof (kdBpp) / sizeof (kdBpp[0]))
@ -243,6 +247,7 @@ KdEnableScreen (ScreenPtr pScreen)
KdSetRootClip (pScreen, TRUE); KdSetRootClip (pScreen, TRUE);
if (pScreenPriv->card->cfuncs->dpms) if (pScreenPriv->card->cfuncs->dpms)
(*pScreenPriv->card->cfuncs->dpms) (pScreen, pScreenPriv->dpmsState); (*pScreenPriv->card->cfuncs->dpms) (pScreen, pScreenPriv->dpmsState);
return TRUE;
} }
void void
@ -755,6 +760,8 @@ KdScreenInit(int index, ScreenPtr pScreen, int argc, char **argv)
miInitializeBackingStore (pScreen); miInitializeBackingStore (pScreen);
#endif #endif
#endif #endif
/* /*
* Wrap CloseScreen, the order now is: * Wrap CloseScreen, the order now is:
* KdCloseScreen * KdCloseScreen
@ -811,7 +818,6 @@ KdInitScreen (ScreenInfo *pScreenInfo,
char **argv) char **argv)
{ {
KdCardInfo *card = screen->card; KdCardInfo *card = screen->card;
int i;
(*card->cfuncs->scrinit) (screen); (*card->cfuncs->scrinit) (screen);
@ -927,6 +933,8 @@ KdAddScreen (ScreenInfo *pScreenInfo,
AddScreen (KdScreenInit, argc, argv); AddScreen (KdScreenInit, argc, argv);
} }
#if 0 /* This function is not used currently */
int int
KdDepthToFb (ScreenPtr pScreen, int depth) KdDepthToFb (ScreenPtr pScreen, int depth)
{ {
@ -938,12 +946,13 @@ KdDepthToFb (ScreenPtr pScreen, int depth)
return fb; return fb;
} }
#endif
void void
KdInitOutput (ScreenInfo *pScreenInfo, KdInitOutput (ScreenInfo *pScreenInfo,
int argc, int argc,
char **argv) char **argv)
{ {
int i;
KdCardInfo *card; KdCardInfo *card;
KdScreenInfo *screen; KdScreenInfo *screen;

View File

@ -21,7 +21,7 @@
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE. * PERFORMANCE OF THIS SOFTWARE.
*/ */
/* $XFree86: xc/programs/Xserver/hw/kdrive/kdrive.h,v 1.11 2000/11/29 08:42:25 keithp Exp $ */ /* $XFree86: xc/programs/Xserver/hw/kdrive/kdrive.h,v 1.12 2000/12/08 22:59:37 keithp Exp $ */
#include <stdio.h> #include <stdio.h>
#include "X.h" #include "X.h"
@ -67,6 +67,7 @@ typedef struct _KdCardAttr {
CARD32 io; CARD32 io;
CARD32 address[KD_MAX_CARD_ADDRESS]; CARD32 address[KD_MAX_CARD_ADDRESS];
int naddr; int naddr;
int bus;
} KdCardAttr; } KdCardAttr;
typedef struct _KdCardInfo { typedef struct _KdCardInfo {
@ -612,3 +613,6 @@ KdFrameBufferValid (CARD8 *base, int size);
int int
KdFrameBufferSize (CARD8 *base, int max); KdFrameBufferSize (CARD8 *base, int max);
/* function prototypes to be imlpemented by the drivers */
void
InitCard (char *name);

View File

@ -21,7 +21,7 @@
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE. * PERFORMANCE OF THIS SOFTWARE.
*/ */
/* $XFree86: xc/programs/Xserver/hw/kdrive/kinput.c,v 1.11 2000/12/08 21:40:02 keithp Exp $ */ /* $XFree86: xc/programs/Xserver/hw/kdrive/kinput.c,v 1.12 2001/01/23 06:25:05 keithp Exp $ */
#include "kdrive.h" #include "kdrive.h"
#include "inputstr.h" #include "inputstr.h"
@ -48,8 +48,8 @@ static Bool kdInputEnabled;
static Bool kdOffScreen; static Bool kdOffScreen;
static unsigned long kdOffScreenTime; static unsigned long kdOffScreenTime;
static KdMouseMatrix kdMouseMatrix = { static KdMouseMatrix kdMouseMatrix = {
1, 0, 0, { { 1, 0, 0 },
0, 1, 0 { 0, 1, 0 } }
}; };
#ifdef TOUCHSCREEN #ifdef TOUCHSCREEN
@ -403,29 +403,29 @@ KdInitAutoRepeats (void)
} }
const KdKeySymModsRec kdKeySymMods[] = { const KdKeySymModsRec kdKeySymMods[] = {
XK_Control_L, ControlMask, { XK_Control_L, ControlMask },
XK_Control_R, ControlMask, { XK_Control_R, ControlMask },
XK_Shift_L, ShiftMask, { XK_Shift_L, ShiftMask },
XK_Shift_R, ShiftMask, { XK_Shift_R, ShiftMask },
XK_Caps_Lock, LockMask, { XK_Caps_Lock, LockMask },
XK_Shift_Lock, LockMask, { XK_Shift_Lock, LockMask },
XK_Alt_L, Mod1Mask, { XK_Alt_L, Mod1Mask },
XK_Alt_R, Mod1Mask, { XK_Alt_R, Mod1Mask },
XK_Meta_L, Mod1Mask, { XK_Meta_L, Mod1Mask },
XK_Meta_R, Mod1Mask, { XK_Meta_R, Mod1Mask },
XK_Num_Lock, Mod2Mask, { XK_Num_Lock, Mod2Mask },
XK_Super_L, Mod3Mask, { XK_Super_L, Mod3Mask },
XK_Super_R, Mod3Mask, { XK_Super_R, Mod3Mask },
XK_Hyper_L, Mod3Mask, { XK_Hyper_L, Mod3Mask },
XK_Hyper_R, Mod3Mask, { XK_Hyper_R, Mod3Mask },
XK_Mode_switch, Mod4Mask, { XK_Mode_switch, Mod4Mask },
#ifdef TOUCHSCREEN #ifdef TOUCHSCREEN
/* PDA specific hacks */ /* PDA specific hacks */
XF86XK_Start, ControlMask, { XF86XK_Start, ControlMask },
XK_Menu, ShiftMask, { XK_Menu, ShiftMask },
XK_telephone, Mod1Mask, { XK_telephone, Mod1Mask },
XF86XK_AudioRecord, Mod2Mask, { XF86XK_AudioRecord, Mod2Mask },
XF86XK_Calendar, Mod3Mask, { XF86XK_Calendar, Mod3Mask }
#endif #endif
}; };
@ -787,6 +787,7 @@ int kdEmulationDx, kdEmulationDy;
#define EventX(e) ((e)->u.keyButtonPointer.rootX) #define EventX(e) ((e)->u.keyButtonPointer.rootX)
#define EventY(e) ((e)->u.keyButtonPointer.rootY) #define EventY(e) ((e)->u.keyButtonPointer.rootY)
int
KdInsideEmulationWindow (xEvent *ev) KdInsideEmulationWindow (xEvent *ev)
{ {
if (ev->u.keyButtonPointer.pad1) if (ev->u.keyButtonPointer.pad1)
@ -829,6 +830,7 @@ KdClassifyInput (xEvent *ev)
default: default:
return keyboard; return keyboard;
} }
return keyboard;
} }
#ifndef NDEBUG #ifndef NDEBUG

View File

@ -21,7 +21,7 @@
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE. * PERFORMANCE OF THIS SOFTWARE.
*/ */
/* $XFree86: xc/programs/Xserver/hw/kdrive/kmap.c,v 1.5 2000/12/08 23:04:56 keithp Exp $ */ /* $XFree86: xc/programs/Xserver/hw/kdrive/kmap.c,v 1.6 2000/12/13 18:06:54 keithp Exp $ */
#include "kdrive.h" #include "kdrive.h"
@ -38,6 +38,8 @@
#include <asm/mtrr.h> #include <asm/mtrr.h>
#endif #endif
#include <sys/ioctl.h>
void * void *
KdMapDevice (CARD32 addr, CARD32 size) KdMapDevice (CARD32 addr, CARD32 size)
{ {

View File

@ -1,5 +1,5 @@
/* /*
* $XFree86$ * $XFree86: xc/programs/Xserver/hw/kdrive/kmode.c,v 1.5 2000/05/24 23:57:56 keithp Exp $
* *
* Copyright 1999 SuSE, Inc. * Copyright 1999 SuSE, Inc.
* *
@ -41,6 +41,14 @@ const KdMonitorTiming kdMonitorTimings[] = {
36, 108, 216, KdSyncNegative, /* 37.927 */ 36, 108, 216, KdSyncNegative, /* 37.927 */
1, 42, 46, KdSyncPositive, /* 85.039 */ 1, 42, 46, KdSyncPositive, /* 85.039 */
}, },
/* Modeline "720x576" 29.000 720 736 800 880 576 577 580 625 */
{
720, 576, 52, 32954, /* PAL Video */
16, 80, 160, KdSyncPositive, /* 32.954 */
1, 45, 49, KdSyncPositive, /* 52.727 */
},
/* 640x480 modes */ /* 640x480 modes */
{ 640, 480, 85, 36000, /* VESA */ { 640, 480, 85, 36000, /* VESA */