]> git.sur5r.net Git - openldap/blob - include/ac/bytes.h
Misc DESC updates
[openldap] / include / ac / bytes.h
1 /* Generic bytes.h */
2 /* $OpenLDAP$ */
3 /*
4  * Copyright 1998-2001 The OpenLDAP Foundation, Redwood City, California, USA
5  * All rights reserved.
6  *
7  * Redistribution and use in source and binary forms, with or without
8  * modification, are permitted only as authorized by the OpenLDAP
9  * Public License.  A copy of this license is available at
10  * http://www.OpenLDAP.org/license.html or in file LICENSE in the
11  * top-level directory of the distribution.
12  */
13
14 #ifndef _AC_BYTES_H
15 #define _AC_BYTES_H
16
17 /* cross compilers should define both AC_INT{2,4}_TYPE in CPPFLAGS */
18
19 #if !defined( AC_INT4_TYPE ) 
20         /* use autoconf defines to provide sized typedefs */
21 #       if SIZEOF_LONG == 4
22 #               define AC_INT4_TYPE long
23 #       elif SIZEOF_INT == 4
24 #               define AC_INT4_TYPE int
25 #       elif SIZEOF_SHORT == 4
26 #               define AC_INT4_TYPE short
27 #       else
28 /* used by SHA-1, but commented out */
29 /* #    error "AC_INT2_TYPE?" */
30 #       endif
31 #endif
32
33 typedef AC_INT4_TYPE ac_int4;
34 typedef signed AC_INT4_TYPE ac_sint4;
35 typedef unsigned AC_INT4_TYPE ac_uint4;
36
37 #if !defined( AC_INT2_TYPE ) 
38 #       if SIZEOF_SHORT == 2
39 #               define AC_INT2_TYPE short
40 #       elif SIZEOF_INT == 2
41 #               define AC_INT2_TYPE int
42 #       elif SIZEOF_LONG == 2
43 #               define AC_INT2_TYPE long
44 #       else
45 /* not used, no error */
46 /* #    error "AC_INT2_TYPE?" */
47 #       endif
48 #endif
49     
50 #if defined( AC_INT2_TYPE ) 
51 typedef AC_INT2_TYPE ac_int2;
52 typedef signed AC_INT2_TYPE ac_sint2;
53 typedef unsigned AC_INT2_TYPE ac_uint2;
54 #endif
55
56 #ifndef BYTE_ORDER
57 /* cross compilers should define BYTE_ORDER in CPPFLAGS */
58
59 /*
60  * Definitions for byte order, according to byte significance from low
61  * address to high.
62  */
63 #define LITTLE_ENDIAN   1234    /* LSB first: i386, vax */
64 #define BIG_ENDIAN  4321        /* MSB first: 68000, ibm, net */
65 #define PDP_ENDIAN  3412        /* LSB first in word, MSW first in long */
66
67 /* assume autoconf's AC_C_BIGENDIAN has been ran */
68 /* if it hasn't, we assume (maybe falsely) the order is LITTLE ENDIAN */
69 #       ifdef WORDS_BIGENDIAN
70 #               define BYTE_ORDER  BIG_ENDIAN
71 #       else
72 #               define BYTE_ORDER  LITTLE_ENDIAN
73 #       endif
74
75 #endif /* BYTE_ORDER */
76
77 #endif /* _AC_BYTES_H */