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