Main Page | Namespace List | Alphabetical List | Data Structures | Directories | File List | Data Fields | Globals | Related Pages

arch.h File Reference


Detailed Description

Global project definitions for name, version, copyright, license, global configuration, and architectural features.

Derive specific architectural definitions from configuration parameters set up in config.h and present them for normative use by the compiler. Also global constant strings for several purposes.

Define critical symbols as tested below. This is done by the config.sh script.

DO NOT FORGET to use the GCC options found in ../config/confopts.gcc on the GCC command line! This can be done as,

       $ gcc `cat ../config/config_opts_always.gcc` \
             `cat ../config/config_opts_usually.gcc` \
             -otheropts -c filename.c ...
  
       $ gcc `cat ../config/config_opts_always.gccld` \
             ... *.o -o targetbinary

   

Todo:
There needs to be a Java equivalent written for the macros ARCH_COPYRIGHT_TEXT_APACHE, ARCH_LICENSE_TEXT_APACHE, and ARCH_COPYRIGHT_APACHE()

Control

$URL: https://svn.apache.org/harmony/project/arch.h $ $Id: arch.h 0 09/28/2005 dlydick $

Copyright 2005 The Apache Software Foundation or its licensors, as applicable.

Licensed under the Apache License, Version 2.0 ("the License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

See the License for the specific language governing permissions and limitations under the License.

Version:
$LastChangedRevision: 0 $
Date:
$LastChangedDate: 09/28/2005 $
Author:
$LastChangedBy: dlydick $ Original code contributed by Daniel Lydick on 09/28/2005.

Reference

Definition in file arch.h.

#include "config.h"

Go to the source code of this file.

Defines

#define _ARCH_DEFINED_
#define _ARCH_DEFINED_
#define _VALID_ARCH_DEFINED_
#define ARCH_BIG_ENDIAN
 Defined only for big endian architectures, in opposition to ARCH_LITTLE_ENDIAN.
#define ARCH_COPYRIGHT_APACHE(filetoken, exttoken, svnidstring)
 Copyright declaration macro for the Apache Software Foundation for all files in program.
#define ARCH_COPYRIGHT_TEXT_APACHE   "Copyright 2005 The Apache Software Foundation or its licensors, as applicable."
 Copyright declaration string for the Apache Software Foundation for all files in program.
#define ARCH_LICENSE_TEXT_APACHE   "Licensed under the Apache License, Version 2.0 (\"the License\");\n\you may not use this file except in compliance with the License.\n\You may obtain a copy of the License at\n\\n\ http://www.apache.org/licenses/LICENSE-2.0\n\\n\Unless required by applicable law or agreed to in writing,\n\software distributed under the License is distributed on an\n\\"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,\n\either express or implied.\n\\n\See the License for the specific language governing permissions\n\and limitations under the License."
 License declaration string for the Apache Software Foundation for all files in program.
#define ARCH_ODD4_ADDRESS_SIGSEGV
 Check architectural hardware error oddities related to even/odd byte addressing.
#define ARCH_ODD_ADDRESS_SIGSEGV
 Define more general case of odd-address SIGSEGV.

Functions

static void arch_h_dummy (void)

Variables

static char * arch_h_copyright = "\0" "$URL: https://svn.apache.org/harmony/project/arch.h $ $Id: arch.h 0 09/28/2005 dlydick $" " " "Copyright 2005 The Apache Software Foundation or its licensors, as applicable."
 Static copyright string for this source file.


Define Documentation

#define ARCH_COPYRIGHT_TEXT_APACHE   "Copyright 2005 The Apache Software Foundation or its licensors, as applicable."
 

Copyright declaration string for the Apache Software Foundation for all files in program.

Definition at line 79 of file arch.h.

#define ARCH_LICENSE_TEXT_APACHE   "Licensed under the Apache License, Version 2.0 (\"the License\");\n\you may not use this file except in compliance with the License.\n\You may obtain a copy of the License at\n\\n\ http://www.apache.org/licenses/LICENSE-2.0\n\\n\Unless required by applicable law or agreed to in writing,\n\software distributed under the License is distributed on an\n\\"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,\n\either express or implied.\n\\n\See the License for the specific language governing permissions\n\and limitations under the License."
 

License declaration string for the Apache Software Foundation for all files in program.

Definition at line 91 of file arch.h.

#define ARCH_COPYRIGHT_APACHE filetoken,
exttoken,
svnidstring   ) 
 

