50 строки
1.5 KiB
C
50 строки
1.5 KiB
C
/*
|
|
* linux/include/asm-arm26/proc-fns.h
|
|
*
|
|
* Copyright (C) 2000 Russell King
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License version 2 as
|
|
* published by the Free Software Foundation.
|
|
*/
|
|
#ifndef __ASSEMBLY__
|
|
|
|
#include <asm/page.h>
|
|
|
|
/*
|
|
* Don't change this structure - ASM code
|
|
* relies on it.
|
|
*/
|
|
extern struct processor {
|
|
/* check for any bugs */
|
|
void (*_check_bugs)(void);
|
|
/* Set up any processor specifics */
|
|
void (*_proc_init)(void);
|
|
/* Disable any processor specifics */
|
|
void (*_proc_fin)(void);
|
|
/* set the MEMC hardware mappings */
|
|
void (*_set_pgd)(pgd_t *pgd);
|
|
/* XCHG */
|
|
unsigned long (*_xchg_1)(unsigned long x, volatile void *ptr);
|
|
unsigned long (*_xchg_4)(unsigned long x, volatile void *ptr);
|
|
} processor;
|
|
|
|
extern const struct processor arm2_processor_functions;
|
|
extern const struct processor arm250_processor_functions;
|
|
extern const struct processor arm3_processor_functions;
|
|
|
|
#define cpu_check_bugs() processor._check_bugs()
|
|
#define cpu_proc_init() processor._proc_init()
|
|
#define cpu_proc_fin() processor._proc_fin()
|
|
#define cpu_do_idle() do { } while (0)
|
|
#define cpu_switch_mm(pgd,mm) processor._set_pgd(pgd)
|
|
#define cpu_xchg_1(x,ptr) processor._xchg_1(x,ptr)
|
|
#define cpu_xchg_4(x,ptr) processor._xchg_4(x,ptr)
|
|
|
|
|
|
//FIXME - these shouldnt be in proc-fn.h
|
|
extern void cpu_memc_update_all(pgd_t *pgd);
|
|
extern void cpu_memc_update_entry(pgd_t *pgd, unsigned long phys_pte, unsigned long log_addr);
|
|
|
|
#endif
|