1#!/bin/sh 2# usage: binfile [-i] [-a <align>] <target-src.S> <binary-file> <varname> 3# -a <align> align data at 2^<align> boundary (default: byte alignment) 4# -i add to .init.rodata (default: .rodata) section 5 6section="" 7align=0 8 9OPTIND=1 10while getopts "ia:" opt; do 11 case "$opt" in 12 i) 13 section=".init" 14 ;; 15 a) 16 align=$OPTARG 17 ;; 18 esac 19done 20SHIFT=$((OPTIND-1)) 21shift $SHIFT 22 23target=$1 24binsource=$2 25varname=$3 26 27cat <<EOF >$target 28#include <xen/linkage.h> 29 30 .section $section.rodata, "a", %progbits 31 32DATA($varname, 1 << $align) 33 .incbin "$binsource" 34.Lend: 35END($varname) 36 37 ASM_INT(${varname}_size, .Lend - $varname) 38EOF 39