cregit-Linux how code gets into the kernel

Release 4.14 arch/h8300/include/asm/flat.h

/* SPDX-License-Identifier: GPL-2.0 */
/*
 * arch/h8300/asm/include/flat.h -- uClinux flat-format executables
 */

#ifndef __H8300_FLAT_H__

#define __H8300_FLAT_H__

#include <asm/unaligned.h>


#define	flat_argvp_envp_on_stack()		1

#define	flat_old_ram_flag(flags)		1

#define	flat_reloc_valid(reloc, size)		((reloc) <= (size))

#define	flat_set_persistent(relval, p)		0

/*
 * on the H8 a couple of the relocations have an instruction in the
 * top byte.  As there can only be 24bits of address space,  we just
 * always preserve that 8bits at the top,  when it isn't an instruction
 * is is 0 (davidm@snapgear.com)
 */


#define	flat_get_relocate_addr(rel)		(rel & ~0x00000001)

static inline int flat_get_addr_from_rp(u32 __user *rp, u32 relval, u32 flags, u32 *addr, u32 *persistent) { u32 val = get_unaligned((__force u32 *)rp); if (!(flags & FLAT_FLAG_GOTPIC)) val &= 0x00ffffff; *addr = val; return 0; }

Contributors

PersonTokensPropCommitsCommitProp
Al Viro4880.00%133.33%
Yoshinori Sato1016.67%133.33%
Geert Uytterhoeven23.33%133.33%
Total60100.00%3100.00%


static inline int flat_put_addr_at_rp(u32 __user *rp, u32 addr, u32 rel) { u32 *p = (__force u32 *)rp; put_unaligned((addr & 0x00ffffff) | (*(char *)p << 24), p); return 0; }

Contributors

PersonTokensPropCommitsCommitProp
Al Viro4685.19%150.00%
Yoshinori Sato814.81%150.00%
Total54100.00%2100.00%

#endif /* __H8300_FLAT_H__ */

Overall Contributors

PersonTokensPropCommitsCommitProp
Al Viro9758.43%125.00%
Yoshinori Sato6639.76%125.00%
Geert Uytterhoeven21.20%125.00%
Greg Kroah-Hartman10.60%125.00%
Total166100.00%4100.00%
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.
Created with cregit.