Changeset e9fb3133 in rtems


Ignore:
Timestamp:
Mar 13, 2018, 4:14:13 PM (13 months ago)
Author:
Amaan Cheval <amaan.cheval@…>
Branches:
master
Children:
51614c0
Parents:
2e5cf7f
git-author:
Amaan Cheval <amaan.cheval@…> (03/13/18 16:14:13)
git-committer:
Joel Sherrill <joel@…> (03/16/18 16:01:55)
Message:

i386/smp: Define CPU_Interrupt_frame as non-void struct

This change, excluding the #error directive, lets us make progress towards
compiling i386 targets with --enable-smp.

The #error directive needs to be there since the CPU_Interrupt_frame is used by
the SMP context switching code, and this placeholder struct, if used, would only
lead to more subtle bugs and errors. With the directive, the SMP context
switching code can be improved separately.

Updates #3331

File:
1 edited

Legend:

Unmodified
Added
Removed
  • cpukit/score/cpu/i386/include/rtems/score/cpu.h

    r2e5cf7f re9fb3133  
    275275extern void rtems_exception_init_mngt(void);
    276276
     277#ifdef RTEMS_SMP
     278  /* Throw compile-time error to indicate incomplete support */
     279  #error "i386 targets do not support SMP.\
     280 See: https://devel.rtems.org/ticket/3335"
     281
     282  /*
     283   * This size must match the size of the CPU_Interrupt_frame, which must be
     284   * used in the SMP context switch code, which is incomplete at the moment.
     285   */
     286  #define CPU_INTERRUPT_FRAME_SIZE 4
     287#endif
     288
    277289/*
    278290 * This port does not pass any frame info to the
     
    280292 */
    281293
    282 typedef void CPU_Interrupt_frame;
     294typedef struct {
     295  uint32_t todo_replace_with_apt_registers;
     296} CPU_Interrupt_frame;
    283297
    284298typedef enum {
Note: See TracChangeset for help on using the changeset viewer.