Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
arch
blackfin
include
asm
flat.h
Go to the documentation of this file.
1
/*
2
* uClinux flat-format executables
3
*
4
* Copyright 2003-2009 Analog Devices Inc.
5
*
6
* Licensed under the GPL-2
7
*/
8
9
#ifndef __BLACKFIN_FLAT_H__
10
#define __BLACKFIN_FLAT_H__
11
12
#include <asm/unaligned.h>
13
14
#define flat_argvp_envp_on_stack() 0
15
#define flat_old_ram_flag(flags) (flags)
16
17
extern
unsigned
long
bfin_get_addr_from_rp
(
unsigned
long
*
ptr
,
18
unsigned
long
relval,
19
unsigned
long
flags
,
20
unsigned
long
*persistent);
21
22
extern
void
bfin_put_addr_at_rp
(
unsigned
long
*
ptr
,
unsigned
long
addr
,
23
unsigned
long
relval);
24
25
/* The amount by which a relocation can exceed the program image limits
26
without being regarded as an error. */
27
28
#define flat_reloc_valid(reloc, size) ((reloc) <= (size))
29
30
#define flat_get_addr_from_rp(rp, relval, flags, persistent) \
31
bfin_get_addr_from_rp(rp, relval, flags, persistent)
32
#define flat_put_addr_at_rp(rp, val, relval) \
33
bfin_put_addr_at_rp(rp, val, relval)
34
35
/* Convert a relocation entry into an address. */
36
static
inline
unsigned
long
37
flat_get_relocate_addr
(
unsigned
long
relval)
38
{
39
return
relval & 0x03ffffff;
/* Mask out top 6 bits */
40
}
41
42
static
inline
int
flat_set_persistent
(
unsigned
long
relval,
43
unsigned
long
*persistent)
44
{
45
int
type
= (relval >> 26) & 7;
46
if
(type == 3) {
47
*persistent = relval << 16;
48
return
1;
49
}
50
return
0;
51
}
52
53
static
inline
int
flat_addr_absolute(
unsigned
long
relval)
54
{
55
return
(relval & (1 << 29)) != 0;
56
}
57
58
#endif
/* __BLACKFIN_FLAT_H__ */
Generated on Thu Jan 10 2013 12:55:06 for Linux Kernel by
1.8.2