mirror of
https://xff.cz/git/u-boot/
synced 2025-09-30 06:51:28 +02:00
* Header file cleanup for ARM
* Patch by Murray Jensen, 24 Jun 2003: - make sure to use only U-boot provided header files - fix problems with ".rodata.str1.4" section as used by GCC-3.x
This commit is contained in:
134
include/asm-arm/processor.h
Normal file
134
include/asm-arm/processor.h
Normal file
@@ -0,0 +1,134 @@
|
||||
/*
|
||||
* linux/include/asm-arm/processor.h
|
||||
*
|
||||
* Copyright (C) 1995-2002 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 __ASM_ARM_PROCESSOR_H
|
||||
#define __ASM_ARM_PROCESSOR_H
|
||||
|
||||
/*
|
||||
* Default implementation of macro that returns current
|
||||
* instruction pointer ("program counter").
|
||||
*/
|
||||
#define current_text_addr() ({ __label__ _l; _l: &&_l;})
|
||||
|
||||
#define FP_SIZE 35
|
||||
|
||||
struct fp_hard_struct {
|
||||
unsigned int save[FP_SIZE]; /* as yet undefined */
|
||||
};
|
||||
|
||||
struct fp_soft_struct {
|
||||
unsigned int save[FP_SIZE]; /* undefined information */
|
||||
};
|
||||
|
||||
union fp_state {
|
||||
struct fp_hard_struct hard;
|
||||
struct fp_soft_struct soft;
|
||||
};
|
||||
|
||||
typedef unsigned long mm_segment_t; /* domain register */
|
||||
|
||||
#ifdef __KERNEL__
|
||||
|
||||
#define EISA_bus 0
|
||||
#define MCA_bus 0
|
||||
#define MCA_bus__is_a_macro
|
||||
|
||||
#include <asm/atomic.h>
|
||||
#include <asm/ptrace.h>
|
||||
#if 0 /* XXX###XXX */
|
||||
#include <asm/arch/memory.h>
|
||||
#endif /* XXX###XXX */
|
||||
#include <asm/proc/processor.h>
|
||||
#include <asm/types.h>
|
||||
|
||||
union debug_insn {
|
||||
u32 arm;
|
||||
u16 thumb;
|
||||
};
|
||||
|
||||
struct debug_entry {
|
||||
u32 address;
|
||||
union debug_insn insn;
|
||||
};
|
||||
|
||||
struct debug_info {
|
||||
int nsaved;
|
||||
struct debug_entry bp[2];
|
||||
};
|
||||
|
||||
struct thread_struct {
|
||||
atomic_t refcount;
|
||||
/* fault info */
|
||||
unsigned long address;
|
||||
unsigned long trap_no;
|
||||
unsigned long error_code;
|
||||
/* floating point */
|
||||
union fp_state fpstate;
|
||||
/* debugging */
|
||||
struct debug_info debug;
|
||||
/* context info */
|
||||
struct context_save_struct *save;
|
||||
EXTRA_THREAD_STRUCT
|
||||
};
|
||||
|
||||
#define INIT_THREAD { \
|
||||
refcount: ATOMIC_INIT(1), \
|
||||
EXTRA_THREAD_STRUCT_INIT \
|
||||
}
|
||||
|
||||
/*
|
||||
* Return saved PC of a blocked thread.
|
||||
*/
|
||||
static inline unsigned long thread_saved_pc(struct thread_struct *t)
|
||||
{
|
||||
return t->save ? pc_pointer(t->save->pc) : 0;
|
||||
}
|
||||
|
||||
static inline unsigned long thread_saved_fp(struct thread_struct *t)
|
||||
{
|
||||
return t->save ? t->save->fp : 0;
|
||||
}
|
||||
|
||||
/* Forward declaration, a strange C thing */
|
||||
struct task_struct;
|
||||
|
||||
/* Free all resources held by a thread. */
|
||||
extern void release_thread(struct task_struct *);
|
||||
|
||||
/* Copy and release all segment info associated with a VM */
|
||||
#define copy_segments(tsk, mm) do { } while (0)
|
||||
#define release_segments(mm) do { } while (0)
|
||||
|
||||
unsigned long get_wchan(struct task_struct *p);
|
||||
|
||||
#define THREAD_SIZE (8192)
|
||||
|
||||
extern struct task_struct *alloc_task_struct(void);
|
||||
extern void __free_task_struct(struct task_struct *);
|
||||
#define get_task_struct(p) atomic_inc(&(p)->thread.refcount)
|
||||
#define free_task_struct(p) \
|
||||
do { \
|
||||
if (atomic_dec_and_test(&(p)->thread.refcount)) \
|
||||
__free_task_struct((p)); \
|
||||
} while (0)
|
||||
|
||||
#define init_task (init_task_union.task)
|
||||
#define init_stack (init_task_union.stack)
|
||||
|
||||
#define cpu_relax() barrier()
|
||||
|
||||
/*
|
||||
* Create a new kernel thread
|
||||
*/
|
||||
extern int arch_kernel_thread(int (*fn)(void *), void *arg, unsigned long flags);
|
||||
|
||||
#endif
|
||||
|
||||
#endif /* __ASM_ARM_PROCESSOR_H */
|
Reference in New Issue
Block a user