1
by Tim Gardner
Import upstream version 4.2.0 |
1 |
/*
|
2 |
* Copyright (C) 2002-2003 David McCullough <davidm@snapgear.com>
|
|
3 |
* Copyright (C) 1998 Kenneth Albanowski <kjahds@kjahds.com>
|
|
4 |
* The Silver Hammer Group, Ltd.
|
|
5 |
*
|
|
6 |
* This file provides the definitions and structures needed to
|
|
7 |
* support uClinux flat-format executables.
|
|
8 |
*/
|
|
9 |
#ifndef _LINUX_FLAT_H
|
|
10 |
#define _LINUX_FLAT_H
|
|
11 |
||
12 |
#include <asm/flat.h> |
|
13 |
#include <uapi/linux/flat.h> |
|
14 |
||
15 |
/*
|
|
16 |
* While it would be nice to keep this header clean, users of older
|
|
17 |
* tools still need this support in the kernel. So this section is
|
|
18 |
* purely for compatibility with old tool chains.
|
|
19 |
*
|
|
20 |
* DO NOT make changes or enhancements to the old format please, just work
|
|
21 |
* with the format above, except to fix bugs with old format support.
|
|
22 |
*/
|
|
23 |
||
24 |
#include <asm/byteorder.h> |
|
25 |
||
26 |
#define OLD_FLAT_VERSION 0x00000002L
|
|
27 |
#define OLD_FLAT_RELOC_TYPE_TEXT 0
|
|
28 |
#define OLD_FLAT_RELOC_TYPE_DATA 1
|
|
29 |
#define OLD_FLAT_RELOC_TYPE_BSS 2
|
|
30 |
||
31 |
typedef union { |
|
32 |
unsigned long value; |
|
33 |
struct { |
|
34 |
# if defined(mc68000) && !defined(CONFIG_COLDFIRE)
|
|
35 |
signed long offset : 30; |
|
36 |
unsigned long type : 2; |
|
37 |
# define OLD_FLAT_FLAG_RAM 0x1 /* load program entirely into RAM */ |
|
38 |
# elif defined(__BIG_ENDIAN_BITFIELD)
|
|
39 |
unsigned long type : 2; |
|
40 |
signed long offset : 30; |
|
41 |
# define OLD_FLAT_FLAG_RAM 0x1 /* load program entirely into RAM */ |
|
42 |
# elif defined(__LITTLE_ENDIAN_BITFIELD)
|
|
43 |
signed long offset : 30; |
|
44 |
unsigned long type : 2; |
|
45 |
# define OLD_FLAT_FLAG_RAM 0x1 /* load program entirely into RAM */ |
|
46 |
# else
|
|
47 |
# error "Unknown bitfield order for flat files."
|
|
48 |
# endif
|
|
49 |
} reloc; |
|
50 |
} flat_v2_reloc_t; |
|
51 |
||
52 |
#endif /* _LINUX_FLAT_H */ |