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