summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJordan Justen <jordan.l.justen@intel.com>2022-12-28 13:48:53 -0800
committerMarge Bot <emma+marge@anholt.net>2023-08-06 20:44:59 +0000
commitbfe4a0e744d131d1f9e292a514a52c8448bec17e (patch)
tree9e8fb1f41a70f8846db3dbaecc14e46392572837
parentb4c8d2dc45554fc61250f58bf0a2678d90ea6769 (diff)
intel/decoder: Make intel_spec_load_filename() have separate dir and name strings
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com> Acked-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20889>
-rw-r--r--src/intel/common/intel_decoder.c14
-rw-r--r--src/intel/common/intel_decoder.h2
-rw-r--r--src/intel/common/meson.build5
-rw-r--r--src/intel/common/tests/genxml_test.c2
4 files changed, 8 insertions, 15 deletions
diff --git a/src/intel/common/intel_decoder.c b/src/intel/common/intel_decoder.c
index 7a47cbaced2..968d93d2ecc 100644
--- a/src/intel/common/intel_decoder.c
+++ b/src/intel/common/intel_decoder.c
@@ -21,7 +21,6 @@
* IN THE SOFTWARE.
*/
-#include <libgen.h>
#include <stdio.h>
#include <stdbool.h>
#include <stdint.h>
@@ -744,18 +743,9 @@ intel_spec_load(const struct intel_device_info *devinfo)
}
struct intel_spec *
-intel_spec_load_filename(const char *filename)
+intel_spec_load_filename(const char *dir, const char *name)
{
- char *tmp = strdup(filename);
- char *dir = strdup(dirname(tmp));
- free(tmp);
- tmp = strdup(filename);
- char *base = strdup(basename(tmp));
- free(tmp);
- struct intel_spec *spec = intel_spec_load_common(0, dir, base);
- free(dir);
- free(base);
- return spec;
+ return intel_spec_load_common(0, dir, name);
}
struct intel_spec *
diff --git a/src/intel/common/intel_decoder.h b/src/intel/common/intel_decoder.h
index bc87bf06383..f2701a8b944 100644
--- a/src/intel/common/intel_decoder.h
+++ b/src/intel/common/intel_decoder.h
@@ -55,7 +55,7 @@ struct intel_spec *intel_spec_load(const struct intel_device_info *devinfo);
struct intel_spec *
intel_spec_load_from_path(const struct intel_device_info *devinfo,
const char *path);
-struct intel_spec *intel_spec_load_filename(const char *filename);
+struct intel_spec *intel_spec_load_filename(const char *dir, const char *name);
void intel_spec_destroy(struct intel_spec *spec);
uint32_t intel_spec_get_gen(struct intel_spec *spec);
struct intel_group *intel_spec_find_instruction(struct intel_spec *spec,
diff --git a/src/intel/common/meson.build b/src/intel/common/meson.build
index 098cc4c7284..ec6ae6ce20e 100644
--- a/src/intel/common/meson.build
+++ b/src/intel/common/meson.build
@@ -18,6 +18,8 @@
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.
+fs = import('fs')
+
files_libintel_common = files(
'i915/intel_engine.c',
'i915/intel_engine.h',
@@ -114,7 +116,8 @@ if with_tests and not with_platform_android
dependencies : [idep_mesautil, idep_intel_dev],
link_with : libintel_common,
c_args : [
- '-DGENXML_PATH="@0@"'.format(genxml_path)
+ '-DGENXML_DIR="@0@"'.format(fs.parent(genxml_path)),
+ '-DGENXML_FILE="@0@"'.format(fs.name(genxml_path)),
],
),
args : ['-quiet'],
diff --git a/src/intel/common/tests/genxml_test.c b/src/intel/common/tests/genxml_test.c
index cd9bc479a62..10b78f0cc63 100644
--- a/src/intel/common/tests/genxml_test.c
+++ b/src/intel/common/tests/genxml_test.c
@@ -129,7 +129,7 @@ test_two_levels(struct intel_spec *spec) {
int main(int argc, char **argv)
{
- struct intel_spec *spec = intel_spec_load_filename(GENXML_PATH);
+ struct intel_spec *spec = intel_spec_load_filename(GENXML_DIR, GENXML_FILE);
if (argc > 1 && strcmp(argv[1], "-quiet") == 0)
quiet = true;