Value:

static char *filetoken##_##exttoken##_copyright = "\0" svnidstring \
" " ARCH_COPYRIGHT_TEXT_APACHE;                                    \
                                                                   \
static void filetoken##_##exttoken##_dummy(void) {                 \
    char *p = filetoken##_##exttoken##_copyright;                  \
              filetoken##_##exttoken##_copyright = p;              \
              filetoken##_##exttoken##_dummy(); }
Copyright declaration macro for the Apache Software Foundation for all files in program.

This macro declares the copyright by the Apache Software Foundation for all source files.

Declare a static string containing SVN info plus copyright and declare a static function that references the string, plus a local that recursively calls the function. This function is used to satisfy the compiler that the static string is being referenced without also generating a similar message about the static function not being referenced.

Parameters:
filetoken Any string that, when concatenated with an underscore (_) and the exttoken parameter, forms a globally unique combination. This is typically the file name itself without the file extension name, unquoted.
exttoken Any string that, when the filetoken parameter and an underscore (_) are concatenated before it, forms a globally unique combination. This is typically the file extension name itself without the file name, unquoted.
svnidstring Source code management token representing as much information about the file as is desired to insert into the static copyright string for each source file and header file. For RCS and CVS systems, this would typically be the $Header: $ token, in double quotes. As currently managed in the Apache SVN repository, it contains the string "$URL: $ $Id: $"
Returns:
rvoid

For internal use only.

The svnidstring parameter contains highly mangled source code control keyword strings. They are mangled so as to hide them from version control substitution, yet display in the compiled documentation correctly.

The initial ASCII \0 (NUL) character is inserted to guarantee that the string itself will never be appended to some previous text-type data, thus not being the beginning of a string for search purposes in the output (binary) form of the file invoking the macro. Refer to getsvndata.sh for more information.

Definition at line 164 of file arch.h.

#define _ARCH_DEFINED_
 

For internal use only.

Demand that EXACTLY ONE hardware architecture be defined

Definition at line 269 of file arch.h.

#define _ARCH_DEFINED_
 

For internal use only.

Demand that EXACTLY ONE hardware architecture be defined

Definition at line 269 of file arch.h.

#define _VALID_ARCH_DEFINED_
 

For internal use only.

Make available, especially to jvmcfg.h

Definition at line 321 of file arch.h.

#define ARCH_ODD4_ADDRESS_SIGSEGV
 

Check architectural hardware error oddities related to even/odd byte addressing.

The behavioral oddities to be flagged for a specific architecture include:

  • ARCH_ODD2_ADDRESS_SIGSEGV ... When a 2-byte access causes SIGSEGV on a read or write operation.

  • ARCH_ODD4_ADDRESS_SIGSEGV ... When a 4-byte access causes SIGSEGV on a read or write operation. This will also mean that a 2-byte access will also cause SIGSEGV.

  • xyz ... Your favorite bug is defined here...

Definition at line 358 of file arch.h.

#define ARCH_BIG_ENDIAN
 

Defined only for big endian architectures, in opposition to ARCH_LITTLE_ENDIAN.

Used by swapping functions in bytegames.c and derived macros in cfmacros.h.

Definition at line 405 of file arch.h.

#define ARCH_ODD_ADDRESS_SIGSEGV
 

Define more general case of odd-address SIGSEGV.

If either ARCH_ODD4_ADDRESS_SIGSEGV or ARCH_ODD2_ADDRESS_SIGSEGV are defined, then this symbol is also defined as a union of the definitions.

Definition at line 416 of file arch.h.


Function Documentation

static void arch_h_dummy void   )  [static]
 

Definition at line 177 of file arch.h.


Variable Documentation

char* arch_h_copyright = "\0" "$URL: https://svn.apache.org/harmony/project/arch.h $ $Id: arch.h 0 09/28/2005 dlydick $" " " "Copyright 2005 The Apache Software Foundation or its licensors, as applicable." [static]
 

Static copyright string for this source file.

Definition at line 177 of file arch.h.


Generated on Fri Sep 30 18:49:26 2005 by  doxygen 1.4.4