VirtualBox

source: vbox/trunk/src/VBox/Additions/x11/x11include/XFree86-4.3/Xserver/micoord.h

Last change on this file was 69098, checked in by vboxsync, 7 years ago

Clean up XFree86 driver header files.
bugref:3810: X11 Guest Additions maintenance
Over the years we have cleaned up the layout in the tree of the X.Org
header files we use to build drivers. The XFree86 ones were still in their
original, rather sub-optimal layout. This change fixes that.

  • Property svn:eol-style set to native
File size: 2.8 KB
Line 
1/* $XFree86: xc/programs/Xserver/mi/micoord.h,v 1.5 2002/05/22 21:38:31 herrb Exp $ */
2/*
3 * Copyright (C) 2000 The XFree86 Project, Inc. All Rights Reserved.
4 *
5 * Permission is hereby granted, free of charge, to any person obtaining a copy
6 * of this software and associated documentation files (the "Software"), to
7 * deal in the Software without restriction, including without limitation the
8 * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
9 * sell copies of the Software, and to permit persons to whom the Software is
10 * furnished to do so, subject to the following conditions:
11 *
12 * The above copyright notice and this permission notice shall be included in
13 * all copies or substantial portions of the Software.
14 *
15 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 * XFREE86 PROJECT BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
19 * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
20 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21 *
22 * Except as contained in this notice, the name of the XFree86 Project shall
23 * not be used in advertising or otherwise to promote the sale, use or other
24 * dealings in this Software without prior written authorization from the
25 * XFree86 Project.
26 *
27 */
28
29#ifndef _MICOORD_H_
30#define _MICOORD_H_ 1
31
32#include "servermd.h"
33
34/* Macros which handle a coordinate in a single register */
35
36/*
37 * Most compilers will convert divisions by 65536 into shifts, if signed
38 * shifts exist. If your machine does arithmetic shifts and your compiler
39 * can't get it right, add to this line.
40 */
41
42/*
43 * mips compiler - what a joke - it CSEs the 65536 constant into a reg
44 * forcing as to use div instead of shift. Let's be explicit.
45 */
46
47#if defined(mips) || \
48 defined(sparc) || defined(__sparc64__) || \
49 defined(__alpha) || defined(__alpha__) || \
50 defined(__i386__) || defined(i386) || \
51 defined(__ia64__) || defined(ia64) || \
52 defined(__s390x__) || defined(__s390__) || \
53 defined(__x86_64__) || defined(x86_64)
54#define GetHighWord(x) (((int) (x)) >> 16)
55#else
56#define GetHighWord(x) (((int) (x)) / 65536)
57#endif
58
59#if IMAGE_BYTE_ORDER == MSBFirst
60#define intToCoord(i,x,y) (((x) = GetHighWord(i)), ((y) = (int) ((short) (i))))
61#define coordToInt(x,y) (((x) << 16) | ((y) & 0xffff))
62#define intToX(i) (GetHighWord(i))
63#define intToY(i) ((int) ((short) i))
64#else
65#define intToCoord(i,x,y) (((x) = (int) ((short) (i))), ((y) = GetHighWord(i)))
66#define coordToInt(x,y) (((y) << 16) | ((x) & 0xffff))
67#define intToX(i) ((int) ((short) (i)))
68#define intToY(i) (GetHighWord(i))
69#endif
70
71#endif /* _MICOORD_H_ */
Note: See TracBrowser for help on using the repository browser.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette