#!/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"//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 ' \ "${FILE}" > "${TMPFILE}" mv "${TMPFILE}" "${FILE}" fi