Skip to content
Snippets Groups Projects
crypto_types.h 1.5 KiB
Newer Older
  • Learn to ignore specific revisions
  • Niels Möller's avatar
    Niels Möller committed
    /* $Id$
     *
    
     * Defines the types UINT32, UINT16 and UINT8 */
    
    Niels Möller's avatar
    Niels Möller committed
    
    #ifndef CRYPTO_TYPES_H_INCLUDED
    #define CRYPTO_TYPES_H_INCLUDED
    
    #ifdef PIKE
    
    # include "pike_types.h"
    # include "global.h"
    # define UINT32 unsigned INT32
    # define UINT16 unsigned INT16
    # define UINT8 unsigned INT8
    
    /* FIXME: Reorganize the header files for definitions. This stuff
     * should probably live in lsh_types.h, and object definitions should
     * move into a separate header file.
     *
     * FIXME: some of the crypto implementations could well use the
     * READ_UINT32 and WRITE_UINT32 macros. */
    
    
    # ifdef LSH
    #  ifdef HAVE_CONFIG_H
    #   include "config.h"
    #  endif
    #  if SIZEOF_SHORT >= 4
    #   define UINT32 unsigned short
    #  elif SIZEOF_INT >= 4
    #   define UINT32 unsigned int
    #  elif SIZEOF_LONG >= 4
    #   define UINT32 unsigned long
    #  else
    
    #   error No suitable type found to use for UINT32
    
    #  endif /* UINT32 */
    
    #  if SIZEOF_SHORT >= 2
    #   define UINT16 unsigned short
    #  elif SIZEOF_INT >= 2
    #   define UINT16 unsigned int
    #  else
    
    #   error No suitable type found to use for UINT16
    
    #  endif  /* UINT16 */
    
    #  define UINT8 unsigned char
    
    # else /* !LSH */
    #  define UINT32 unsigned long
    #  define UINT16 unsigned short
    #  define UINT8 unsigned char
    # endif /* !PIKE */
    
    Niels Möller's avatar
    Niels Möller committed
    #endif
    
    
    #ifdef __GNUC__
    #define NORETURN __attribute__ ((noreturn))
    #define PRINTF_STYLE(f, a) __attribute__ ((format(printf, f, a)))
    #define UNUSED __attribute__ ((unused))
    #else
    #define NORETURN
    #define PRINTF_STYLE(f, a)
    #define UNUSED
    #endif
    
    
    Niels Möller's avatar
    Niels Möller committed
    #endif /* CRYPTO_TYPES_H_INCLUDED */