if (strstr(s->sym + 1, "_compiled.")) 
if (strstr(s->sym + offset, "_compiled.")) 
symbol_valid(struct sym_entry *s){	/* Symbols which vary between passes.  Passes 1 and 2 must have	 * identical symbol lists.  The kallsyms_* symbols below are only added	 * after pass 1, they would be included in pass 2 when --all-symbols is	 * specified so exclude them to get a stable symbol list.	 */	static char *special_symbols[] = {		"kallsyms_addresses",		"kallsyms_num_syms",		"kallsyms_names",		"kallsyms_markers",		"kallsyms_token_table",		"kallsyms_token_index",	/* Exclude linker generated symbols which vary between passes */		"_SDA_BASE_",		/* ppc */		"_SDA2_BASE_",		/* ppc */		NULL };	int i;	/* if --all-symbols is not specified, then symbols outside the text	 * and inittext sections are discarded */	if (!all_symbols) {		if ((s->addr < _stext || s->addr > _etext)		    && (s->addr < _sinittext || s->addr > _einittext))			return 0;		/* Corner case.  Discard any symbols with the same value as		 * _etext or _einittext, they can move between pass 1 and 2		 * when the kallsyms data is added.  If these symbols move then		 * they may get dropped in pass 2, which breaks the kallsyms		 * rules.		 */		if ((s->addr == _etext && strcmp(s->sym + 1, "_etext")) ||		    (s->addr == _einittext && strcmp(s->sym + 1, "_einittext")))			return 0;	}	/* Exclude symbols which vary between passes. */	if (strstr(s->sym + 1, "_compiled."))		return 0;	for (i = 0; special_symbols[i]; i++)		if( strcmp(s->sym + 1, special_symbols[i]) == 0 )			return 0;	return 1;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/41f11a4fa378201e902892130b11d78cf7cf8e10/kallsyms.c/clean/scripts/kallsyms.c