#!/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/<asm/delay.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
