Changeset 36df4109 in mainline for kernel/generic/include/arch.h


Ignore:
Timestamp:
2016-06-06T16:29:56Z (8 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
7510326
Parents:
7f0580d
Message:

Introduce architecure-specific operations

This replaces the arch_*_init() functions with an arch_ops_t structure
defined for each architecture. Undefined operations are treated as NOPs.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/generic/include/arch.h

    r7f0580d r36df4109  
    3636#define KERN_ARCH_H_
    3737
    38 #include <arch/arch.h>  /* arch_pre_main() */
    3938#include <arch/asm.h>   /* get_stack_base() */
    4039#include <config.h>
     
    8079} the_t;
    8180
     81typedef struct {
     82        void (* pre_mm_init)(void);
     83        void (* post_mm_init)(void);
     84        void (* post_cpu_init)(void);
     85        void (* pre_smp_init)(void);
     86        void (* post_smp_init)(void);
     87} arch_ops_t;
     88
     89extern arch_ops_t *arch_ops;
     90
     91#define ARCH_OP(op) \
     92        do { \
     93                if (arch_ops->op) \
     94                        arch_ops->op(); \
     95        } while (0)
     96
    8297extern void the_initialize(the_t *);
    8398extern void the_copy(the_t *, the_t *);
    84 
    85 extern void arch_pre_mm_init(void);
    86 extern void arch_post_mm_init(void);
    87 extern void arch_post_cpu_init(void);
    88 extern void arch_pre_smp_init(void);
    89 extern void arch_post_smp_init(void);
    9099
    91100extern void calibrate_delay_loop(void);
     
    95104extern void *arch_construct_function(fncptr_t *, void *, void *);
    96105
    97 
    98106#endif
    99107
Note: See TracChangeset for help on using the changeset viewer.