#!/bin/sh

# Copyright 2018 The Go Authors. All rights reserved.
# Use of this source code is governed by a BSD-style
# license that can be found in the LICENSE file.

# Create tmp-runtime.inc from runtime.inc.raw.

IN=runtime.inc.raw
OUT=tmp-runtime.inc

rm -f runtime.inc.tmp2 runtime.inc.tmp3

# _Complex_lock and _Reader_lock are Go translations of some AIX system
# types and should not be exported back to C
# semt is a Go translation of the C type sem_t; it fails to convert on
# some systems and need not be exported back to C.
# sigset conflicts with system type sigset on AIX, so we need to rename it.
# boundsError has a field name that is a C keyword, and we don't need it.
# mSpanInuse is both a constant and a field name, and we don't need it.

grep -v "#define _" ${IN} | grep -v "#define [cm][01234] " | grep -v "#define empty " | grep -v "#define \\$" | grep -v "#define mSpanInUse " > runtime.inc.tmp2
for pattern in '_[GP][a-z]' _Max _Lock _Sig _Trace _MHeap _Num
do
  grep "#define $pattern" ${IN} >> runtime.inc.tmp2
done
TYPES="_Complex_lock _Reader_lock semt boundsError"
for TYPE in $TYPES
do
  sed -e '/struct '${TYPE}' {/,/^}/s/^.*$//' runtime.inc.tmp2 > runtime.inc.tmp3;
  mv runtime.inc.tmp3 runtime.inc.tmp2
done
sed -e 's/sigset/sigset_go/' runtime.inc.tmp2 > runtime.inc.tmp3
mv runtime.inc.tmp3 runtime.inc.tmp2

# Make all the fields of type structs const.
sed -e '/struct .*type {/,/^}/ s/	\(.*;\)/	const \1/' < runtime.inc.tmp2 > runtime.inc.tmp3
mv -f runtime.inc.tmp3 ${OUT}

rm -f runtime.inc.tmp2 runtime.inc.tmp3
exit 0
