X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=app%2Ftest%2Fresource.h;h=1e961221332512d4501d5f674cbbdc2977836702;hb=2ee926f1fd00ff3565ac7bf05957e36b8be5aa61;hp=9af8415609a0fe244278b510ec765c1893d98743;hpb=fe6923cbfd7619e6650e8f5ae6bbbc949273059b;p=dpdk.git diff --git a/app/test/resource.h b/app/test/resource.h index 9af8415609..1e96122133 100644 --- a/app/test/resource.h +++ b/app/test/resource.h @@ -45,6 +45,7 @@ */ #include +#include #include #include @@ -74,6 +75,32 @@ size_t resource_size(const struct resource *r); */ const struct resource *resource_find(const char *name); +/** + * Write the raw data of the resource to the given file. + * @return 0 on success + */ +int resource_fwrite(const struct resource *r, FILE *f); + +/** + * Write the raw data of the resource to the given file given by name. + * The name is relative to the current working directory. + * @return 0 on success + */ +int resource_fwrite_file(const struct resource *r, const char *fname); + +/** + * Treat the given resource as a tar archive. Extract + * the archive to the current directory. + */ +int resource_untar(const struct resource *res); + +/** + * Treat the given resource as a tar archive. Remove + * all files (related to the current directory) listed + * in the tar archive. + */ +int resource_rm_by_tar(const struct resource *res); + /** * Register a resource in the global list of resources. * Not intended for direct use, please check the REGISTER_RESOURCE @@ -81,6 +108,16 @@ const struct resource *resource_find(const char *name); */ void resource_register(struct resource *r); +/** + * Definition of a resource linked externally (by means of the used toolchain). + * Only the base name of the resource is expected. The name refers to the + * linked pointers beg_ and end_ provided externally. + */ +#define REGISTER_LINKED_RESOURCE(n) \ +extern const char beg_ ##n; \ +extern const char end_ ##n; \ +REGISTER_RESOURCE(n, &beg_ ##n, &end_ ##n) \ + /** * Definition of a resource described by its name, and pointers begin, end. */