Skip to content
Snippets Groups Projects
Select Git revision
  • 3ea0520512089cffbe02b7d6eb645cdfddb09c5c
  • master default protected
  • stable
  • extraversion
  • early-display
  • variant-emmc-nvme-boot
  • 2024-07-19
  • 2024-06-30
  • 2023-10-18
  • 2023-10-10
  • 2023-07-04
  • 2023-01-25
  • v3
  • variant-emmc-nvme-boot
  • 2020-06-01
15 results

fsl_dpio.h

Blame
  • kallsyms.c 1.03 KiB
    /*
     * Helper functions for working with the builtin symbol table
     *
     * Copyright (c) 2008-2009 Analog Devices Inc.
     * Licensed under the GPL-2 or later.
     */
    
    #include <common.h>
    
    /* We need the weak marking as this symbol is provided specially */
    extern const char system_map[] __attribute__((weak));
    
    /* Given an address, return a pointer to the symbol name and store
     * the base address in caddr.  So if the symbol map had an entry:
     *		03fb9b7c_spi_cs_deactivate
     * Then the following call:
     *		unsigned long base;
     *		const char *sym = symbol_lookup(0x03fb9b80, &base);
     * Would end up setting the variables like so:
     *		base = 0x03fb9b7c;
     *		sym = "_spi_cs_deactivate";
     */
    const char *symbol_lookup(unsigned long addr, unsigned long *caddr)
    {
    	const char *sym, *csym;
    	char *esym;
    	unsigned long sym_addr;
    
    	sym = system_map;
    	csym = NULL;
    	*caddr = 0;
    
    	while (*sym) {
    		sym_addr = simple_strtoul(sym, &esym, 16);
    		sym = esym;
    		if (sym_addr > addr)
    			break;
    		*caddr = sym_addr;
    		csym = sym;
    		sym += strlen(sym) + 1;
    	}
    
    	return csym;
    }