fiq.c (d585a021c0b10b0477d6b608c53e1feb8cde0507) fiq.c (247055aa21ffef1c49dd64710d5e94c2aee19b58)
1/*
2 * linux/arch/arm/kernel/fiq.c
3 *
4 * Copyright (C) 1998 Russell King
5 * Copyright (C) 1998, 1999 Phil Blundell
6 *
7 * FIQ support written by Philip Blundell <philb@gnu.org>, 1998.
8 *

--- 31 unchanged lines hidden (view full) ---

40#include <linux/init.h>
41#include <linux/interrupt.h>
42#include <linux/seq_file.h>
43
44#include <asm/cacheflush.h>
45#include <asm/fiq.h>
46#include <asm/irq.h>
47#include <asm/system.h>
1/*
2 * linux/arch/arm/kernel/fiq.c
3 *
4 * Copyright (C) 1998 Russell King
5 * Copyright (C) 1998, 1999 Phil Blundell
6 *
7 * FIQ support written by Philip Blundell <philb@gnu.org>, 1998.
8 *

--- 31 unchanged lines hidden (view full) ---

40#include <linux/init.h>
41#include <linux/interrupt.h>
42#include <linux/seq_file.h>
43
44#include <asm/cacheflush.h>
45#include <asm/fiq.h>
46#include <asm/irq.h>
47#include <asm/system.h>
48#include <asm/traps.h>
48
49static unsigned long no_fiq_insn;
50
51/* Default reacquire function
52 * - we always relinquish FIQ control
53 * - we always reacquire FIQ control
54 */
55static int fiq_def_op(void *ref, int relinquish)

--- 16 unchanged lines hidden (view full) ---

72 if (current_fiq != &default_owner)
73 seq_printf(p, "FIQ: %s\n", current_fiq->name);
74
75 return 0;
76}
77
78void set_fiq_handler(void *start, unsigned int length)
79{
49
50static unsigned long no_fiq_insn;
51
52/* Default reacquire function
53 * - we always relinquish FIQ control
54 * - we always reacquire FIQ control
55 */
56static int fiq_def_op(void *ref, int relinquish)

--- 16 unchanged lines hidden (view full) ---

73 if (current_fiq != &default_owner)
74 seq_printf(p, "FIQ: %s\n", current_fiq->name);
75
76 return 0;
77}
78
79void set_fiq_handler(void *start, unsigned int length)
80{
81#if defined(CONFIG_CPU_USE_DOMAINS)
80 memcpy((void *)0xffff001c, start, length);
82 memcpy((void *)0xffff001c, start, length);
83#else
84 memcpy(vectors_page + 0x1c, start, length);
85#endif
81 flush_icache_range(0xffff001c, 0xffff001c + length);
82 if (!vectors_high())
83 flush_icache_range(0x1c, 0x1c + length);
84}
85
86/*
87 * Taking an interrupt in FIQ mode is death, so both these functions
88 * disable irqs for the duration. Note - these functions are almost

--- 93 unchanged lines hidden ---
86 flush_icache_range(0xffff001c, 0xffff001c + length);
87 if (!vectors_high())
88 flush_icache_range(0x1c, 0x1c + length);
89}
90
91/*
92 * Taking an interrupt in FIQ mode is death, so both these functions
93 * disable irqs for the duration. Note - these functions are almost

--- 93 unchanged lines hidden ---