1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133
|
/* HERCULES.H (c) Copyright Roger Bowler, 1999-2007 */
/* Hercules Header Files */
/* Interpretive Execution - (c) Copyright Jan Jaeger, 1999-2007 */
/* z/Architecture support - (c) Copyright Jan Jaeger, 1999-2007 */
// $Id: hercules.h,v 1.300 2007/06/23 00:04:10 ivan Exp $
//
// $Log: hercules.h,v $
// Revision 1.300 2007/06/23 00:04:10 ivan
// Update copyright notices to include current year (2007)
//
// Revision 1.299 2006/12/08 09:43:25 jj
// Add CVS message log
//
#ifdef HAVE_CONFIG_H
#include <config.h> // Hercules build configuration options/settings
#endif
/*-------------------------------------------------------------------*/
/* Performance attribute: use registers to pass function parameters */
/* (must be #defined BEFORE "feature,h" since it uses it) */
/*-------------------------------------------------------------------*/
#if defined(HAVE_ATTR_REGPARM)
#ifdef _MSVC_
#define ATTR_REGPARM(n) __fastcall
#else /* GCC presumed */
#define ATTR_REGPARM(n) __attribute__ (( regparm(n) ))
#endif
#else
#define ATTR_REGPARM(n) /* nothing */
#endif
// -------------------------------------------------------------------
//
// PROGRAMMING NOTE
//
// The "feature.h" header MUST be #included AFTER <config.h> *AND*
// BEFORE the _HERCULES_H pre-processor variable gets #defined. This
// is to enure that it is ALWAYS #included regardless of whether the
// "hercules.h" header has already been #included or not. This is so
// the various architecture dependent source modules compile properly
// since they #include themselves several times so as to cause them
// to be compiled multiple times, each time with a new architecture
// mode #defined (e.g. 370/390/900). See the very end of the source
// member "general2.c" for a typical example of this very technique.
//
// -------------------------------------------------------------------
//
//
// Include standard system headers (if not already done)
//
#include "feature.h" // Hercules [manually maintained] features;
// auto-includes featall.h and hostopts.h
// ALWAYS include cpuint.h after feature.h
// and also assure it is re-included for
// each archs.
#include "cpuint.h"
#ifndef _HERCULES_H // MUST come AFTER "feature.h" is #included
#define _HERCULES_H // MUST come AFTER "feature.h" is #included
#include "hstdinc.h" // Precompilation-eligible header files
#ifdef _MSVC_
#include "getopt.h"
#else
#if defined(HAVE_GETOPT_LONG) && !defined(__GETOPT_H__)
#include <getopt.h>
#endif
#endif
#ifdef OPTION_DYNAMIC_LOAD
#ifdef HDL_USE_LIBTOOL
#include <ltdl.h>
#else
#if defined(__MINGW__) || defined(_MSVC_)
#include "w32dl.h"
#else
#include <dlfcn.h>
#endif
#endif
#endif
///////////////////////////////////////////////////////////////////////
// Private Hercules-specific headers.....
///////////////////////////////////////////////////////////////////////
#include "linklist.h" // (Hercules-wide linked-list macros)
#include "hconsts.h" // (Hercules-wide #define constants)
#include "hthreads.h" // (Hercules-wide threading macros)
#include "hmacros.h" // (Hercules-wide #define macros)
#if !defined(HAVE_BYTESWAP_H) || defined(NO_ASM_BYTESWAP)
#include "hbyteswp.h" // (Hercules equivalent of <byteswap.h>)
#endif
#if !defined(HAVE_MEMRCHR)
#include "memrchr.h"
#endif
#include "hostinfo.h"
#include "version.h"
#include "esa390.h" // (ESA/390 structure definitions)
#include "clock.h" // (TOD definitions)
#include "hscutl.h" // (utility functions)
#include "w32util.h" // (win32 porting functions)
#include "codepage.h"
#include "logger.h" // (logmsg, etc)
#include "hdl.h" // (Hercules Dynamic Loader)
#include "cache.h"
#include "devtype.h"
#include "dasdtab.h"
#include "shared.h"
#include "hetlib.h"
#include "sockdev.h"
#include "w32ctca.h"
#include "hsocket.h"
#include "hstructs.h" // (Hercules-wide structures)
#include "hexterns.h" // (Hercules-wide extern function prototypes)
#endif // _HERCULES_H
|