b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/* $XFree86: xc/programs/Xserver/include/servermd.h,v 3.56tsi Exp $ */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/***********************************************************
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncCopyright 1987, 1998 The Open Group
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncPermission to use, copy, modify, distribute, and sell this software and its
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncdocumentation for any purpose is hereby granted without fee, provided that
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncthe above copyright notice appear in all copies and that both that
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsynccopyright notice and this permission notice appear in supporting
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncdocumentation.
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncThe above copyright notice and this permission notice shall be included in
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncall copies or substantial portions of the Software.
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncTHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncOPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncAN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncCONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncExcept as contained in this notice, the name of The Open Group shall not be
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncused in advertising or otherwise to promote the sale, use or other dealings
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncin this Software without prior written authorization from The Open Group.
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncCopyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync All Rights Reserved
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncPermission to use, copy, modify, and distribute this software and its
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncdocumentation for any purpose and without fee is hereby granted,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncprovided that the above copyright notice appear in all copies and that
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncboth that copyright notice and this permission notice appear in
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncsupporting documentation, and that the name of Digital not be
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncused in advertising or publicity pertaining to distribution of the
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncsoftware without specific, written prior permission.
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncDIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncDIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncWHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncSOFTWARE.
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync******************************************************************/
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/* $Xorg: servermd.h,v 1.3 2000/08/17 19:53:31 cpqbld Exp $ */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/* $XdotOrg: xserver/xorg/include/servermd.h,v 1.9 2005/11/15 00:29:23 ajax Exp $ */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#ifndef SERVERMD_H
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define SERVERMD_H 1
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/*
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * Machine dependent values:
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * GLYPHPADBYTES should be chosen with consideration for the space-time
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * trade-off. Padding to 0 bytes means that there is no wasted space
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * in the font bitmaps (both on disk and in memory), but that access of
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * the bitmaps will cause odd-address memory references. Padding to
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * 2 bytes would ensure even address memory references and would
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * be suitable for a 68010-class machine, but at the expense of wasted
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * space in the font bitmaps. Padding to 4 bytes would be good
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * for real 32 bit machines, etc. Be sure that you tell the font
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * compiler what kind of padding you want because its defines are
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * kept separate from this. See server/include/font.h for how
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * GLYPHPADBYTES is used.
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync *
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * Along with this, you should choose an appropriate value for
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * GETLEFTBITS_ALIGNMENT, which is used in ddx/mfb/maskbits.h. This
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * constant choses what kind of memory references are guarenteed during
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * font access; either 1, 2 or 4, for byte, word or longword access,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * respectively. For instance, if you have decided to to have
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * GLYPHPADBYTES == 4, then it is pointless for you to have a
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * GETLEFTBITS_ALIGNMENT > 1, because the padding of the fonts has already
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * guarenteed you that your fonts are longword aligned. On the other
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * hand, even if you have chosen GLYPHPADBYTES == 1 to save space, you may
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * also decide that the computing involved in aligning the pointer is more
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * costly than an odd-address access; you choose GETLEFTBITS_ALIGNMENT == 1.
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync *
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * Next, choose the tuning parameters which are appropriate for your
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * hardware; these modify the behaviour of the raw frame buffer code
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * in ddx/mfb and ddx/cfb. Defining these incorrectly will not cause
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * the server to run incorrectly, but defining these correctly will
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * cause some noticeable speed improvements:
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync *
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * AVOID_MEMORY_READ - (8-bit cfb only)
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * When stippling pixels on the screen (polytext and pushpixels),
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * don't read long words from the display and mask in the
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * appropriate values. Rather, perform multiple byte/short/long
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * writes as appropriate. This option uses many more instructions
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * but runs much faster when the destination is much slower than
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * the CPU and at least 1 level of write buffer is availible (2
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * is much better). Defined currently for SPARC and MIPS.
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync *
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * FAST_CONSTANT_OFFSET_MODE - (cfb and mfb)
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * This define is used on machines which have no auto-increment
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * addressing mode, but do have an effectively free constant-offset
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * addressing mode. Currently defined for MIPS and SPARC, even though
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * I remember the cg6 as performing better without it (cg3 definitely
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * performs better with it).
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync *
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * LARGE_INSTRUCTION_CACHE -
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * This define increases the number of times some loops are
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * unrolled. On 68020 machines (with 256 bytes of i-cache),
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * this define will slow execution down as instructions miss
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * the cache frequently. On machines with real i-caches, this
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * reduces loop overhead, causing a slight performance improvement.
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * Currently defined for MIPS and SPARC
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync *
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * FAST_UNALIGNED_READS -
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * For machines with more memory bandwidth than CPU, this
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * define uses unaligned reads for 8-bit BitBLT instead of doing
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * aligned reads and combining the results with shifts and
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * logical-ors. Currently defined for 68020 and vax.
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * PLENTIFUL_REGISTERS -
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * For machines with > 20 registers. Currently used for
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * unrolling the text painting code a bit more. Currently
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * defined for MIPS.
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * SHARED_IDCACHE -
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * For non-Harvard RISC machines, those which share the same
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * CPU memory bus for instructions and data. This unrolls some
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * solid fill loops which are otherwise best left rolled up.
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * Currently defined for SPARC.
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#ifdef vax
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define IMAGE_BYTE_ORDER LSBFirst /* Values for the VAX only */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define BITMAP_BIT_ORDER LSBFirst
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define GLYPHPADBYTES 1
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define GETLEFTBITS_ALIGNMENT 4
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define FAST_UNALIGNED_READS
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#endif /* vax */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#ifdef __arm32__
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define IMAGE_BYTE_ORDER LSBFirst
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync# if defined(XF86MONOVGA) || defined(XF86VGA16) || defined(XF86MONO)
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync# define BITMAP_BIT_ORDER MSBFirst
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync# else
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync# define BITMAP_BIT_ORDER LSBFirst
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync# endif
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync# if defined(XF86MONOVGA) || defined(XF86VGA16)
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync# define BITMAP_SCANLINE_UNIT 8
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync# endif
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define GLYPHPADBYTES 4
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define GETLEFTBITS_ALIGNMENT 1
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define LARGE_INSTRUCTION_CACHE
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define AVOID_MEMORY_READ
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#endif /* __arm32__ */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#if defined (hpux) || defined __hppa__
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define IMAGE_BYTE_ORDER MSBFirst
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define BITMAP_BIT_ORDER MSBFirst
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define GLYPHPADBYTES 4 /* to make fb work */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define GETLEFTBITS_ALIGNMENT 1 /* PA forces longs to 4 */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync /* byte boundries */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define AVOID_MEMORY_READ
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define FAST_CONSTANT_OFFSET_MODE
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define LARGE_INSTRUCTION_CACHE
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define PLENTIFUL_REGISTERS
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#endif /* hpux || __hppa__ */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#if defined(__powerpc__) || defined(__ppc__)
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define IMAGE_BYTE_ORDER MSBFirst
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define BITMAP_BIT_ORDER MSBFirst
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define GLYPHPADBYTES 4
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define GETLEFTBITS_ALIGNMENT 1
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/* XXX Should this be for Lynx only? */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#ifdef Lynx
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define BITMAP_SCANLINE_UNIT 8
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#endif
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define LARGE_INSTRUCTION_CACHE
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define FAST_CONSTANT_OFFSET_MODE
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define PLENTIFUL_REGISTERS
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define AVOID_MEMORY_READ
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define FAST_MEMCPY
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#endif /* PowerPC */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#if defined(__sh__)
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#if defined(__BIG_ENDIAN__)
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync# define IMAGE_BYTE_ORDER MSBFirst
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync# define BITMAP_BIT_ORDER MSBFirst
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync# define GLYPHPADBYTES 4
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync# define GETLEFTBITS_ALIGNMENT 1
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#else
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync# define IMAGE_BYTE_ORDER LSBFirst
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync# define BITMAP_BIT_ORDER LSBFirst
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync# define GLYPHPADBYTES 4
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync# define GETLEFTBITS_ALIGNMENT 1
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#endif
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define AVOID_MEMORY_READ
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define FAST_CONSTANT_OFFSET_MODE
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define LARGE_INSTRUCTION_CACHE
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define PLENTIFUL_REGISTERS
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#endif /* SuperH */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#if (defined(sun) && (defined(__sparc) || defined(sparc))) || \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync (defined(__uxp__) && (defined(sparc) || defined(mc68000))) || \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync defined(__sparc__) || defined(__mc68000__)
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#if defined(__sparc) || defined(__sparc__)
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync# if !defined(sparc)
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync# define sparc 1
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync# endif
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#endif
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#if defined(sun386) || defined(sun5)
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync# define IMAGE_BYTE_ORDER LSBFirst /* Values for the SUN only */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync# define BITMAP_BIT_ORDER LSBFirst
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#else
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync# define IMAGE_BYTE_ORDER MSBFirst /* Values for the SUN only */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync# define BITMAP_BIT_ORDER MSBFirst
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#endif
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#ifdef sparc
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync# define AVOID_MEMORY_READ
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync# define LARGE_INSTRUCTION_CACHE
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync# define FAST_CONSTANT_OFFSET_MODE
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync# define SHARED_IDCACHE
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#endif
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#ifdef mc68020
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define FAST_UNALIGNED_READS
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#endif
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define GLYPHPADBYTES 4
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define GETLEFTBITS_ALIGNMENT 1
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#endif /* sun && !(i386 && SVR4) */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#if defined(AIXV3)
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define IMAGE_BYTE_ORDER MSBFirst /* Values for the RISC/6000 */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define BITMAP_BIT_ORDER MSBFirst
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define GLYPHPADBYTES 4
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define GETLEFTBITS_ALIGNMENT 1
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define LARGE_INSTRUCTION_CACHE
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define FAST_CONSTANT_OFFSET_MODE
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define PLENTIFUL_REGISTERS
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define AVOID_MEMORY_READ
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define FAST_MEMCPY
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#endif /* AIXV3 */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#if defined(ibm032) || defined (ibm)
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#ifdef i386
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync# define IMAGE_BYTE_ORDER LSBFirst /* Value for PS/2 only */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#else
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync# define IMAGE_BYTE_ORDER MSBFirst /* Values for the RT only*/
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#endif
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define BITMAP_BIT_ORDER MSBFirst
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define GLYPHPADBYTES 1
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define GETLEFTBITS_ALIGNMENT 4
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/* ibm pcc doesn't understand pragmas. */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#ifdef i386
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define BITMAP_SCANLINE_UNIT 8
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#endif
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#endif /* ibm */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#if defined (M4310) || defined(M4315) || defined(M4317) || defined(M4319) || defined(M4330)
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define IMAGE_BYTE_ORDER MSBFirst /* Values for Pegasus only */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define BITMAP_BIT_ORDER MSBFirst
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define GLYPHPADBYTES 4
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define GETLEFTBITS_ALIGNMENT 1
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define FAST_UNALIGNED_READS
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#endif /* tektronix */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#ifdef macII
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define IMAGE_BYTE_ORDER MSBFirst /* Values for the MacII only */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define BITMAP_BIT_ORDER MSBFirst
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define GLYPHPADBYTES 4
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define GETLEFTBITS_ALIGNMENT 1
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/* might want FAST_UNALIGNED_READS for frame buffers with < 1us latency */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#endif /* macII */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#if (defined(mips) || defined(__mips)) && !defined(sgi)
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#if defined(MIPSEL) || defined(__MIPSEL__)
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync# define IMAGE_BYTE_ORDER LSBFirst /* Values for the PMAX only */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync# define BITMAP_BIT_ORDER LSBFirst
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync# define GLYPHPADBYTES 4
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync# define GETLEFTBITS_ALIGNMENT 1
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#else
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync# define IMAGE_BYTE_ORDER MSBFirst /* Values for the MIPS only */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync# define BITMAP_BIT_ORDER MSBFirst
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync# define GLYPHPADBYTES 4
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync# define GETLEFTBITS_ALIGNMENT 1
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#endif
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define AVOID_MEMORY_READ
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define FAST_CONSTANT_OFFSET_MODE
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define LARGE_INSTRUCTION_CACHE
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define PLENTIFUL_REGISTERS
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#endif /* mips */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#if defined(__alpha) || defined(__alpha__) || defined(__alphaCross)
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync# define IMAGE_BYTE_ORDER LSBFirst /* Values for the Alpha only */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync# if defined(XF86MONOVGA) || defined(XF86VGA16) || defined(XF86MONO)
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync# define BITMAP_BIT_ORDER MSBFirst
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync# else
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync# define BITMAP_BIT_ORDER LSBFirst
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync# endif
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync# if defined(XF86MONOVGA) || defined(XF86VGA16)
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync# define BITMAP_SCANLINE_UNIT 8
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync# endif
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync# define GLYPHPADBYTES 4
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync# define GETLEFTBITS_ALIGNMENT 1
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync# define FAST_CONSTANT_OFFSET_MODE
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync# define LARGE_INSTRUCTION_CACHE
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync# define PLENTIFUL_REGISTERS
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#endif /* alpha */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#if defined (linux) && defined (__s390__)
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define IMAGE_BYTE_ORDER MSBFirst
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define BITMAP_BIT_ORDER MSBFirst
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define GLYPHPADBYTES 4
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define GETLEFTBITS_ALIGNMENT 1
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define BITMAP_SCANLINE_UNIT 8
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define LARGE_INSTRUCTION_CACHE
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define FAST_CONSTANT_OFFSET_MODE
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define FAST_UNALIGNED_READ
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define FAST_MEMCPY
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#endif /* linux/s390 */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#if defined (linux) && defined (__s390x__)
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define IMAGE_BYTE_ORDER MSBFirst
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define BITMAP_BIT_ORDER MSBFirst
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define GLYPHPADBYTES 4
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define GETLEFTBITS_ALIGNMENT 1
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define BITMAP_SCANLINE_UNIT 8
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define LARGE_INSTRUCTION_CACHE
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define FAST_CONSTANT_OFFSET_MODE
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define FAST_UNALIGNED_READ
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define FAST_MEMCPY
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#endif /* linux/s390x */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#if defined(__ia64__) || defined(ia64)
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync# define IMAGE_BYTE_ORDER LSBFirst
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync# if defined(XF86MONOVGA) || defined(XF86VGA16) || defined(XF86MONO)
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync# define BITMAP_BIT_ORDER MSBFirst
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync# else
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync# define BITMAP_BIT_ORDER LSBFirst
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync# endif
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync# if defined(XF86MONOVGA) || defined(XF86VGA16)
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync# define BITMAP_SCANLINE_UNIT 8
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync# endif
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync# define GLYPHPADBYTES 4
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync# define GETLEFTBITS_ALIGNMENT 1
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync# define FAST_CONSTANT_OFFSET_MODE
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync# define LARGE_INSTRUCTION_CACHE
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync# define PLENTIFUL_REGISTERS
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#endif /* ia64 */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#if defined(__amd64__) || defined(amd64) || defined(__amd64)
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync# define IMAGE_BYTE_ORDER LSBFirst
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync# if defined(XF86MONOVGA) || defined(XF86VGA16) || defined(XF86MONO)
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync# define BITMAP_BIT_ORDER MSBFirst
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync# else
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync# define BITMAP_BIT_ORDER LSBFirst
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync# endif
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync# if defined(XF86MONOVGA) || defined(XF86VGA16)
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync# define BITMAP_SCANLINE_UNIT 8
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync# endif
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync# define GLYPHPADBYTES 4
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync# define GETLEFTBITS_ALIGNMENT 1
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync# define LARGE_INSTRUCTION_CACHE
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync# define FAST_CONSTANT_OFFSET_MODE
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/* ???? */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync# define FAST_UNALIGNED_READS
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#endif /* AMD64 */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#ifdef stellar
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define IMAGE_BYTE_ORDER MSBFirst /* Values for the stellar only*/
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define BITMAP_BIT_ORDER MSBFirst
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define GLYPHPADBYTES 4
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define GETLEFTBITS_ALIGNMENT 4
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define IMAGE_BUFSIZE (64*1024)
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/*
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * Use SysV random number generator.
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define random rand
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#endif /* stellar */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#ifdef luna
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define IMAGE_BYTE_ORDER MSBFirst /* Values for the OMRON only*/
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define BITMAP_BIT_ORDER MSBFirst
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define GLYPHPADBYTES 4
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define GETLEFTBITS_ALIGNMENT 1
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#ifndef mc68000
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define FAST_CONSTANT_OFFSET_MODE
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define AVOID_MEMORY_READ
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define LARGE_INSTRUCTION_CACHE
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define PLENTIFUL_REGISTERS
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#endif
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#endif /* luna */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#if (defined(SVR4) && defined(i386)) || \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync defined(__alpha__) || defined(__alpha) || \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync defined(__i386__) || defined(__i386) || \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync defined(__UNIXOS2__) || \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync defined(__OS2ELF__) || \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync defined(__QNX__) || \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync defined(__s390x__) || defined(__s390__)
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#ifndef IMAGE_BYTE_ORDER
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define IMAGE_BYTE_ORDER LSBFirst
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#endif
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#ifndef BITMAP_BIT_ORDER
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync# if defined(XF86MONOVGA) || defined(XF86VGA16) || defined(XF86MONO)
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync# define BITMAP_BIT_ORDER MSBFirst
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync# else
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync# define BITMAP_BIT_ORDER LSBFirst
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync# endif
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#endif
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#ifndef BITMAP_SCANLINE_UNIT
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync# if defined(XF86MONOVGA) || defined(XF86VGA16)
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync# define BITMAP_SCANLINE_UNIT 8
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync# endif
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#endif
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#ifndef GLYPHPADBYTES
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define GLYPHPADBYTES 4
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#endif
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define GETLEFTBITS_ALIGNMENT 1
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define AVOID_MEMORY_READ
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#ifdef XSVGA
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define AVOID_GLYPHBLT
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define FAST_CONSTANT_OFFSET_MODE
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define FAST_MEMCPY
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define NO_ONE_RECT
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#endif
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#endif /* SVR4 / BSD / i386 */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#if defined (linux) && defined (__mc68000__)
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define IMAGE_BYTE_ORDER MSBFirst
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define BITMAP_BIT_ORDER MSBFirst
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define FAST_UNALIGNED_READS
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define GLYPHPADBYTES 4
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define GETLEFTBITS_ALIGNMENT 1
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#endif /* linux/m68k */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#ifdef sgi
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define IMAGE_BYTE_ORDER MSBFirst
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define BITMAP_BIT_ORDER MSBFirst
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define GLYPHPADBYTES 4
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define GETLEFTBITS_ALIGNMENT 1
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define AVOID_MEMORY_READ
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define FAST_CONSTANT_OFFSET_MODE
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define LARGE_INSTRUCTION_CACHE
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define PLENTIFUL_REGISTERS
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#endif
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/* linux on the Compaq Itsy */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#if defined(linux) && defined(__arm__)
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define IMAGE_BYTE_ORDER LSBFirst
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define BITMAP_BIT_ORDER LSBFirst
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define GLYPHPADBYTES 4
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define GETLEFTBITS_ALIGNMENT 1
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#endif
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/* size of buffer to use with GetImage, measured in bytes. There's obviously
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * a trade-off between the amount of stack (or whatever ALLOCATE_LOCAL gives
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * you) used and the number of times the ddx routine has to be called.
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#ifndef IMAGE_BUFSIZE
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define IMAGE_BUFSIZE (64*1024)
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#endif
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/* pad scanline to a longword */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#ifndef BITMAP_SCANLINE_UNIT
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define BITMAP_SCANLINE_UNIT 32
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#endif
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#ifndef BITMAP_SCANLINE_PAD
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define BITMAP_SCANLINE_PAD 32
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define LOG2_BITMAP_PAD 5
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define LOG2_BYTES_PER_SCANLINE_PAD 2
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#endif
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/*
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * This returns the number of padding units, for depth d and width w.
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * For bitmaps this can be calculated with the macros above.
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * Other depths require either grovelling over the formats field of the
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * screenInfo or hardwired constants.
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsynctypedef struct _PaddingInfo {
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int padRoundUp; /* pixels per pad unit - 1 */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int padPixelsLog2; /* log 2 (pixels per pad unit) */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int padBytesLog2; /* log 2 (bytes per pad unit) */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int notPower2; /* bitsPerPixel not a power of 2 */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int bytesPerPixel; /* only set when notPower2 is TRUE */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int bitsPerPixel; /* bits per pixel */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync} PaddingInfo;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern PaddingInfo PixmapWidthPaddingInfo[];
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/* The only portable way to get the bpp from the depth is to look it up */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define BitsPerPixel(d) (PixmapWidthPaddingInfo[d].bitsPerPixel)
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define PixmapWidthInPadUnits(w, d) \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync (PixmapWidthPaddingInfo[d].notPower2 ? \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync (((int)(w) * PixmapWidthPaddingInfo[d].bytesPerPixel + \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync PixmapWidthPaddingInfo[d].bytesPerPixel) >> \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync PixmapWidthPaddingInfo[d].padBytesLog2) : \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync ((int)((w) + PixmapWidthPaddingInfo[d].padRoundUp) >> \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync PixmapWidthPaddingInfo[d].padPixelsLog2))
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/*
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * Return the number of bytes to which a scanline of the given
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * depth and width will be padded.
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define PixmapBytePad(w, d) \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync (PixmapWidthInPadUnits(w, d) << PixmapWidthPaddingInfo[d].padBytesLog2)
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define BitmapBytePad(w) \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync (((int)((w) + BITMAP_SCANLINE_PAD - 1) >> LOG2_BITMAP_PAD) << LOG2_BYTES_PER_SCANLINE_PAD)
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define PixmapWidthInPadUnitsProto(w, d) PixmapWidthInPadUnits(w, d)
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define PixmapBytePadProto(w, d) PixmapBytePad(w, d)
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define BitmapBytePadProto(w) BitmapBytePad(w)
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#endif /* SERVERMD_H */