Re: Xmd.h in c99 form

Jim Gettys <[email protected]> Sun, 15 Feb 2004 17:10:48 -0500
Newsgroups gmane.comp.freedesktop.xlibs.general
Organization HP Labs, Cambridge Research Laboratory
Message-ID <[email protected]>
Yeah, the history is that the system definitions didn't exist
in the 1980's for 16/32 bit things.  So we had to roll our
own.

The question is whether there are still systems who build
X who don't have the stdint.h file or not, and/or whether by
providing such a file, we could then do this clean up.

Anyone have an opinion?
                        - Jim

On Sun, 2004-02-15 at 00:08, Warren Turkal wrote:
> Here is a little something I have been messing with. It is Xmd.h in c99
> form.
> 
> /***********************************************************
> 
> Copyright 1987, 1998  The Open Group
> 
> Permission to use, copy, modify, distribute, and sell this software and its
> documentation for any purpose is hereby granted without fee, provided that
> the above copyright notice appear in all copies and that both that
> copyright notice and this permission notice appear in supporting
> documentation.
> 
> The above copyright notice and this permission notice shall be included in
> all copies or substantial portions of the Software.
> 
> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
> OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
> AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
> CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
> 
> Except as contained in this notice, the name of The Open Group shall not be
> used in advertising or otherwise to promote the sale, use or other dealings
> in this Software without prior written authorization from The Open Group.
> 
> 
> Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
> 
>                         All Rights Reserved
> 
> Permission to use, copy, modify, and distribute this software and its 
> documentation for any purpose and without fee is hereby granted, 
> provided that the above copyright notice appear in all copies and that
> both that copyright notice and this permission notice appear in 
> supporting documentation, and that the name of Digital not be
> used in advertising or publicity pertaining to distribution of the
> software without specific, written prior permission.  
> 
> DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
> ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
> DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
> ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
> WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
> ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
> SOFTWARE.
> 
> ******************************************************************/
> /** @file Xmd
>  *  This header provides machine dependent declarations.
>  */
> 
> #ifndef XMD_H
> #define XMD_H
> 
> #include <stdint.h>
> 
> typedef int8_t INT8;
> typedef uint8_t CARD8;
> 
> typedef int16_t INT16;
> typedef uint16_t CARD16;
> 
> typedef int32_t INT32;
> typedef uint32_t CARD32;
> 
> typedef int64_t INT64;
> typedef uint64_t CARD64;
> 
> typedef CARD32 BITS32;
> typedef CARD16 BITS16;
> 
> #define B32
> #define B16
> 
> typedef CARD8 BYTE;
> typedef CARD8 BOOL;
> 
> /*
>  * The extra indirection is to get macro arguments to
>  * expand correctly before the concatenation, rather than afterward.
>  */ 
> #define _SIZEOF(x) sz_##x
> #define SIZEOF(x) _SIZEOF(x)
> 
> 
> #if 0
> /*
>  * definitions for sign-extending bitfields on 64-bit architectures
>  */
> #define cvtINT8toInt(val) (val)
> #define cvtINT16toInt(val) (val)
> #define cvtINT32toInt(val) (val)
> #define cvtINT8toShort(val) (val)
> #define cvtINT16toShort(val) (val)
> #define cvtINT32toShort(val) (val)
> #define cvtINT8toLong(val) (val)
> #define cvtINT16toLong(val) (val)
> #define cvtINT32toLong(val) (val)
> #endif
> 
> 
> #endif // XMD_H
-- 
Jim Gettys <[email protected]>
HP Labs, Cambridge Research Laboratory