Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/arch/arm32/src/machine_func.c

    ra71c158 recf083dd  
    3939
    4040#include <arch/machine_func.h>
     41#include <arch/mach/gta02/gta02.h>
     42#include <arch/mach/integratorcp/integratorcp.h>
     43#include <arch/mach/testarm/testarm.h>
    4144
     45/** Pointer to machine_ops structure being used. */
     46struct arm_machine_ops *machine_ops;
     47
     48/** Initialize machine_ops pointer. */
     49void machine_ops_init(void)
     50{
     51#if defined(MACHINE_gta02)
     52        machine_ops = &gta02_machine_ops;
     53#elif defined(MACHINE_testarm)
     54        machine_ops = &gxemul_machine_ops;
     55#elif defined(MACHINE_integratorcp)
     56        machine_ops = &icp_machine_ops;
     57#else
     58#error Machine type not defined.
     59#endif
     60}
    4261
    4362/** Maps HW devices to the kernel address space using #hw_map. */
    4463void machine_init(void)
    4564{
    46         (machine_ops.machine_init)();
     65        (machine_ops->machine_init)();
    4766}
    4867
     
    5170void machine_timer_irq_start(void)
    5271{
    53         (machine_ops.machine_timer_irq_start)();
     72        (machine_ops->machine_timer_irq_start)();
    5473}
    5574
     
    5877void machine_cpu_halt(void)
    5978{
    60         (machine_ops.machine_cpu_halt)();
     79        (machine_ops->machine_cpu_halt)();
    6180}
    6281
    63 
    64 /** Returns size of available memory.
     82/** Get extents of available memory.
    6583 *
    66  *  @return Size of available memory.
     84 * @param start         Place to store memory start address.
     85 * @param size          Place to store memory size.
    6786 */
    68 uintptr_t machine_get_memory_size(void)
     87void machine_get_memory_extents(uintptr_t *start, uintptr_t *size)
    6988{
    70         return (machine_ops.machine_get_memory_size)();
     89        (machine_ops->machine_get_memory_extents)(start, size);
    7190}
    7291
     
    7695 * @param istate Saved processor state.
    7796 */
    78 void machine_irq_exception(int exc_no, istate_t *istate)
     97void machine_irq_exception(unsigned int exc_no, istate_t *istate)
    7998{
    80         (machine_ops.machine_irq_exception)(exc_no, istate);
     99        (machine_ops->machine_irq_exception)(exc_no, istate);
    81100}
    82101
     
    87106void machine_frame_init(void)
    88107{
    89         (machine_ops.machine_frame_init)();
     108        (machine_ops->machine_frame_init)();
    90109}
    91110
     
    95114void machine_output_init(void)
    96115{
    97         (machine_ops.machine_output_init)();
     116        (machine_ops->machine_output_init)();
    98117}
    99118
     
    103122void machine_input_init(void)
    104123{
    105         (machine_ops.machine_input_init)();
     124        (machine_ops->machine_input_init)();
    106125}
    107126
    108 /*
    109  * Generic function to use, if sepcific function doesn't define any of the above functions.
    110  */
    111 void machine_genfunc()
     127/** Get IRQ number range used by machine. */
     128size_t machine_get_irq_count(void)
    112129{
     130        return (machine_ops->machine_get_irq_count)();
    113131}
    114132
Note: See TracChangeset for help on using the changeset viewer.