#!/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///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