xref: /openbmc/linux/arch/arm/tools/gen-mach-types (revision 66206536)
11da177e4SLinus Torvalds#!/bin/awk
21da177e4SLinus Torvalds#
366206536SSam Ravnborg# Awk script to generate include/generated/mach-types.h
41da177e4SLinus Torvalds#
51da177e4SLinus TorvaldsBEGIN	{ nr = 0 }
61da177e4SLinus Torvalds/^#/	{ next }
71da177e4SLinus Torvalds/^[ 	]*$/ { next }
81da177e4SLinus Torvalds
91da177e4SLinus TorvaldsNF == 4 {
101da177e4SLinus Torvalds	  machine_is[nr] = "machine_is_"$1;
111da177e4SLinus Torvalds	  config[nr] = "CONFIG_"$2;
121da177e4SLinus Torvalds	  mach_type[nr] = "MACH_TYPE_"$3;
131da177e4SLinus Torvalds	  num[nr] = $4; nr++
141da177e4SLinus Torvalds	}
151da177e4SLinus Torvalds
161da177e4SLinus TorvaldsNF == 3 {
171da177e4SLinus Torvalds	  machine_is[nr] = "machine_is_"$1;
181da177e4SLinus Torvalds	  config[nr] = "CONFIG_"$2;
191da177e4SLinus Torvalds	  mach_type[nr] = "MACH_TYPE_"$3;
201da177e4SLinus Torvalds	  num[nr] = ""; nr++
211da177e4SLinus Torvalds	}
221da177e4SLinus Torvalds
231da177e4SLinus Torvalds
241da177e4SLinus TorvaldsEND	{
251da177e4SLinus Torvalds	  printf("/*\n");
261da177e4SLinus Torvalds	  printf(" * This was automagically generated from %s!\n", FILENAME);
271da177e4SLinus Torvalds	  printf(" * Do NOT edit\n");
281da177e4SLinus Torvalds	  printf(" */\n\n");
291da177e4SLinus Torvalds	  printf("#ifndef __ASM_ARM_MACH_TYPE_H\n");
301da177e4SLinus Torvalds	  printf("#define __ASM_ARM_MACH_TYPE_H\n\n");
311da177e4SLinus Torvalds	  printf("#ifndef __ASSEMBLY__\n");
321da177e4SLinus Torvalds	  printf("/* The type of machine we're running on */\n");
331da177e4SLinus Torvalds	  printf("extern unsigned int __machine_arch_type;\n");
341da177e4SLinus Torvalds	  printf("#endif\n\n");
351da177e4SLinus Torvalds
361da177e4SLinus Torvalds	  printf("/* see arch/arm/kernel/arch.c for a description of these */\n");
371da177e4SLinus Torvalds	  for (i = 0; i < nr; i++)
381da177e4SLinus Torvalds	    if (num[i] ~ /..*/)
391da177e4SLinus Torvalds	      printf("#define %-30s %d\n", mach_type[i], num[i]);
401da177e4SLinus Torvalds
411da177e4SLinus Torvalds	  printf("\n");
421da177e4SLinus Torvalds
431da177e4SLinus Torvalds	  for (i = 0; i < nr; i++)
441da177e4SLinus Torvalds	    if (num[i] ~ /..*/) {
451da177e4SLinus Torvalds	      printf("#ifdef %s\n", config[i]);
461da177e4SLinus Torvalds	      printf("# ifdef machine_arch_type\n");
471da177e4SLinus Torvalds	      printf("#  undef machine_arch_type\n");
481da177e4SLinus Torvalds	      printf("#  define machine_arch_type\t__machine_arch_type\n");
491da177e4SLinus Torvalds	      printf("# else\n");
501da177e4SLinus Torvalds	      printf("#  define machine_arch_type\t%s\n", mach_type[i]);
511da177e4SLinus Torvalds	      printf("# endif\n");
521da177e4SLinus Torvalds	      printf("# define %s()\t(machine_arch_type == %s)\n", machine_is[i], mach_type[i]);
531da177e4SLinus Torvalds	      printf("#else\n");
541da177e4SLinus Torvalds	      printf("# define %s()\t(0)\n", machine_is[i]);
551da177e4SLinus Torvalds	      printf("#endif\n\n");
561da177e4SLinus Torvalds	    }
571da177e4SLinus Torvalds
581da177e4SLinus Torvalds	  printf("/*\n * These have not yet been registered\n */\n");
591da177e4SLinus Torvalds	  for (i = 0; i < nr; i++)
601da177e4SLinus Torvalds	    if (num[i] !~ /..*/)
611da177e4SLinus Torvalds	      printf("/* #define %-30s <<not registered>> */\n", mach_type[i]);
621da177e4SLinus Torvalds
631da177e4SLinus Torvalds	  for (i = 0; i < nr; i++)
641da177e4SLinus Torvalds	    if (num[i] !~ /..*/) {
651da177e4SLinus Torvalds	      printf("#define %s()\t(0)\n", machine_is[i]);
661da177e4SLinus Torvalds	    }
671da177e4SLinus Torvalds
681da177e4SLinus Torvalds	  printf("\n#ifndef machine_arch_type\n");
691da177e4SLinus Torvalds	  printf("#define machine_arch_type\t__machine_arch_type\n");
701da177e4SLinus Torvalds	  printf("#endif\n\n");
711da177e4SLinus Torvalds	  printf("#endif\n");
721da177e4SLinus Torvalds	}
73