#!/bin/bash

if [ $# -ne 1 ]
then
    echo "usage: Ltypes filename" >&2
    exit 2
fi

FILE="$1"
#TMPFILE='mktemp "${FILE}.XXXXXX"' || exit 1
TMPFILE=${FILE}.`date "+%s"`
touch $TMPFILE || exit 1

# Change all the Xilinx types to Linux types and put the result into a temp file
sed	\
	-e 's/\bXTRUE\b/TRUE/g' \
	-e 's/\bXFALSE\b/FALSE/g' \
	-e 's/\bXNULL\b/NULL/g' \
	-e 's/"xenv.h"/<asm\/delay.h>/g' \
	-e 's/\bXENV_USLEEP\b/udelay/g' \
	-e 's/\bXuint8\b/u8/g' \
	-e 's/\bXuint16\b/u16/g' \
	-e 's/\bXuint32\b/u32/g' \
	-e 's/\bXint8\b/s8/g' \
	-e 's/\bXint16\b/s16/g' \
	-e 's/\bXint32\b/s32/g' \
	-e 's/\bXboolean\b/u32/g' \
	"${FILE}" > "${TMPFILE}"

# Overlay the original file with the temp file
mv "${TMPFILE}" "${FILE}"

# Are we doing xbasic_types.h?
if [ "${FILE##*/}" = xbasic_types.h ]
then
    # Remember as you're reading this that we've already gone through the prior
    # sed script.  We need to do some other things to xbasic_types.h:
    #   1) Add ifndefs around TRUE and FALSE defines
    #   2) Remove definition of NULL as NULL
    #   3) Replace most of the primitive types section with a #include
    sed \
	-e '/u32 true/,/#define false/Ic\
#ifndef TRUE\
#define TRUE 1\
#endif\
#ifndef FALSE\
#define FALSE 0\
#endif' \
	-e '/#define[[:space:]][[:space:]]*NULL[[:space:]][[:space:]]*NULL/d' \
	-e '/typedef[[:space:]][[:space:]]*unsigned[[:space:]][[:space:]]*char[[:space:]][[:space:]]*u8/,/typedef[[:space:]][[:space:]]*unsigned[[:space:]][[:space:]]*long[[:space:]][[:space:]]*u32.*boolean/c\
#include <linux/types.h>' \
	"${FILE}" > "${TMPFILE}"

    mv "${TMPFILE}" "${FILE}"
fi
