Orange Pi5 kernel

Deprecated Linux kernel 5.10.110 for OrangePi 5/5B/5+ boards

3 Commits   0 Branches   0 Tags
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  1) /* SPDX-License-Identifier: GPL-2.0 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  2) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  3)  * Some ECOFF definitions.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  4)  */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  5) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  6) #include <stdint.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  7) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  8) typedef struct filehdr {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  9) 	uint16_t	f_magic;	/* magic number */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) 	uint16_t	f_nscns;	/* number of sections */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) 	int32_t		f_timdat;	/* time & date stamp */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) 	int32_t		f_symptr;	/* file pointer to symbolic header */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) 	int32_t		f_nsyms;	/* sizeof(symbolic hdr) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) 	uint16_t	f_opthdr;	/* sizeof(optional hdr) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) 	uint16_t	f_flags;	/* flags */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) } FILHDR;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) #define FILHSZ	sizeof(FILHDR)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) #define MIPSEBMAGIC	0x160
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) #define MIPSELMAGIC	0x162
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) typedef struct scnhdr {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) 	char		s_name[8];	/* section name */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) 	int32_t		s_paddr;	/* physical address, aliased s_nlib */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) 	int32_t		s_vaddr;	/* virtual address */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) 	int32_t		s_size;		/* section size */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) 	int32_t		s_scnptr;	/* file ptr to raw data for section */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) 	int32_t		s_relptr;	/* file ptr to relocation */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) 	int32_t		s_lnnoptr;	/* file ptr to gp histogram */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) 	uint16_t	s_nreloc;	/* number of relocation entries */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) 	uint16_t	s_nlnno;	/* number of gp histogram entries */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) 	int32_t		s_flags;	/* flags */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) } SCNHDR;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) #define SCNHSZ		sizeof(SCNHDR)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) #define SCNROUND	((int32_t)16)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) typedef struct aouthdr {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) 	int16_t	magic;		/* see above				*/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) 	int16_t	vstamp;		/* version stamp			*/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) 	int32_t	tsize;		/* text size in bytes, padded to DW bdry*/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) 	int32_t	dsize;		/* initialized data "  "		*/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) 	int32_t	bsize;		/* uninitialized data "	  "		*/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) 	int32_t	entry;		/* entry pt.				*/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) 	int32_t	text_start;	/* base of text used for this file	*/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) 	int32_t	data_start;	/* base of data used for this file	*/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) 	int32_t	bss_start;	/* base of bss used for this file	*/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) 	int32_t	gprmask;	/* general purpose register mask	*/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) 	int32_t	cprmask[4];	/* co-processor register masks		*/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) 	int32_t	gp_value;	/* the gp value used for this object	*/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) } AOUTHDR;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) #define AOUTHSZ sizeof(AOUTHDR)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) #define OMAGIC		0407
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) #define NMAGIC		0410
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) #define ZMAGIC		0413
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) #define SMAGIC		0411
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) #define LIBMAGIC	0443
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) #define N_TXTOFF(f, a) \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60)  ((a).magic == ZMAGIC || (a).magic == LIBMAGIC ? 0 : \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61)   ((a).vstamp < 23 ? \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62)    ((FILHSZ + AOUTHSZ + (f).f_nscns * SCNHSZ + 7) & 0xfffffff8) : \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63)    ((FILHSZ + AOUTHSZ + (f).f_nscns * SCNHSZ + SCNROUND-1) & ~(SCNROUND-1)) ) )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64) #define N_DATOFF(f, a) \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65)   N_TXTOFF(f, a) + (a).tsize;