Skip to content

Commit 5956c13

Browse files
authored
Continue H2yaml migration (#485)
1 parent 7b00d89 commit 5956c13

33 files changed

+162
-657
lines changed

.github/actions/setup-thapi/action.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ runs:
3434
packages: gcc g++ ruby ruby-dev elfutils libelf-dev libpopt-dev libdw-dev libprotobuf-dev protobuf-compiler valgrind libc6-dbg libglib2.0-dev libnuma-dev
3535
- name: Install Ruby Dependencies
3636
shell: bash
37-
run: sudo gem install cast-to-yaml nokogiri babeltrace2 opencl_ruby_ffi metababel
37+
run: sudo gem install nokogiri babeltrace2 opencl_ruby_ffi metababel cast-to-yaml
3838
- name: Set PKG_CONFIG
3939
shell: bash
4040
run: |

README.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -76,15 +76,14 @@ Optional packages:
7676
- `binutils-dev` or `libiberty-dev` for demangling depending on platforms (`demangle.h`)
7777

7878
Ruby Gems:
79-
- `cast-to-yaml`
8079
- `nokogiri`
8180
- `babeltrace2`
8281
- `metababel`
8382

8483
Optional Gem:
8584
- `opencl_ruby_ffi`
8685

87-
Optional pip:
86+
Required pip:
8887
- `h2yaml`
8988

9089
</details>

backends/cuda/Makefile.am

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -77,20 +77,23 @@ clean-local:
7777

7878
EXTRA_DIST += $(srcdir)/include headers.patch
7979

80-
CUDA_EXTRACT = \
81-
$(srcdir)/extract_base.rb
80+
CUDA_EXTRACT_H = $(srcdir)/extract/cuda_api.h $(srcdir)/extract/cudart_api.h
81+
EXTRA_DIST += $(CUDA_EXTRACT_H)
8282

8383
cuda_api_versions.yaml: $(srcdir)/extract_cuda_versions.rb modified_include/cudaTypedefs.h modified_include/cudaVDPAUTypedefs.h modified_include/cudaProfilerTypedefs.h
8484
$(RUBY) $^ > $@
8585

86-
cuda_api.yaml: $(srcdir)/extract_cuda.rb $(CUDA_EXTRACT) modified_include/cuda.h modified_include/cudaVDPAU.h
87-
ENABLE_CLANG_PARSER=$(ENABLE_CLANG_PARSER) $(RUBY) $<
86+
cuda_api.yaml: $(srcdir)/extract/cuda_api.h $(MODIFIED_CUDA_HDR)
87+
h2yaml --compat-cast-to-yaml -Wc,-Imodified_include/ $< > $@
8888

89-
cuda_exports_api.yaml: $(srcdir)/extract_cuda_exports.rb $(CUDA_EXTRACT) modified_include/cuda.h cuda_export_tables.yaml
90-
ENABLE_CLANG_PARSER=$(ENABLE_CLANG_PARSER) SRC_DIR=$(srcdir) $(RUBY) $<
89+
cuda_exports_extract.h: $(srcdir)/gen_cuda_exports_extract.rb $(srcdir)/cuda_export_tables.yaml $(MODIFIED_CUDA_HDR)
90+
SRC_DIR=$(srcdir) $(RUBY) $< > $@
91+
92+
cuda_exports_api.yaml: cuda_exports_extract.h $(MODIFIED_CUDA_HDR)
93+
h2yaml --compat-cast-to-yaml -Wc,-Imodified_include/ --filter-header cuda_exports_extract $< > $@
9194

92-
cudart_api.yaml: $(srcdir)/extract_cudart.rb $(CUDA_EXTRACT) modified_include/cuda_runtime_api.h
93-
ENABLE_CLANG_PARSER=$(ENABLE_CLANG_PARSER) $(RUBY) $<
95+
cudart_api.yaml: $(srcdir)/extract/cudart_api.h $(MODIFIED_CUDA_HDR)
96+
h2yaml --compat-cast-to-yaml -Wc,-Imodified_include/ $< > $@
9497

9598
CUDA_EXTRACTED = \
9699
cuda_api.yaml \
@@ -100,14 +103,11 @@ CUDA_EXTRACTED = \
100103
CUDART_EXTRACTED = \
101104
cudart_api.yaml
102105

103-
CLEANFILES += $(CUDA_EXTRACTED) $(CUDART_EXTRACTED)
106+
CLEANFILES += $(CUDA_EXTRACTED) $(CUDART_EXTRACTED) cuda_exports_extract.h
104107

105108
EXTRA_DIST += \
106-
extract_base.rb \
107-
extract_cuda.rb \
108-
extract_cuda_exports.rb \
109-
extract_cuda_versions.rb \
110-
extract_cudart.rb
109+
gen_cuda_exports_extract.rb \
110+
extract_cuda_versions.rb
111111

112112
cuda_exports.h.include: $(srcdir)/gen_cude_exports_include.rb cuda_export_tables.yaml
113113
SRC_DIR=$(srcdir) $(RUBY) $< > $@

backends/cuda/extract/cuda_api.h

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
#define __CUDA_API_VERSION_INTERNAL = 1
2+
#define THAPI_NO_INCLUDE
3+
4+
#include <stdint.h>
5+
6+
#include <cuda.h>
7+
8+
typedef int32_t VdpStatus;
9+
typedef uint32_t VdpFuncId;
10+
typedef uint32_t VdpDevice;
11+
typedef VdpStatus
12+
VdpGetProcAddress(VdpDevice device, VdpFuncId function_id, void **function_pointer);
13+
typedef uint32_t VdpVideoSurface;
14+
typedef uint32_t VdpOutputSurface;
15+
16+
#include <cudaVDPAU.h>
17+
18+
#include <cudaProfiler.h>

backends/cuda/extract/cudart_api.h

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
#define __CUDA_API_VERSION_INTERNAL = 1
2+
#define THAPI_NO_INCLUDE
3+
4+
#include <stdint.h>
5+
6+
#include <cuda_runtime_api.h>
7+
8+
#include <__cudart.h>
9+
10+
typedef int32_t VdpStatus;
11+
typedef uint32_t VdpFuncId;
12+
typedef uint32_t VdpDevice;
13+
typedef VdpStatus
14+
VdpGetProcAddress(VdpDevice device, VdpFuncId function_id, void **function_pointer);
15+
typedef uint32_t VdpVideoSurface;
16+
typedef uint32_t VdpOutputSurface;
17+
18+
#include <cuda_vdpau_interop.h>
19+
20+
#include <cuda_profiler_api.h>

backends/cuda/extract_base.rb

Lines changed: 0 additions & 46 deletions
This file was deleted.

backends/cuda/extract_cuda.rb

Lines changed: 0 additions & 51 deletions
This file was deleted.

backends/cuda/extract_cuda_exports.rb

Lines changed: 0 additions & 56 deletions
This file was deleted.

backends/cuda/extract_cudart.rb

Lines changed: 0 additions & 54 deletions
This file was deleted.
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
require 'yaml'
2+
3+
SRC_DIR = ENV['SRC_DIR'] || '.'
4+
export_tables = YAML.load_file(File.join(SRC_DIR, 'cuda_export_tables.yaml'))
5+
6+
puts <<~EOF
7+
#define __CUDA_API_VERSION_INTERNAL=1
8+
#define THAPI_NO_INCLUDE
9+
#include <cuda.h>
10+
EOF
11+
12+
export_tables.each do |table|
13+
if table['structures']
14+
table['structures'].each do |struct|
15+
puts <<~EOF
16+
typedef
17+
#{struct['declaration']}
18+
#{struct['name']};
19+
EOF
20+
end
21+
end
22+
table['functions'].each do |function|
23+
puts <<~EOF
24+
#{function['declaration']};
25+
EOF
26+
end
27+
end

0 commit comments

Comments
 (0)