xref: /illumos-gate/usr/src/tools/smatch/src/smatch_scripts/add_gfp_to_allocations.sh (revision 1f5207b7604fb44407eb4342aff613f7c4508508)
1*1f5207b7SJohn Levon#!/bin/bash
2*1f5207b7SJohn Levon
3*1f5207b7SJohn Levonif ! test -e kernel.allocation_funcs || ! test -e kernel.gfp_flags ; then
4*1f5207b7SJohn Levon    echo "We need the kernel.allocation_funcs and the kernel.gfp_flags files"
5*1f5207b7SJohn Levon    echo "The scripts to generate them are in smatch_data/"
6*1f5207b7SJohn Levon    exit 1
7*1f5207b7SJohn Levonfi
8*1f5207b7SJohn Levon
9*1f5207b7SJohn Levonbin_dir=$(dirname $0)
10*1f5207b7SJohn Levonremove=$(echo ${bin_dir}/../smatch_data/kernel.allocation_funcs_gfp.remove)
11*1f5207b7SJohn Levontmp=$(mktemp /tmp/smatch.XXXX)
12*1f5207b7SJohn Levon
13*1f5207b7SJohn Levonecho "// Automatically generated by add_gfp_to_allocations.sh" > kernel.allocation_funcs_gfp
14*1f5207b7SJohn Levonfor i in $(grep -v "//" kernel.allocation_funcs) ; do
15*1f5207b7SJohn Levon    if ! grep -w $i kernel.gfp_flags ; then
16*1f5207b7SJohn Levon	echo $i X
17*1f5207b7SJohn Levon    fi
18*1f5207b7SJohn Levondone >> $tmp
19*1f5207b7SJohn Levon
20*1f5207b7SJohn Levoncat $tmp $remove $remove 2> /dev/null | sort | uniq -u >> kernel.allocation_funcs_gfp
21*1f5207b7SJohn Levonrm $tmp
22*1f5207b7SJohn Levon
23*1f5207b7SJohn Levonecho "Done.  Created kernel.allocation_funcs_gfp"
24