~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/arch/arm/tools/gen-mach-types

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 #!/bin/awk
  2 # SPDX-License-Identifier: GPL-2.0
  3 #
  4 # Awk script to generate include/generated/mach-types.h
  5 #
  6 BEGIN   { nr = 0 }
  7 /^#/    { next }
  8 /^[     ]*$/ { next }
  9 
 10 NF == 4 {
 11           machine_is[nr] = "machine_is_"$1;
 12           config[nr] = "CONFIG_"$2;
 13           mach_type[nr] = "MACH_TYPE_"$3;
 14           num[nr] = $4; nr++
 15         }
 16 
 17 NF == 3 {
 18           machine_is[nr] = "machine_is_"$1;
 19           config[nr] = "CONFIG_"$2;
 20           mach_type[nr] = "MACH_TYPE_"$3;
 21           num[nr] = ""; nr++
 22         }
 23 
 24 
 25 END     {
 26           printf("/*\n");
 27           printf(" * This was automagically generated from %s!\n", FILENAME);
 28           printf(" * Do NOT edit\n");
 29           printf(" */\n\n");
 30           printf("#ifndef __ASM_ARM_MACH_TYPE_H\n");
 31           printf("#define __ASM_ARM_MACH_TYPE_H\n\n");
 32           printf("#ifndef __ASSEMBLY__\n");
 33           printf("/* The type of machine we're running on */\n");
 34           printf("extern unsigned int __machine_arch_type;\n");
 35           printf("#endif\n\n");
 36 
 37           printf("/* see arch/arm/kernel/arch.c for a description of these */\n");
 38           for (i = 0; i < nr; i++)
 39             if (num[i] ~ /..*/)
 40               printf("#define %-30s %d\n", mach_type[i], num[i]);
 41 
 42           printf("\n");
 43 
 44           for (i = 0; i < nr; i++)
 45             if (num[i] ~ /..*/) {
 46               printf("#ifdef %s\n", config[i]);
 47               printf("# ifdef machine_arch_type\n");
 48               printf("#  undef machine_arch_type\n");
 49               printf("#  define machine_arch_type\t__machine_arch_type\n");
 50               printf("# else\n");
 51               printf("#  define machine_arch_type\t%s\n", mach_type[i]);
 52               printf("# endif\n");
 53               printf("# define %s()\t(machine_arch_type == %s)\n", machine_is[i], mach_type[i]);
 54               printf("#else\n");
 55               printf("# define %s()\t(0)\n", machine_is[i]);
 56               printf("#endif\n\n");
 57             }
 58 
 59           printf("/*\n * These have not yet been registered\n */\n");
 60           for (i = 0; i < nr; i++)
 61             if (num[i] !~ /..*/)
 62               printf("/* #define %-30s <<not registered>> */\n", mach_type[i]);
 63 
 64           for (i = 0; i < nr; i++)
 65             if (num[i] !~ /..*/) {
 66               printf("#define %s()\t(0)\n", machine_is[i]);
 67             }
 68 
 69           printf("\n#ifndef machine_arch_type\n");
 70           printf("#define machine_arch_type\t__machine_arch_type\n");
 71           printf("#endif\n\n");
 72           printf("#endif\n");
 73         }

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php