diff -r -u --new-file xc.orig/config/cf/Imake.cf xc/config/cf/Imake.cf --- xc.orig/config/cf/Imake.cf Wed Jul 16 00:05:52 1997 +++ xc/config/cf/Imake.cf Wed Dec 3 19:04:11 1997 @@ -400,8 +400,13 @@ #endif /* WIN32 */ #ifdef linux +# ifdef hppa +# define MacroIncludeFile +# define MacroFile linux-hp.cf +# else # define MacroIncludeFile # define MacroFile linux.cf +# endif # undef linux # define LinuxArchitecture # ifdef i386 @@ -412,6 +417,9 @@ # define AlphaArchitecture # undef __alpha # endif /* __alpha */ +# ifdef hppa +# define HPArchitecture +# endif /* hppa */ #endif /* linux */ #ifdef __uxp__ diff -r -u --new-file xc.orig/config/cf/linux-hp.cf xc/config/cf/linux-hp.cf --- xc.orig/config/cf/linux-hp.cf Thu Jan 1 01:00:00 1970 +++ xc/config/cf/linux-hp.cf Thu Dec 4 17:02:43 1997 @@ -0,0 +1,148 @@ +XCOMM platform: linux-hp.cf + +#ifndef OSName +#define OSName DefaultOSName +#endif +#ifndef OSVendor +#define OSVendor OSF MkLinux +#endif +#ifndef OSMajorVersion +#define OSMajorVersion DefaultOSMajorVersion +#endif +#ifndef OSMinorVersion +#define OSMinorVersion DefaultOSMinorVersion +#endif +#ifndef OSTeenyVersion +#define OSTeenyVersion DefaultOSTeenyVersion +#endif + +#ifndef LinuxCLibMajorVersion +#define LinuxCLibMajorVersion DefaultLinuxCLibMajorVersion +#endif +#ifndef LinuxCLibMinorVersion +#define LinuxCLibMinorVersion DefaultLinuxCLibMinorVersion +#endif +#ifndef LinuxCLibMinorVersion +#define LinuxCLibTeenyVersion DefaultLinuxCLibTeenyVersion +#endif + +#ifndef LinuxBinUtilsMajorVersion +#define LinuxBinUtilsMajorVersion DefaultLinuxBinUtilsMajorVersion +#endif + +XCOMM operating system: OSName (OSMajorVersion./**/OSMinorVersion./**/OSTeenyVersion) +XCOMM libc: (LinuxCLibMajorVersion./**/LinuxCLibMinorVersion./**/LinuxCLibTeenyVersion) +XCOMM binutils: (LinuxBinUtilsMajorVersion) + +#ifndef UseElfFormat +#if OSMajorVersion > 1 || (OSMajorVersion == 1 && OSMinorVersion > 1) +#define UseElfFormat YES +#else +#define UseElfFormat NO +#endif +#endif +#define HasGcc YES +#define HasGcc2 YES +#define HasGcc2ForCplusplus YES +#define GccUsesGas YES +#define UseGas YES +#define GnuCpp YES +#define HasShadowPasswd NO +#ifndef HasLibCrypt +# define HasLibCrypt NO +#endif +#define HasPutenv YES +#define HasShm NO +#define HasSockets YES +#define HasZlib NO + +#define AvoidNullMakeCommand YES +#define StripInstalledPrograms YES +#define CompressAllFonts YES +#define Malloc0ReturnsNull YES +#define NeedConstPrototypes YES +#define NeedFunctionPrototypes YES +#define NeedNestedPrototypes YES +#define NeedVarargsPrototypes YES +#define NeedWidePrototypes NO +#define SetTtyGroup YES + +#define CcCmd gcc +#define CplusplusCmd g++ +#define AsCmd as +#define LdCmd ld + +#define AsmDefines -DUSE_GAS -U__ELF__ +#define MkdirHierCmd mkdir -p +#define CppCmd /lib/cpp +#define YaccCmd bison -y +#define LexCmd flex -l +#define LexLib -lfl +#define PreProcessCmd CcCmd -E +#define PostIncDir DefaultGccIncludeDir +#define LdCombineFlags -r +#define XawI18nDefines -DUSE_XWCHAR_STRING -DUSE_XMBTOWC +#define HasWChar32 YES +#define StandardCppDefines -traditional StandardDefines +#define ExtensionOSDefines -DHPINPUT -DXTESTEXT1 + +#if LinuxCLibMajorVersion < 6 +#define LinuxSourceDefines -D_POSIX_SOURCE \ + -D_BSD_SOURCE -D_SVID_SOURCE -DX_LOCALE +#else +#define LinuxSourceDefines -D_POSIX_C_SOURCE=199309L \ + -D_POSIX_SOURCE \ + -D_BSD_SOURCE -D_SVID_SOURCE +#define HasPosixThreads YES +#define ThreadedX YES +#define HasThreadSafeAPI YES +#define ThreadsLibraries -lpthread +#define SystemMTDefines -D_REENTRANT +#endif + +#define OptimizedCDebugFlags -O2 +#define LinuxMachineDefines -D__hppa__ +#define ServerOSDefines -DPART_NET +#define ServerExtraDefines -DGCCUSESGAS -DXOS -DBSTORE -DSOFTWARE_CURSOR -DSCREEN_PIXMAPS -DMERGE_SAVE_UNDERS -DHAS_IFREQ -DFORCE_SEPARATE_PRIVATE + +#define StandardDefines -Dlinux LinuxMachineDefines LinuxSourceDefines + +#define ConnectionFlags -DUNIXCONN -DTCPCONN + +/* Some of these man page defaults are overriden in the above OS sections */ +#ifndef ManSuffix +# define ManSuffix 1x +#endif +#ifndef ManDir +# define ManDir $(MANSOURCEPATH)1 +#endif +#ifndef LibManSuffix +# define LibManSuffix 3x +#endif +#ifndef LibmanDir +# define LibmanDir $(MANSOURCEPATH)3 +#endif +#ifndef FileManSuffix +# define FileManSuffix 5x +#endif +#ifndef FileManDir +# define FileManDir $(MANSOURCEPATH)5 +#endif + +#define XhpServer YES +#ifndef BuildXInputExt +# define BuildXInputExt YES +#endif + +#define BuildXKB YES +#define BuildXKBLib YES +#define HPFastScrolling YES + +#define InstallXserverSetUID YES +#define InstUidFlags -s -m 4711 + +#define ServerExtraSysLibs +#define HasNdbm YES +#define DBMLibrary -lgdbm + +#define ArchitectureDefines -DHP_ARCHITECTURE diff -r -u --new-file xc.orig/programs/Xserver/Imakefile xc/programs/Xserver/Imakefile --- xc.orig/programs/Xserver/Imakefile Wed Jul 16 00:06:25 1997 +++ xc/programs/Xserver/Imakefile Wed Dec 3 19:04:11 1997 @@ -334,7 +334,13 @@ CFB8DIR = cfb CFB32DIR = cfb32 DDXDIR1 = hw/hp -HPOBJS = hw/hp/hp.o +HPOBJS = hw/hp/hpInit.o hw/hp/ddx_info.o hw/hp/hpCursorUtils.o \ + hw/hp/input/cr16.o hw/hp/input/getkeysym.o hw/hp/input/x_hil.o \ + hw/hp/input/xtest1imp.o hw/hp/input/get_tv.o hw/hp/input/hpKeyMap.o \ + hw/hp/input/x_hilinit.o hw/hp/ngle/hyperScrn.o hw/hp/ngle/ngleblt.o \ + hw/hp/ngle/nglecopy.o hw/hp/ngle/nglescreen.o hw/hp/ngle/ngledoblt.o \ + hw/hp/ngle/nglecolormap.o hw/hp/ngle/nglecursor.o \ + hw/hp/ngle/nglenoop.o hw/hp/input/drivers/hil_driver.o hw/hp/input/drivers/hp7lc2m.o hw/hp/input/drivers/hp7lc2k.o HPSUBDIRS = $(STDDIRS) $(MFBDIR) $(CFB8DIR) $(CFB32DIR) $(DDXDIR1) $(DEPDIRS) HPLIBS = CFB32Libs HPSYSLIBS = $(CBRT) $(SYSLIBS) diff -r -u --new-file xc.orig/programs/Xserver/hw/hp/Imakefile xc/programs/Xserver/hw/hp/Imakefile --- xc.orig/programs/Xserver/hw/hp/Imakefile Sat Sep 28 23:20:48 1996 +++ xc/programs/Xserver/hw/hp/Imakefile Wed Dec 3 19:04:11 1997 @@ -15,7 +15,7 @@ hpCursorUtils.o \ hpInit.o \ ngle/ngle.o \ - input/libhp.a + input/libhp.a LOBJS = \ ddx_info.ln \ diff -r -u --new-file xc.orig/programs/Xserver/hw/hp/ddx_info.c xc/programs/Xserver/hw/hp/ddx_info.c --- xc.orig/programs/Xserver/hw/hp/ddx_info.c Tue Jan 24 07:43:05 1995 +++ xc/programs/Xserver/hw/hp/ddx_info.c Thu Dec 4 11:02:45 1997 @@ -22,7 +22,11 @@ #include #include #include +#ifdef linux +#include +#else #include +#endif #include #include diff -r -u --new-file xc.orig/programs/Xserver/hw/hp/include/hppriv.h xc/programs/Xserver/hw/hp/include/hppriv.h --- xc.orig/programs/Xserver/hw/hp/include/hppriv.h Mon Apr 18 02:30:06 1994 +++ xc/programs/Xserver/hw/hp/include/hppriv.h Thu Dec 4 11:05:28 1997 @@ -77,6 +77,8 @@ */ +#ifndef HPPRIV_H +#define HPPRIV_H /* * Number of depths that we can possible have on our hardware per @@ -115,3 +117,5 @@ } hpPriv; typedef hpPriv *hpPrivPtr; + +#endif /* HPPRIV_H */ diff -r -u --new-file xc.orig/programs/Xserver/hw/hp/input/Imakefile xc/programs/Xserver/hw/hp/input/Imakefile --- xc.orig/programs/Xserver/hw/hp/input/Imakefile Sat Sep 28 23:20:55 1996 +++ xc/programs/Xserver/hw/hp/input/Imakefile Wed Dec 3 19:04:12 1997 @@ -10,7 +10,9 @@ x_hil.c \ x_hilinit.c \ xtest1imp.c \ - getkeysym.c + getkeysym.c \ + drivers/hp7lc2m.c \ + drivers/hil_driver.c SRCS2 = \ @@ -21,8 +23,7 @@ NONHILOBJS = \ hpKeyMap.o \ xtest1imp.o \ - getkeysym.o - + getkeysym.o NONHILOBJS2 = \ cr16.o \ @@ -34,7 +35,9 @@ HILOBJS = \ x_hil.o \ - x_hilinit.o + x_hilinit.o \ + drivers/hp7lc2m.o \ + drivers/hil_driver.o OBJS = $(NONHILOBJS) $(NONHILOBJS2) $(HILOBJS) diff -r -u --new-file xc.orig/programs/Xserver/hw/hp/input/cr16.s xc/programs/Xserver/hw/hp/input/cr16.s --- xc.orig/programs/Xserver/hw/hp/input/cr16.s Thu Jun 15 21:25:19 1995 +++ xc/programs/Xserver/hw/hp/input/cr16.s Wed Dec 3 19:04:12 1997 @@ -1,6 +1,8 @@ -; $XConsortium: cr16.s,v 1.2 95/06/15 15:25:19 dpw Exp $ - .SPACE $TEXT$ - .SUBSPA $CODE$ +#include + + .space $TEXT$ + .subspa $CODE$ + .export cr16 .PROC .CALLINFO @@ -10,3 +12,5 @@ mfctl 16,%ret0 .EXIT .PROCEND + + .end diff -r -u --new-file xc.orig/programs/Xserver/hw/hp/input/drivers/Imakefile xc/programs/Xserver/hw/hp/input/drivers/Imakefile --- xc.orig/programs/Xserver/hw/hp/input/drivers/Imakefile Wed Jul 16 00:05:32 1997 +++ xc/programs/Xserver/hw/hp/input/drivers/Imakefile Wed Dec 3 19:04:12 1997 @@ -4,7 +4,7 @@ .c.o: $(RM) $@ - $(CC) -c $(CFLAGS) $(PICFLAGS) $*.c + $(CC) -c $(CFLAGS) $*.c DRVRLIBDIR = $(LIBDIR)/extensions PICFLAGS = PositionIndependentCFlags @@ -13,21 +13,13 @@ -I../../../../../../include/extensions #define DriverTarget(name) @@\ -AllTarget(name.sl) @@\ +AllTarget(name.o) @@\ @@\ -name.sl: name.o @@\ - $(RM) $@~ @@\ - $(LD) -o $@~ -b name.o @@\ - chmod a-w $@~ @@\ - $(RM) $@ @@\ - $(MV) $@~ $@ @@\ - @@\ -InstallTarget(install,name.sl,$(INSTPGMFLAGS),$(DRVRLIBDIR)) @@\ InstallTarget(install,XHPKeymaps,$(INSTPGMFLAGS),$(LIBDIR)) @@\ InstallTarget(install,X0screens,$(INSTPGMFLAGS),$(LIBDIR)) @@\ @@\ clean:: @@\ - $(RM) name.sl + $(RM) name.o DriverTarget(hp7lc2k) DriverTarget(hp7lc2m) diff -r -u --new-file xc.orig/programs/Xserver/hw/hp/input/drivers/hil_driver.c xc/programs/Xserver/hw/hp/input/drivers/hil_driver.c --- xc.orig/programs/Xserver/hw/hp/input/drivers/hil_driver.c Wed Jan 25 23:24:43 1995 +++ xc/programs/Xserver/hw/hp/input/drivers/hil_driver.c Thu Dec 4 09:42:08 1997 @@ -51,10 +51,17 @@ #include #include #include +#ifdef linux +#include +#include +#include +#else #include +#endif #include "x_serialdrv.h" #include "X.h" #include "XI.h" +#include #ifndef TRUE #define TRUE 1 @@ -809,7 +816,18 @@ n = read(fd, hil_buffer + data_start + bytes_left, BUFFER_SIZE - bytes_left); - /* !!! error check */ + +#ifdef linux + if(n == -1) { + if(errno != EAGAIN) + ErrorF("read failed errno %d\n", errno); + + return bytes_left; + } +#endif + + /* !!! error check */ + bytes_left += n; } @@ -2388,8 +2406,7 @@ return WRITE_FAILURE; } -/************************************************************************** - * +/* * This routine is called by the X server to initialize the device driver. * */ diff -r -u --new-file xc.orig/programs/Xserver/hw/hp/input/drivers/hp7lc2k.c xc/programs/Xserver/hw/hp/input/drivers/hp7lc2k.c --- xc.orig/programs/Xserver/hw/hp/input/drivers/hp7lc2k.c Wed Dec 4 16:26:25 1996 +++ xc/programs/Xserver/hw/hp/input/drivers/hp7lc2k.c Wed Dec 3 19:04:12 1997 @@ -30,6 +30,9 @@ #include #include #include "x_serialdrv.h" +#ifdef linux +#include +#endif /************************************************************************** * diff -r -u --new-file xc.orig/programs/Xserver/hw/hp/input/drivers/hp7lc2m.c xc/programs/Xserver/hw/hp/input/drivers/hp7lc2m.c --- xc.orig/programs/Xserver/hw/hp/input/drivers/hp7lc2m.c Wed Dec 4 16:26:39 1996 +++ xc/programs/Xserver/hw/hp/input/drivers/hp7lc2m.c Wed Dec 3 19:04:12 1997 @@ -29,6 +29,9 @@ #include "ps2io.h" #include #include "x_serialdrv.h" +#ifdef linux +#include +#endif /************************************************************************** * diff -r -u --new-file xc.orig/programs/Xserver/hw/hp/input/drivers/ps2io.h xc/programs/Xserver/hw/hp/input/drivers/ps2io.h --- xc.orig/programs/Xserver/hw/hp/input/drivers/ps2io.h Sat Jul 22 02:38:04 1995 +++ xc/programs/Xserver/hw/hp/input/drivers/ps2io.h Wed Dec 3 19:04:12 1997 @@ -11,7 +11,10 @@ #ifdef _KERNEL_BUILD # include "../h/stdsyms.h" #else /* ! _KERNEL_BUILD */ +#ifdef linux +#else # include +#endif /* linux */ #endif /* _KERNEL_BUILD */ #endif /* _SYS_STDSYMS_INCLUDED */ diff -r -u --new-file xc.orig/programs/Xserver/hw/hp/input/get_tv.c xc/programs/Xserver/hw/hp/input/get_tv.c --- xc.orig/programs/Xserver/hw/hp/input/get_tv.c Sun Aug 8 18:58:41 1993 +++ xc/programs/Xserver/hw/hp/input/get_tv.c Wed Dec 3 19:04:12 1997 @@ -33,6 +33,9 @@ * Dave Holt, GSY Performance, dah@cup.hp.com */ +#ifdef linux +#include +#endif #include #include diff -r -u --new-file xc.orig/programs/Xserver/hw/hp/input/hpKeyMap.c xc/programs/Xserver/hw/hp/input/hpKeyMap.c --- xc.orig/programs/Xserver/hw/hp/input/hpKeyMap.c Wed Jul 16 00:05:33 1997 +++ xc/programs/Xserver/hw/hp/input/hpKeyMap.c Wed Dec 3 19:04:12 1997 @@ -80,7 +80,7 @@ static KeySym null_keymap[1 * 0x80]; -#if defined(__hpux) || defined(__hp_osf) +#if defined(__hpux) || defined(__hp_osf) || defined(linux) static KeySym USASCIIMap[4*0x82] = { /* code values in comments at line end are actual value reported on HIL. REMEMBER, there is an offset of MIN_KEYCODE+2 applied to this table! @@ -513,7 +513,7 @@ */ static KeySymsRec DefaultKeySyms[] = { /* map name minKeyCode maxKC width */ -#if defined(__hpux) || defined(__hp_osf) +#if defined(__hpux) || defined(__hp_osf) || defined(linux) &USASCIIMap[8], (MIN_KEYCODE + 0x02), (MIN_KEYCODE + 0x7F), 4, USASCIIMap, (MIN_KEYCODE), (MIN_KEYCODE + 0x7F), 4, null_keymap, (MIN_KEYCODE), (MIN_KEYCODE + 0x7F), 1, @@ -536,7 +536,7 @@ { int n; -#if defined(__hpux) || defined(__hp_osf) +#if defined(__hpux) || defined(__hp_osf) || defined(linux) if ( 0 <= key_id && key_id <= 31) n = 0; /* ITF keyboard */ else if (60 <= key_id && key_id <= 91) n = 1; /* PS2 keyboard */ @@ -589,7 +589,7 @@ * Note: '#define MIN_KEYCODE 8' is above */ -#if defined(__hpux) || defined(__hp_osf) +#if defined(__hpux) || defined(__hp_osf) || defined(linux) /* This table is for the HP hil extended keyboards. * For the PS2 keyboards, the only difference is keycode 0. I used to @@ -673,7 +673,7 @@ */ CARD8 *hpModMap(kbd_id) { -#if defined(__hpux) || defined(__hp_osf) +#if defined(__hpux) || defined(__hp_osf) || defined(linux) switch (kbd_family(kbd_id)) { case 0: return hil_modmap; /* Extended keyboard */ diff -r -u --new-file xc.orig/programs/Xserver/hw/hp/input/hpkeys.h xc/programs/Xserver/hw/hp/input/hpkeys.h --- xc.orig/programs/Xserver/hw/hp/input/hpkeys.h Mon Apr 18 02:30:14 1994 +++ xc/programs/Xserver/hw/hp/input/hpkeys.h Wed Dec 3 19:04:12 1997 @@ -108,7 +108,7 @@ u_char reset_mods[3] = {0x43,0x5e,0xff}; u_char reset = 0x19; #endif -#if defined(__hpux) || defined(__hp_osf) +#if defined(__hpux) || defined(__hp_osf) || defined(linux) u_char reset_mods[3] = {0x06,0x05,0xff}; u_char reset = 0x0f; #endif diff -r -u --new-file xc.orig/programs/Xserver/hw/hp/input/x_hil.c xc/programs/Xserver/hw/hp/input/x_hil.c --- xc.orig/programs/Xserver/hw/hp/input/x_hil.c Sun Jan 14 14:47:04 1996 +++ xc/programs/Xserver/hw/hp/input/x_hil.c Wed Dec 3 19:08:27 1997 @@ -93,7 +93,11 @@ #include "inputstr.h" #include "hppriv.h" #include +#ifdef linux +#include +#else #include +#endif #ifdef XKB #include "XKBsrv.h" extern Bool noXkbExtension; diff -r -u --new-file xc.orig/programs/Xserver/hw/hp/input/x_hilinit.c xc/programs/Xserver/hw/hp/input/x_hilinit.c --- xc.orig/programs/Xserver/hw/hp/input/x_hilinit.c Sat Jan 28 01:02:07 1995 +++ xc/programs/Xserver/hw/hp/input/x_hilinit.c Thu Dec 4 09:49:34 1997 @@ -84,7 +84,10 @@ #include #include +#ifdef linux +#else #include +#endif #include #include "ps2io.h" @@ -1925,6 +1928,10 @@ sprintf(fname, "%s/X%sdevices",LIBDIR, display); if (((fp = fopen(BEEPER_DEVICE,"r")) != NULL) || null_needed) { +#ifdef linux + extern Bool hil_driver_Init(); + driverInit = hil_driver_Init; +#endif fclose (fp); d = next_device_private(); sprintf(d->driver_name, "%s/%s",DRVRLIBDIR,HIL_DRIVER); @@ -1933,6 +1940,8 @@ load_and_init_dev (d, &driverInit, TRUE); + if(hpPointer) + ErrorF("%d\n", hpPointer->dev_type); /* * The request to recycle the HIL input device state does not return * a valid input device. It is normally reused, but not if there are @@ -2112,6 +2121,8 @@ max_input_fd = dh->file_ds; } +#ifndef linux + /****************************************************************************** * * shl_driver_load() is passed the path of a shared library to load, and the @@ -2182,6 +2193,7 @@ return( (pfrb) ldr_module_entry ); } +#endif /* ! linux */ /*********************************************************************** * @@ -2216,7 +2228,12 @@ int *keyboard_is_pointer; { HPInputDevice *d; +#ifdef linux + extern Bool hp7lc2m_Init(); + Bool (*driverInit)() = hp7lc2m_Init; +#else Bool (*driverInit)() = NULL; +#endif if (!din_mouse_present()) /* no DIN mouse attached */ { @@ -2276,7 +2293,13 @@ find_din_kbd_use(keyboard_is_pointer) int keyboard_is_pointer; { +#ifdef linux + extern Bool hp7lc2k_Init(); + Bool (*driverInit)() = hp7lc2k_Init; +#else Bool (*driverInit)() = NULL; +#endif + HPInputDevice *d; if (!din_kbd_present()) /* no DIN kbd */ @@ -2315,8 +2338,14 @@ int ret_val; void *(*foo)(); - if (! *driverInit) - *driverInit = shl_driver_load(d->driver_name, d->entry, &foo, "x"); + if (! *driverInit) { +#ifdef linux + ErrorF("linuxX: no shared libs for %s\n", d->driver_name); +#else + *driverInit = shl_driver_load(d->driver_name, d->entry, &foo, "x"); +#endif + } + ret_val = (**driverInit)(&(d->s)); /* Initialize driver. */ if (ret_val!=INIT_SUCCESS) FatalError ("Couldn't initialize input device driver %s\n", @@ -2333,3 +2362,4 @@ init_device_private (d, TRUE); return 0; } + diff -r -u --new-file xc.orig/programs/Xserver/hw/hp/input/x_serialdrv.h xc/programs/Xserver/hw/hp/input/x_serialdrv.h --- xc.orig/programs/Xserver/hw/hp/input/x_serialdrv.h Wed Jan 25 05:37:51 1995 +++ xc/programs/Xserver/hw/hp/input/x_serialdrv.h Wed Dec 3 19:04:12 1997 @@ -30,7 +30,10 @@ #ifndef _X_SERIALDRV_H_ #define _X_SERIALDRV_H_ +#ifdef linux +#else #include +#endif #define X_KEYMAP_NAME "/etc/kbdlang" #define MIN_KEYCODE 8 @@ -166,20 +169,20 @@ int max_y; /* maximum y value in counts */ int file_ds; /* file descriptor */ int num_fdbk; /* length of list that follows */ - u_char *feedbacks; /* kbd, ptr, bell, and integer feedbacks*/ + unsigned char *feedbacks; /* kbd, ptr, bell, and integer feedbacks*/ int num_ledf; /* length of list that follows */ - u_char *ledf; /* led feedbacks */ + unsigned char *ledf; /* led feedbacks */ int num_strf; /* length of list that follows */ HPStrF *strf; /* string feedbacks */ - u_char flags; /* device characteristics */ - u_char ax_num; /* number of axes */ - u_char num_buttons; /* number of buttons */ - u_char num_keys; /* number of keys */ - u_char min_kcode; /* minimum keycode */ - u_char max_kcode; /* maximum keycode */ - u_char reset; /* keycode to cause X server reset */ - u_char reset_mods; /* mask of modifiers for server reset */ - u_char button_chording;/* interval (ms) if chording enabled */ - u_char reserved[8]; /* reserved for future use */ + unsigned char flags; /* device characteristics */ + unsigned char ax_num; /* number of axes */ + unsigned char num_buttons; /* number of buttons */ + unsigned char num_keys; /* number of keys */ + unsigned char min_kcode; /* minimum keycode */ + unsigned char max_kcode; /* maximum keycode */ + unsigned char reset; /* keycode to cause X server reset */ + unsigned char reset_mods; /* mask of modifiers for server reset */ + unsigned char button_chording;/* interval (ms) if chording enabled */ + unsigned char reserved[8]; /* reserved for future use */ }HPInputDeviceHeader; #endif /* _X_SERIALDRV_H_ */ diff -r -u --new-file xc.orig/programs/Xserver/hw/hp/ngle/Imakefile xc/programs/Xserver/hw/hp/ngle/Imakefile --- xc.orig/programs/Xserver/hw/hp/ngle/Imakefile Sat Sep 28 23:21:01 1996 +++ xc/programs/Xserver/hw/hp/ngle/Imakefile Wed Dec 3 19:04:12 1997 @@ -5,21 +5,22 @@ nglecolormap.c \ nglecursor.c \ nglenoop.c \ - hyperScrn.c + ngledoblt.S \ + hyperScrn.c ORIG_OBJS = nglescreen.o \ nglecolormap.o \ nglecursor.o \ nglenoop.o \ - hyperScrn.o + ngledoblt.o \ + hyperScrn.o #ifdef HPFastScrolling SCROLLING_SRC = nglecopy.c \ ngleblt.c SCROLLING_OBJ = nglecopy.o \ - ngleblt.o \ - ngledoblt.o + ngleblt.o FAST_SCROLLING_DEFINES = -DHP_FAST_SCROLLING #endif @@ -40,7 +41,5 @@ NormalLibraryObjectRule() NormalRelocatableTarget(ngle,$(OBJS)) - -LinkFile(ngledoblt.o,ngledoblt.o.8.07) DependTarget() diff -r -u --new-file xc.orig/programs/Xserver/hw/hp/ngle/ngle.h xc/programs/Xserver/hw/hp/ngle/ngle.h --- xc.orig/programs/Xserver/hw/hp/ngle/ngle.h Tue Jan 24 07:55:45 1995 +++ xc/programs/Xserver/hw/hp/ngle/ngle.h Thu Dec 4 10:54:57 1997 @@ -41,7 +41,12 @@ #include #include #include +#ifdef linux +#include +#include +#else #include +#endif /* linux */ #include #include "X.h" @@ -80,6 +85,55 @@ #ifndef Int8 #define Int8 char #endif + + +#ifdef linux + +#define CRT_MAX_REGIONS 6 +#define CRT_NAME_LENGTH 32 + +#define S9000_ID_S300 9 +#define S9000_ID_98720 10 +#define S9000_ID_98550 11 +#define S9000_ID_A1096A 12 +#define S9000_ID_FRI 13 +#define S9000_ID_98730 14 +#define S9000_ID_98705 0x26C08070 +#define S9000_ID_98736 0x26D148AB +#define S9000_ID_A1659A 0x26D1482A +#define S9000_ID_A1439A 0x26D148EE +#define S9000_ID_ELM 0x26D1488C +#define S9000_ID_98765 0x27480DEF +#define S9000_ID_ELK_768 0x27482101 +#define S9000_ID_STINGER 0x27A4A402 + +/* + * beurk beurk beurk + * This should be cleaned by using the definitions + * in mach_kernel/hp_pa/HP700/grfioctl.h. + * But this avoid us to include hpux .h files. + */ + +typedef struct grf_fbinfo crt_frame_buffer_t; + +#define crt_id id +#define crt_map_size mapsize; +#define crt_x dwidth +#define crt_y dlength +#define crt_total_x width +#define crt_total_y length +#define crt_x_pitch xlen +#define crt_bits_per_pixel bpp +#define crt_bits_used bppu +#define crt_planes npl +#define crt_plane_size nplbytes +#define crt_name name +#define crt_attributes attr +#define crt_frame_base fbbase +#define crt_control_base regbase +#define crt_region regions + +#endif /* linux */ #include "ngleextern.h" #include "dregs.h" diff -r -u --new-file xc.orig/programs/Xserver/hw/hp/ngle/ngledoblt.S xc/programs/Xserver/hw/hp/ngle/ngledoblt.S --- xc.orig/programs/Xserver/hw/hp/ngle/ngledoblt.S Thu Jan 1 01:00:00 1970 +++ xc/programs/Xserver/hw/hp/ngle/ngledoblt.S Wed Dec 3 19:04:12 1997 @@ -0,0 +1,220 @@ +#define ASSEMBLER + +#include + + .space $TEXT$ + .subspa $CODE$ + + .import ngleScreenPrivIndex,data + + .export ngleDepth8_CopyAreaFromToScreen + .proc + .callinfo + +ngleDepth8_CopyAreaFromToScreen + ldo 0x40(sp),sp + stw arg0,-0x64(sp) + stw arg1,-0x68(sp) + stw arg2,-0x6c(sp) + stw arg3,-0x70(sp) + ldw -0x68(sp),r1 + ldw 0x10(r1),r31 + ldw 0x19c(r31),t4 + ldil L%ngleScreenPrivIndex,t3 + ldw R%ngleScreenPrivIndex(t3),t3 + ldwx,s t3(t4),t2 + stw t2,-0x38(sp) + ldw -0x38(sp),t1 + ldw 0x14(t1),r1 + stw r1,-0x34(sp) + ldw -0x34(sp),r31 + zdepi 1,10,1,t4 + add t4,r31,t3 + stw t3,-0x28(sp) + ldw -0x28(sp),t2 +$ngle2: + ldb 0(t2),t1 + extrs t1,31,8,r1 + stb r1,-0x2c(sp) + ldb -0x2c(sp),r31 + extrs r31,31,8,t4 + comibf,=,n 0,t4,$ngle1 + ldw -0x28(sp),t3 + ldb 0(t3),t2 + extrs t2,31,8,t1 + stb t1,-0x2c(sp) +$ngle1: + ldb -0x2c(sp),r1 + extrs r1,31,8,r31 + comibf,=,n 0,r31,$ngle2 + ldw -0x28(sp),t2 + ldw -0x38(sp),t4 + ldw 0x10(t4),t3 + .word 0x22B88578 /* ldil 0x2bcb0000,t2 */ + ldo 0x15a(t2),t1 + combf,=,n t3,t1,$ngle3 + ldw -0x34(sp),r1 + .word 0x23e10274 /* ldil 0x13a02000,r31 */ + .word 0x282c0000 /* addil 0x18000,r1 */ + stw r31,0(r1) + b $ngle4 + ldw -0x78(sp),t2 +$ngle3: + ldw -0x34(sp),t4 + .word 0x22802274 /* ldil 0x13a01000,t3 */ + .word 0x2a6c0000 /* addil 0x18000,t4 */ + stw t3,0(r1) + ldw -0x78(sp),t2 +$ngle4: + .word 0x23e00460 /* ldil 0x23000000,r31 */ + zdep t2,23,4,r1 + or r1,r31,t4 + ldw -0x34(sp),t3 + .word 0x2a8c0000 /* addil 0x18000,t3 */ + stw t4,0x1c(r1) + ldw -0x34(sp),t2 + ldw -0x7c(sp),t1 + .word 0x2aac0000 /* addil 0x18000,t2 */ + stw t1,0x18(r1) + ldw -0x6c(sp),r1 + sth r1,-0x30(sp) + ldw -0x70(sp),r31 + sth r31,-0x2e(sp) + ldw -0x34(sp),t4 + ldw -0x30(sp),t3 + stw t3,0x808(t4) + ldw -0x74(sp),t2 + ldh 4(t2),t1 + extrs t1,31,16,r1 + ldw -0x74(sp),r31 + ldh 0(r31),t4 + extrs t4,31,16,t3 + sub r1,t3,t2 + sth t2,-0x30(sp) + ldw -0x74(sp),t1 + ldh 6(t1),r1 + extrs r1,31,16,r31 + ldw -0x74(sp),t4 + ldh 2(t4),t3 + extrs t3,31,16,t2 + sub r31,t2,t1 + sth t1,-0x2e(sp) + ldw -0x34(sp),r1 + ldw -0x30(sp),r31 + stw r31,0x804(r1) + ldw -0x74(sp),t4 + ldh 0(t4),t3 + extrs t3,31,16,t2 + sth t2,-0x30(sp) + ldw -0x74(sp),t1 + ldh 2(t1),r1 + extrs r1,31,16,r31 + sth r31,-0x2e(sp) + ldw -0x34(sp),t4 + ldw -0x30(sp),t3 + stw t3,0xb00(t4) + bv r0(rp) + ldo -0x40(sp),sp + + .procend + + .export ngleDepth24_CopyAreaFromToScreen + .proc + .callinfo + +ngleDepth24_CopyAreaFromToScreen + ldo 0x40(sp),sp + stw arg0,-0x64(sp) + stw arg1,-0x68(sp) + stw arg2,-0x6c(sp) + stw arg3,-0x70(sp) + ldw -0x68(sp),t2 + ldw 0x10(t2),t1 + ldw 0x19c(t1),r31 + ldil L%ngleScreenPrivIndex,t3 + ldw R%ngleScreenPrivIndex(t3),t4 + ldwx,s t4(r31),t3 + stw t3,-0x38(sp) + ldw -0x38(sp),t2 + ldw 0x14(t2),t1 + stw t1,-0x34(sp) + ldw -0x34(sp),r1 + zdepi 1,10,1,r31 + add r31,r1,t4 + stw t4,-0x28(sp) + ldw -0x28(sp),t3 +$ngle6: + ldb 0(t3),t2 + extrs t2,31,8,t1 + stb t1,-0x2c(sp) + ldb -0x2c(sp),r1 + extrs r1,31,8,r31 + comibf,=,n 0,r31,$ngle5 + ldw -0x28(sp),t4 + ldb 0(t4),t3 + extrs t3,31,8,t2 + stb t2,-0x2c(sp) +$ngle5: + ldb -0x2c(sp),t1 + extrs t1,31,8,r1 + comibf,=,n 0,r1,$ngle6 + ldw -0x28(sp),t3 + ldw -0x34(sp),r31 + .word 0x22650775 /* ldil -0x445f6000,t4 */ + .word 0x2bec0000 /* addil 0x18000,r31 */ + stw t4,0(r1) + ldw -0x78(sp),t3 + .word 0x20200460 /* ldil 0x23000000,r1 */ + zdep t3,23,4,t1 + or t1,r1,r31 + ldw -0x34(sp),t4 + .word 0x2a6c0000 /* addil 0x18000,t4 */ + stw r31,0x1c(r1) + ldw -0x34(sp),t3 + ldw -0x7c(sp),t2 + .word 0x2a8c0000 /* addil 0x18000,t3 */ + stw t2,0x18(r1) + ldw -0x6c(sp),t1 + sth t1,-0x30(sp) + ldw -0x70(sp),r1 + sth r1,-0x2e(sp) + ldw -0x34(sp),r31 + ldw -0x30(sp),t4 + stw t4,0x808(r31) + ldw -0x74(sp),t3 + ldh 4(t3),t2 + extrs t2,31,16,t1 + ldw -0x74(sp),r1 + ldh 0(r1),r31 + extrs r31,31,16,t4 + sub t1,t4,t3 + sth t3,-0x30(sp) + ldw -0x74(sp),t2 + ldh 6(t2),t1 + extrs t1,31,16,r1 + ldw -0x74(sp),r31 + ldh 2(r31),t4 + extrs t4,31,16,t3 + sub r1,t3,t2 + sth t2,-0x2e(sp) + ldw -0x34(sp),t1 + ldw -0x30(sp),r1 + stw r1,0x804(t1) + ldw -0x74(sp),r31 + ldh 0(r31),t4 + extrs t4,31,16,t3 + sth t3,-0x30(sp) + ldw -0x74(sp),t2 + ldh 2(t2),t1 + extrs t1,31,16,r1 + sth r1,-0x2e(sp) + ldw -0x34(sp),r31 + ldw -0x30(sp),t4 + stw t4,0xb00(r31) + bv r0(rp) + ldo -0x40(sp),sp + + .procend + + .end + diff -r -u --new-file xc.orig/programs/Xserver/hw/hp/ngle/nglescreen.c xc/programs/Xserver/hw/hp/ngle/nglescreen.c --- xc.orig/programs/Xserver/hw/hp/ngle/nglescreen.c Tue Jan 24 08:15:14 1995 +++ xc/programs/Xserver/hw/hp/ngle/nglescreen.c Thu Dec 4 16:56:30 1997 @@ -1086,7 +1086,11 @@ pScreenPriv->moveCursorOnVBlank = CURSOR_AT_VBLANK_DRIVEROPTION; moveCursorEnvar = getenv("HPGCRX_MOVE_CURSOR_ON_VBLANK"); - if ( (strcmp(moveCursorEnvar, "FALSE") == 0) +#ifdef linux + if ((moveCursorEnvar == NULL) || (strcmp(moveCursorEnvar, "FALSE") == 0) +#else + if ((strcmp(moveCursorEnvar, "FALSE") == 0) +#endif || (strcmp(moveCursorEnvar, "False") == 0) || (strcmp(moveCursorEnvar, "false") == 0) || (strcmp(moveCursorEnvar, "0") == 0)) diff -r -u --new-file xc.orig/programs/Xserver/include/servermd.h xc/programs/Xserver/include/servermd.h --- xc.orig/programs/Xserver/include/servermd.h Mon Dec 2 16:25:11 1996 +++ xc/programs/Xserver/include/servermd.h Wed Dec 3 19:04:12 1997 @@ -194,7 +194,7 @@ #endif /* ibm */ -#ifdef hpux +#if defined (hpux) || defined(linux) #define IMAGE_BYTE_ORDER MSBFirst /* Values for the HP only */ #define BITMAP_BIT_ORDER MSBFirst @@ -314,7 +314,6 @@ (defined(__NetBSD__) && defined(__i386__)) || \ defined(__FreeBSD__) || \ defined(MACH386) || \ - defined(linux) || \ (defined(AMOEBA) && defined(i80386)) || \ defined(MINIX) || \ defined(WIN32)) diff -r -u --new-file xc.orig/programs/Xserver/include/site.h xc/programs/Xserver/include/site.h --- xc.orig/programs/Xserver/include/site.h Mon Dec 9 23:56:52 1996 +++ xc/programs/Xserver/include/site.h Wed Dec 3 19:04:12 1997 @@ -100,7 +100,7 @@ #else #define DEFAULT_AUTOREPEAT FALSE #endif -#ifdef hpux +#if defined (hpux) || defined(linux) #define DEFAULT_AUTOREPEATS {\ 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,\ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,\