Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 78c04153 authored by Sam Ravnborg's avatar Sam Ravnborg
Browse files

kbuild: Lindent genksyms.c



No fix-ups applied yet. Just the raw Lindent output.

Signed-off-by: default avatarSam Ravnborg <sam@ravnborg.org>
parent c79c7b09
Loading
Loading
Loading
Loading
+402 −438
Original line number Diff line number Diff line
@@ -57,8 +57,7 @@ static const char * const symbol_type_name[] = {

/*----------------------------------------------------------------------*/

static const unsigned int crctab32[] =
{
static const unsigned int crctab32[] = {
	0x00000000U, 0x77073096U, 0xee0e612cU, 0x990951baU, 0x076dc419U,
	0x706af48fU, 0xe963a535U, 0x9e6495a3U, 0x0edb8832U, 0x79dcb8a4U,
	0xe0d5e91eU, 0x97d2d988U, 0x09b64c2bU, 0x7eb17cbdU, 0xe7b82d07U,
@@ -119,25 +118,21 @@ partial_crc32_one(unsigned char c, unsigned long crc)
	return crctab32[(crc ^ c) & 0xff] ^ (crc >> 8);
}

static inline unsigned long
partial_crc32(const char *s, unsigned long crc)
static inline unsigned long partial_crc32(const char *s, unsigned long crc)
{
	while (*s)
		crc = partial_crc32_one(*s++, crc);
	return crc;
}

static inline unsigned long
crc32(const char *s)
static inline unsigned long crc32(const char *s)
{
	return partial_crc32(s, 0xffffffff) ^ 0xffffffff;
}


/*----------------------------------------------------------------------*/

static inline enum symbol_type
map_to_ns(enum symbol_type t)
static inline enum symbol_type map_to_ns(enum symbol_type t)
{
	if (t == SYM_TYPEDEF)
		t = SYM_NORMAL;
@@ -146,29 +141,28 @@ map_to_ns(enum symbol_type t)
	return t;
}

struct symbol *
find_symbol(const char *name, enum symbol_type ns)
struct symbol *find_symbol(const char *name, enum symbol_type ns)
{
	unsigned long h = crc32(name) % HASH_BUCKETS;
	struct symbol *sym;

	for (sym = symtab[h]; sym; sym = sym->hash_next)
    if (map_to_ns(sym->type) == map_to_ns(ns) && strcmp(name, sym->name) == 0)
		if (map_to_ns(sym->type) == map_to_ns(ns)
		    && strcmp(name, sym->name) == 0)
			break;

	return sym;
}

struct symbol *
add_symbol(const char *name, enum symbol_type type, struct string_list *defn, int is_extern)
struct symbol *add_symbol(const char *name, enum symbol_type type,
			  struct string_list *defn, int is_extern)
{
	unsigned long h = crc32(name) % HASH_BUCKETS;
	struct symbol *sym;

	for (sym = symtab[h]; sym; sym = sym->hash_next)
		if (map_to_ns(sym->type) == map_to_ns(type)
	&& strcmp(name, sym->name) == 0)
      {
		    && strcmp(name, sym->name) == 0) {
			if (!equal_list(sym->defn, defn))
				error_with_pos("redefinition of %s", name);
			return sym;
@@ -184,9 +178,9 @@ add_symbol(const char *name, enum symbol_type type, struct string_list *defn, in
	sym->hash_next = symtab[h];
	symtab[h] = sym;

  if (flag_debug)
    {
      fprintf(debugfile, "Defn for %s %s == <", symbol_type_name[type],  name);
	if (flag_debug) {
		fprintf(debugfile, "Defn for %s %s == <",
			symbol_type_name[type], name);
		if (is_extern)
			fputs("extern ", debugfile);
		print_list(debugfile, defn);
@@ -197,29 +191,24 @@ add_symbol(const char *name, enum symbol_type type, struct string_list *defn, in
	return sym;
}


/*----------------------------------------------------------------------*/

inline void
free_node(struct string_list *node)
inline void free_node(struct string_list *node)
{
	free(node->string);
	free(node);
}

void
free_list(struct string_list *s, struct string_list *e)
{
  while (s != e)
void free_list(struct string_list *s, struct string_list *e)
{
	while (s != e) {
		struct string_list *next = s->next;
		free_node(s);
		s = next;
	}
}

inline struct string_list *
copy_node(struct string_list *node)
inline struct string_list *copy_node(struct string_list *node)
{
	struct string_list *newnode;

@@ -230,8 +219,7 @@ copy_node(struct string_list *node)
	return newnode;
}

struct string_list *
copy_list(struct string_list *s, struct string_list *e)
struct string_list *copy_list(struct string_list *s, struct string_list *e)
{
	struct string_list *h, *p;

@@ -246,11 +234,9 @@ copy_list(struct string_list *s, struct string_list *e)
	return h;
}

int
equal_list(struct string_list *a, struct string_list *b)
{
  while (a && b)
int equal_list(struct string_list *a, struct string_list *b)
{
	while (a && b) {
		if (a->tag != b->tag || strcmp(a->string, b->string))
			return 0;
		a = a->next;
@@ -260,11 +246,9 @@ equal_list(struct string_list *a, struct string_list *b)
	return !a && !b;
}

static inline void
print_node(FILE *f, struct string_list *list)
{
  switch (list->tag)
static inline void print_node(FILE * f, struct string_list *list)
{
	switch (list->tag) {
	case SYM_STRUCT:
		putc('s', f);
		goto printit;
@@ -286,15 +270,13 @@ print_node(FILE *f, struct string_list *list)
	}
}

void
print_list(FILE *f, struct string_list *list)
void print_list(FILE * f, struct string_list *list)
{
	struct string_list **e, **b;
	struct string_list *tmp, **tmp2;
	int elem = 1;

  if (list == NULL)
    {
	if (list == NULL) {
		fputs("(nil)", f);
		return;
	}
@@ -311,8 +293,7 @@ print_list(FILE *f, struct string_list *list)
	while ((list = list->next) != NULL)
		*(tmp2--) = list;

  while (b != e)
    {
	while (b != e) {
		print_node(f, *b++);
		putc(' ', f);
	}
@@ -340,14 +321,12 @@ expand_and_crc_list(struct string_list *list, unsigned long crc)
	while ((list = list->next) != NULL)
		*(tmp2--) = list;

  while (b != e)
    {
	while (b != e) {
		struct string_list *cur;
		struct symbol *subsym;

		cur = *(b++);
      switch (cur->tag)
	{
		switch (cur->tag) {
		case SYM_NORMAL:
			if (flag_dump_defs)
				fprintf(debugfile, "%s ", cur->string);
@@ -357,15 +336,12 @@ expand_and_crc_list(struct string_list *list, unsigned long crc)

		case SYM_TYPEDEF:
			subsym = find_symbol(cur->string, cur->tag);
	  if (subsym->expansion_trail)
	    {
			if (subsym->expansion_trail) {
				if (flag_dump_defs)
					fprintf(debugfile, "%s ", cur->string);
				crc = partial_crc32(cur->string, crc);
				crc = partial_crc32_one(' ', crc);
	    }
	  else
	    {
			} else {
				subsym->expansion_trail = expansion_trail;
				expansion_trail = subsym;
				crc = expand_and_crc_list(subsym->defn, crc);
@@ -376,12 +352,12 @@ expand_and_crc_list(struct string_list *list, unsigned long crc)
		case SYM_UNION:
		case SYM_ENUM:
			subsym = find_symbol(cur->string, cur->tag);
	  if (!subsym)
	    {
			if (!subsym) {
				struct string_list *n, *t = NULL;

				error_with_pos("expand undefined %s %s",
			     symbol_type_name[cur->tag], cur->string);
					       symbol_type_name[cur->tag],
					       cur->string);

				n = xmalloc(sizeof(*n));
				n->string = xstrdup(symbol_type_name[cur->tag]);
@@ -400,23 +376,23 @@ expand_and_crc_list(struct string_list *list, unsigned long crc)
				n->tag = SYM_NORMAL;
				n->next = t;

	      subsym = add_symbol(cur->string, cur->tag, n, 0);
				subsym =
				    add_symbol(cur->string, cur->tag, n, 0);
			}
	  if (subsym->expansion_trail)
	    {
	      if (flag_dump_defs)
		{
		  fprintf(debugfile, "%s %s ", symbol_type_name[cur->tag],
			if (subsym->expansion_trail) {
				if (flag_dump_defs) {
					fprintf(debugfile, "%s %s ",
						symbol_type_name[cur->tag],
						cur->string);
				}

	      crc = partial_crc32(symbol_type_name[cur->tag], crc);
				crc =
				    partial_crc32(symbol_type_name[cur->tag],
						  crc);
				crc = partial_crc32_one(' ', crc);
				crc = partial_crc32(cur->string, crc);
				crc = partial_crc32_one(' ', crc);
	    }
	  else
	    {
			} else {
				subsym->expansion_trail = expansion_trail;
				expansion_trail = subsym;
				crc = expand_and_crc_list(subsym->defn, crc);
@@ -428,16 +404,14 @@ expand_and_crc_list(struct string_list *list, unsigned long crc)
	return crc;
}

void
export_symbol(const char *name)
void export_symbol(const char *name)
{
	struct symbol *sym;

	sym = find_symbol(name, SYM_NORMAL);
	if (!sym)
		error_with_pos("export undefined symbol %s", name);
  else
    {
	else {
		unsigned long crc;

		if (flag_dump_defs)
@@ -448,8 +422,7 @@ export_symbol(const char *name)
		crc = expand_and_crc_list(sym->defn, 0xffffffff) ^ 0xffffffff;

		sym = expansion_trail;
      while (sym != (struct symbol *)-1L)
	{
		while (sym != (struct symbol *)-1L) {
			struct symbol *n = sym->expansion_trail;
			sym->expansion_trail = 0;
			sym = n;
@@ -465,13 +438,11 @@ export_symbol(const char *name)

/*----------------------------------------------------------------------*/

void
error(const char *fmt, ...)
void error(const char *fmt, ...)
{
	va_list args;

  if (flag_warnings)
    {
	if (flag_warnings) {
		va_start(args, fmt);
		vfprintf(stderr, fmt, args);
		va_end(args);
@@ -481,14 +452,13 @@ error(const char *fmt, ...)
	}
}

void
error_with_pos(const char *fmt, ...)
void error_with_pos(const char *fmt, ...)
{
	va_list args;

  if (flag_warnings)
    {
      fprintf(stderr, "%s:%d: ", cur_filename ? : "<stdin>", cur_line);
	if (flag_warnings) {
		fprintf(stderr, "%s:%d: ", cur_filename ? : "<stdin>",
			cur_line);

		va_start(args, fmt);
		vfprintf(stderr, fmt, args);
@@ -499,12 +469,9 @@ error_with_pos(const char *fmt, ...)
	}
}


void genksyms_usage(void)
{
	fputs("Usage:\n"
	      "genksyms [-dDwqhV] > /path/to/.tmp_obj.ver\n"
	      "\n"
	fputs("Usage:\n" "genksyms [-dDwqhV] > /path/to/.tmp_obj.ver\n" "\n"
#ifdef __GNU_LIBRARY__
	      "  -d, --debug           Increment the debug level (repeatable)\n"
	      "  -D, --dump            Dump expanded symbol defs (for debugging only)\n"
@@ -523,8 +490,7 @@ void genksyms_usage(void)
	      , stderr);
}

int
main(int argc, char **argv)
int main(int argc, char **argv)
{
	int o;

@@ -545,8 +511,7 @@ main(int argc, char **argv)
#else				/* __GNU_LIBRARY__ */
	while ((o = getopt(argc, argv, "a:dwqVDk:p:")) != EOF)
#endif				/* __GNU_LIBRARY__ */
    switch (o)
      {
		switch (o) {
		case 'a':
			arch = optarg;
			break;
@@ -572,8 +537,7 @@ main(int argc, char **argv)
			genksyms_usage();
			return 1;
		}
    if ((strcmp(arch, "v850") == 0) ||
        (strcmp(arch, "h8300") == 0))
	if ((strcmp(arch, "v850") == 0) || (strcmp(arch, "h8300") == 0))
		mod_prefix = "_";
	{
		extern int yydebug;
@@ -588,10 +552,10 @@ main(int argc, char **argv)

	yyparse();

  if (flag_debug)
    {
	if (flag_debug) {
		fprintf(debugfile, "Hash table occupancy %d/%d = %g\n",
	      nsyms, HASH_BUCKETS, (double)nsyms / (double)HASH_BUCKETS);
			nsyms, HASH_BUCKETS,
			(double)nsyms / (double)HASH_BUCKETS);
	}

	return errors != 0;