freedreno/rnn: also look for .xml.gz

libxml2 can load gzip compressed files, so lets look for these too.
This will be useful for installing the register database so that an
installed cffdump/crashdec can use them.  But it isn't too useful
to be able to edit the installed register database, so we can gzip
them to use less disk space.

Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6154>
This commit is contained in:
Rob Clark 2020-08-02 10:00:02 -07:00 committed by Marge Bot
parent 8efdd388e0
commit bf425b7e51

View file

@ -38,20 +38,25 @@ FILE *find_in_path(const char *name, const char *path, char **pfullname) {
plen = strlen(path);
}
if (plen) {
char *fullname = malloc(strlen(name) + plen + 2);
strncpy(fullname, path, plen);
fullname[plen] = '/';
fullname[plen+1] = 0;
strcat(fullname, name);
FILE *file = fopen(fullname, "r");
if (file) {
if (pfullname)
*pfullname = fullname;
else
free(fullname);
return file;
/* also look for .gz compressed xml: */
const char *exts[] = { "", ".gz" };
for (int i = 0; i < ARRAY_SIZE(exts); i++) {
char *fullname;
int ret = asprintf(&fullname, "%.*s/%s%s", (int)plen, path, name, exts[i]);
if (ret < 0)
return NULL;
FILE *file = fopen(fullname, "r");
if (file) {
if (pfullname)
*pfullname = fullname;
else
free(fullname);
return file;
}
free(fullname);
}
free(fullname);
}
path = npath;
}