diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 1996-04-22 16:44:54 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 1996-04-22 16:44:54 +0000 |
commit | cc4c1fe424f4668a4b0e328d06352bda19b267fe (patch) | |
tree | 937be8bfcddbbe391c6dba3083679520afb70bcc /c/src/exec/score/cpu/unix/cpu.h | |
parent | added stack allocation fields to the cpu table (diff) | |
download | rtems-cc4c1fe424f4668a4b0e328d06352bda19b267fe.tar.bz2 |
added stack allocation fields to the cpu table
updates from Tony Bennett. Most were to insure all variables were properly
initialized and to correct the stray signal number reporting.
Diffstat (limited to 'c/src/exec/score/cpu/unix/cpu.h')
-rw-r--r-- | c/src/exec/score/cpu/unix/cpu.h | 26 |
1 files changed, 18 insertions, 8 deletions
diff --git a/c/src/exec/score/cpu/unix/cpu.h b/c/src/exec/score/cpu/unix/cpu.h index 0f1be5283b..e813a92364 100644 --- a/c/src/exec/score/cpu/unix/cpu.h +++ b/c/src/exec/score/cpu/unix/cpu.h @@ -441,9 +441,22 @@ extern "C" { * * Doing it this way avoids conflicts between the native stuff and the * RTEMS stuff. + * + * NOTE: + * hpux9 setjmp is optimized for the case where the setjmp buffer + * is 8 byte aligned. In a RISC world, this seems likely to enable + * 8 byte copies, especially for the float registers. + * So we always align them on 8 byte boundaries. */ + +#ifdef __GNUC__ +#define CONTEXT_STRUCTURE_ALIGNMENT __attribute__ ((aligned (8))) +#else +#define CONTEXT_STRUCTURE_ALIGNMENT +#endif + typedef struct { - char Area[ CPU_CONTEXT_SIZE_IN_BYTES ]; + char Area[ CPU_CONTEXT_SIZE_IN_BYTES ] CONTEXT_STRUCTURE_ALIGNMENT; } Context_Control; typedef struct { @@ -455,13 +468,7 @@ typedef struct { /* * The following table contains the information required to configure - * the XXX processor specific parameters. - * - * NOTE: The interrupt_stack_size field is required if - * CPU_ALLOCATE_INTERRUPT_STACK is defined as TRUE. - * - * The pretasking_hook, predriver_hook, and postdriver_hook, - * and the do_zero_of_workspace fields are required on ALL CPUs. + * the UNIX Simulator specific parameters. */ typedef struct { @@ -472,6 +479,9 @@ typedef struct { boolean do_zero_of_workspace; unsigned32 interrupt_stack_size; unsigned32 extra_mpci_receive_server_stack; + void * (*stack_allocate_hook)( unsigned32 ); + void (*stack_free_hook)( void* ); + /* end of required fields */ } rtems_cpu_table; /* |