xserver

xserver with xephyr scale patch
git clone https://git.neptards.moe/u3shit/xserver.git
Log | Files | Refs | README | LICENSE

xf86_OSlib.h (11763B)


      1 /*
      2  * Copyright 1990, 1991 by Thomas Roell, Dinkelscherben, Germany
      3  * Copyright 1992 by David Dawes <dawes@XFree86.org>
      4  * Copyright 1992 by Jim Tsillas <jtsilla@damon.ccs.northeastern.edu>
      5  * Copyright 1992 by Rich Murphey <Rich@Rice.edu>
      6  * Copyright 1992 by Robert Baron <Robert.Baron@ernst.mach.cs.cmu.edu>
      7  * Copyright 1992 by Orest Zborowski <obz@eskimo.com>
      8  * Copyright 1993 by Vrije Universiteit, The Netherlands
      9  * Copyright 1993 by David Wexelblat <dwex@XFree86.org>
     10  * Copyright 1994, 1996 by Holger Veit <Holger.Veit@gmd.de>
     11  * Copyright 1997 by Takis Psarogiannakopoulos <takis@dpmms.cam.ac.uk>
     12  * Copyright 1994-2003 by The XFree86 Project, Inc
     13  *
     14  * Permission to use, copy, modify, distribute, and sell this software and its
     15  * documentation for any purpose is hereby granted without fee, provided that
     16  * the above copyright notice appear in all copies and that both that
     17  * copyright notice and this permission notice appear in supporting
     18  * documentation, and that the names of the above listed copyright holders
     19  * not be used in advertising or publicity pertaining to distribution of
     20  * the software without specific, written prior permission.  The above listed
     21  * copyright holders make no representations about the suitability of this
     22  * software for any purpose.  It is provided "as is" without express or
     23  * implied warranty.
     24  *
     25  * THE ABOVE LISTED COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD
     26  * TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
     27  * AND FITNESS, IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDERS BE
     28  * LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY
     29  * DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER
     30  * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
     31  * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
     32  *
     33  */
     34 
     35 /*
     36  * The ARM32 code here carries the following copyright:
     37  *
     38  * Copyright 1997
     39  * Digital Equipment Corporation. All rights reserved.
     40  * This software is furnished under license and may be used and copied only in
     41  * accordance with the following terms and conditions.  Subject to these
     42  * conditions, you may download, copy, install, use, modify and distribute
     43  * this software in source and/or binary form. No title or ownership is
     44  * transferred hereby.
     45  *
     46  * 1) Any source code used, modified or distributed must reproduce and retain
     47  *    this copyright notice and list of conditions as they appear in the
     48  *    source file.
     49  *
     50  * 2) No right is granted to use any trade name, trademark, or logo of Digital
     51  *    Equipment Corporation. Neither the "Digital Equipment Corporation"
     52  *    name nor any trademark or logo of Digital Equipment Corporation may be
     53  *    used to endorse or promote products derived from this software without
     54  *    the prior written permission of Digital Equipment Corporation.
     55  *
     56  * 3) This software is provided "AS-IS" and any express or implied warranties,
     57  *    including but not limited to, any implied warranties of merchantability,
     58  *    fitness for a particular purpose, or non-infringement are disclaimed.
     59  *    In no event shall DIGITAL be liable for any damages whatsoever, and in
     60  *    particular, DIGITAL shall not be liable for special, indirect,
     61  *    consequential, or incidental damages or damages for lost profits, loss
     62  *    of revenue or loss of use, whether such damages arise in contract,
     63  *    negligence, tort, under statute, in equity, at law or otherwise, even
     64  *    if advised of the possibility of such damage.
     65  *
     66  */
     67 
     68 /*
     69  * This is private, and should not be included by any drivers.  Drivers
     70  * may include xf86_OSproc.h to get prototypes for public interfaces.
     71  */
     72 
     73 #ifndef _XF86_OSLIB_H
     74 #define _XF86_OSLIB_H
     75 
     76 #include <X11/Xos.h>
     77 #include <X11/Xfuncproto.h>
     78 
     79 #include <stdio.h>
     80 #include <ctype.h>
     81 #include <stddef.h>
     82 
     83 /**************************************************************************/
     84 /* SYSV386 (SVR3, SVR4), including Solaris                                */
     85 /**************************************************************************/
     86 #if (defined(SYSV) || defined(SVR4)) && \
     87     (defined(__sun) || defined(__i386__))
     88 #include <sys/ioctl.h>
     89 #include <signal.h>
     90 #include <termio.h>
     91 #include <sys/stat.h>
     92 #include <sys/types.h>
     93 
     94 #include <errno.h>
     95 
     96 #if defined(_NEED_SYSI86)
     97 #if !(defined (__sun) && defined (SVR4))
     98 #include <sys/immu.h>
     99 #include <sys/region.h>
    100 #include <sys/proc.h>
    101 #endif
    102 #include <sys/tss.h>
    103 #include <sys/sysi86.h>
    104 #if defined(SVR4) && !defined(__sun)
    105 #include <sys/seg.h>
    106 #endif                          /* SVR4 && !__sun */
    107 /* V86SC_IOPL was moved to <sys/sysi86.h> on Solaris 7 and later */
    108 #if !defined(V86SC_IOPL)        /* Solaris 7 or later? */
    109 #include <sys/v86.h>            /* Nope */
    110 #endif
    111 #if defined(__sun) && (defined (__i386__) || defined(__i386) || defined(__x86))  && defined (SVR4)
    112 #include <sys/psw.h>
    113 #endif
    114 #endif                          /* _NEED_SYSI86 */
    115 
    116 #if defined(HAS_SVR3_MMAPDRV)
    117 #include <sys/sysmacros.h>
    118 #if !defined(_NEED_SYSI86)
    119 #include <sys/immu.h>
    120 #include <sys/region.h>
    121 #endif
    122 #include <sys/mmap.h>           /* MMAP driver header */
    123 #endif
    124 
    125 #if !defined(__sun) || defined(HAVE_SYS_VT_H)
    126 #define HAS_USL_VTS
    127 #endif
    128 #if !defined(__sun)
    129 #include <sys/emap.h>
    130 #endif
    131 #if   defined(HAS_USL_VTS)
    132 #if !defined(__sun)
    133 #include <sys/at_ansi.h>
    134 #endif
    135 #include <sys/kd.h>
    136 #include <sys/vt.h>
    137 
    138 extern _X_HIDDEN void xf86VTAcquire(int);
    139 extern _X_HIDDEN void xf86VTRelease(int);
    140 #endif
    141 
    142 #if defined(__sun)
    143 #include <sys/fbio.h>
    144 extern _X_HIDDEN char xf86SolarisFbDev[PATH_MAX];
    145 
    146 #include <sys/kbd.h>
    147 #include <sys/kbio.h>
    148 
    149 /* undefine symbols from <sys/kbd.h> we don't need that conflict with enum
    150    definitions in parser/xf86tokens.h */
    151 #undef STRING
    152 #undef LEFTALT
    153 #undef RIGHTALT
    154 
    155 #define LED_CAP LED_CAPS_LOCK
    156 #define LED_NUM LED_NUM_LOCK
    157 #define LED_SCR LED_SCROLL_LOCK
    158 #define LED_COMP LED_COMPOSE
    159 #endif                          /* __sun */
    160 
    161 #if !defined(VT_ACKACQ)
    162 #define VT_ACKACQ 2
    163 #endif                          /* !VT_ACKACQ */
    164 
    165 #if defined(SVR4)
    166 #include <sys/mman.h>
    167 #if !(defined(__sun) && defined (SVR4))
    168 #define DEV_MEM "/dev/pmem"
    169 #endif
    170 #define CLEARDTR_SUPPORT
    171 #define POSIX_TTY
    172 #endif                          /* SVR4 */
    173 
    174 #endif                          /* (SYSV || SVR4) */
    175 
    176 /**************************************************************************/
    177 /* Linux or Glibc-based system                                            */
    178 /**************************************************************************/
    179 #if defined(__linux__) || defined(__GLIBC__) || defined(__CYGWIN__)
    180 #include <sys/ioctl.h>
    181 #include <signal.h>
    182 #include <stdlib.h>
    183 #include <sys/types.h>
    184 #include <assert.h>
    185 
    186 #include <termios.h>
    187 #ifdef __sparc__
    188 #include <sys/param.h>
    189 #endif
    190 
    191 #include <errno.h>
    192 
    193 #include <sys/stat.h>
    194 
    195 #include <sys/mman.h>
    196 #ifdef __linux__
    197 #define HAS_USL_VTS
    198 #include <sys/kd.h>
    199 #include <sys/vt.h>
    200 #define LDGMAP GIO_SCRNMAP
    201 #define LDSMAP PIO_SCRNMAP
    202 #define LDNMAP LDSMAP
    203 #define CLEARDTR_SUPPORT
    204 #endif
    205 
    206 #define POSIX_TTY
    207 
    208 #endif                          /* __linux__ || __GLIBC__ */
    209 
    210 /**************************************************************************/
    211 /* System is BSD-like                                                     */
    212 /**************************************************************************/
    213 
    214 #ifdef CSRG_BASED
    215 #include <sys/ioctl.h>
    216 #include <signal.h>
    217 
    218 #include <termios.h>
    219 #define termio termios
    220 #define POSIX_TTY
    221 
    222 #include <errno.h>
    223 
    224 #include <sys/types.h>
    225 #include <sys/mman.h>
    226 #include <sys/stat.h>
    227 
    228 #endif                          /* CSRG_BASED */
    229 
    230 /**************************************************************************/
    231 /* Kernel of *BSD                                                         */
    232 /**************************************************************************/
    233 #if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || \
    234  defined(__NetBSD__) || defined(__OpenBSD__) || defined(__DragonFly__)
    235 
    236 #include <sys/param.h>
    237 #if defined(__FreeBSD_version) && !defined(__FreeBSD_kernel_version)
    238 #define __FreeBSD_kernel_version __FreeBSD_version
    239 #endif
    240 
    241 #ifdef SYSCONS_SUPPORT
    242 #define COMPAT_SYSCONS
    243 #if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__DragonFly__)
    244 #if defined(__DragonFly__)  || (__FreeBSD_kernel_version >= 410000)
    245 #include <sys/consio.h>
    246 #include <sys/kbio.h>
    247 #else
    248 #include <machine/console.h>
    249 #endif                          /* FreeBSD 4.1 RELEASE or lator */
    250 #else
    251 #include <sys/console.h>
    252 #endif
    253 #endif                          /* SYSCONS_SUPPORT */
    254 #if defined(PCVT_SUPPORT) && !defined(__NetBSD__) && !defined(__OpenBSD__)
    255 #if !defined(SYSCONS_SUPPORT)
    256       /* no syscons, so include pcvt specific header file */
    257 #if defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
    258 #include <machine/pcvt_ioctl.h>
    259 #else
    260 #include <sys/pcvt_ioctl.h>
    261 #endif                          /* __FreeBSD_kernel__ */
    262 #else                           /* pcvt and syscons: hard-code the ID magic */
    263 #define VGAPCVTID _IOWR('V',113, struct pcvtid)
    264 struct pcvtid {
    265     char name[16];
    266     int rmajor, rminor;
    267 };
    268 #endif                          /* PCVT_SUPPORT && SYSCONS_SUPPORT */
    269 #endif                          /* PCVT_SUPPORT */
    270 #ifdef WSCONS_SUPPORT
    271 #include <dev/wscons/wsconsio.h>
    272 #include <dev/wscons/wsdisplay_usl_io.h>
    273 #endif                          /* WSCONS_SUPPORT */
    274 #if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__DragonFly__)
    275 #include <sys/mouse.h>
    276 #endif
    277     /* Include these definitions in case ioctl_pc.h didn't get included */
    278 #ifndef CONSOLE_X_MODE_ON
    279 #define CONSOLE_X_MODE_ON _IO('t',121)
    280 #endif
    281 #ifndef CONSOLE_X_MODE_OFF
    282 #define CONSOLE_X_MODE_OFF _IO('t',122)
    283 #endif
    284 #ifndef CONSOLE_X_BELL
    285 #define CONSOLE_X_BELL _IOW('t',123,int[2])
    286 #endif
    287 #ifndef CONSOLE_X_TV_ON
    288 #define CONSOLE_X_TV_ON _IOW('t',155,int)
    289 #define XMODE_RGB   0
    290 #define XMODE_NTSC  1
    291 #define XMODE_PAL   2
    292 #define XMODE_SECAM 3
    293 #endif
    294 #ifndef CONSOLE_X_TV_OFF
    295 #define CONSOLE_X_TV_OFF _IO('t',156)
    296 #endif
    297 #ifndef CONSOLE_GET_LINEAR_INFO
    298 #define CONSOLE_GET_LINEAR_INFO         _IOR('t',157,struct map_info)
    299 #endif
    300 #ifndef CONSOLE_GET_IO_INFO
    301 #define CONSOLE_GET_IO_INFO             _IOR('t',158,struct map_info)
    302 #endif
    303 #ifndef CONSOLE_GET_MEM_INFO
    304 #define CONSOLE_GET_MEM_INFO            _IOR('t',159,struct map_info)
    305 #endif
    306 
    307 #if defined(USE_I386_IOPL) || defined(USE_AMD64_IOPL)
    308 #include <machine/sysarch.h>
    309 #endif
    310 
    311 #define CLEARDTR_SUPPORT
    312 
    313 #endif                          /* __FreeBSD__ || __NetBSD__ || __OpenBSD__ || __DragonFly__ */
    314 
    315 /**************************************************************************/
    316 /* IRIX                                                                   */
    317 /**************************************************************************/
    318 
    319 /**************************************************************************/
    320 /* Generic                                                                */
    321 /**************************************************************************/
    322 
    323 #include <sys/wait.h>           /* May need to adjust this for other OSs */
    324 
    325 /* For PATH_MAX */
    326 #include "misc.h"
    327 
    328 /*
    329  * Hack originally for ISC 2.2 POSIX headers, but may apply elsewhere,
    330  * and it's safe, so just do it.
    331  */
    332 #if !defined(O_NDELAY) && defined(O_NONBLOCK)
    333 #define O_NDELAY O_NONBLOCK
    334 #endif                          /* !O_NDELAY && O_NONBLOCK */
    335 
    336 #if !defined(MAXHOSTNAMELEN)
    337 #define MAXHOSTNAMELEN 32
    338 #endif                          /* !MAXHOSTNAMELEN */
    339 
    340 #include <limits.h>
    341 
    342 #ifndef DEV_MEM
    343 #define DEV_MEM "/dev/mem"
    344 #endif
    345 
    346 #ifndef MAP_FAILED
    347 #define MAP_FAILED ((void *)-1)
    348 #endif
    349 
    350 #define SYSCALL(call) while(((call) == -1) && (errno == EINTR))
    351 
    352 #define XF86_OS_PRIVS
    353 #include "xf86_OSproc.h"
    354 
    355 #endif                          /* _XF86_OSLIB_H */