/* This file is autogenerated by tracetool, do not edit. */
/* SPDX-License-Identifier: GPL-2.0-or-later */

provider qemu {

probe test_blah(void * context,const char * filename);

probe test_wibble(void * context,int value);

};
