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