rggen-c-header 0.3.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5dbb6ddb7c867f003e9ba685413ac4d3deb5ae9978ef5e59cca1919de9c51378
4
- data.tar.gz: 34f5d2b0bec9eba0c63bec761ec8927214c118ddf70d3b9a4ae17ca6f9cd5c54
3
+ metadata.gz: 30f0dce81928cecf5804e27e906c88ab4f7df5e72a294668b5a9675c3f968ae2
4
+ data.tar.gz: d3c9119cddd83be565e659f740ea9563a15393f1b5db8c9cb8bea2a28f7b4305
5
5
  SHA512:
6
- metadata.gz: a862a0468553d95a8bd094ebf309f53d0745c23619109491b30b968d1bf0200df2bb5d014c632791e04bffc54db4d13ae9447496cbd5541ef44f8a8863475b02
7
- data.tar.gz: 7e97c33f3efe07cc93cfb3d09447393b2ddb121de7751cc07a1c1b44fa2d465ac24a20ca96f671544adcac708952050519c1b0a8c6611f1ddea854468b8cd771
6
+ metadata.gz: dc3b82bd281ad746968e4003a1a9c03daf9e6e4796a6ab60d269a73984578194589e5a0ce3fe18ce9bf5e1a189318fe6aa9ca8f3d0a4beaea5eccd67ca4ddf94
7
+ data.tar.gz: 6a34fdb593629dde8edc33f36fbdf3316911fb2ca77624d5d91fc1c94c621337955aca00045a714c6d21412114afbe38589b1484c60ea324dfd30fe9fb8a03b8
@@ -6,6 +6,7 @@ RgGen.define_simple_feature(:bit_field, :c_header) do
6
6
  define_macro("#{full_name}_bit_width", width)
7
7
  define_macro("#{full_name}_bit_mask", mask)
8
8
  define_offset_macro
9
+ define_label_macros
9
10
  end
10
11
 
11
12
  private
@@ -27,5 +28,13 @@ RgGen.define_simple_feature(:bit_field, :c_header) do
27
28
  define_macro("#{full_name}_bit_offset", bit_field.lsb)
28
29
  end
29
30
  end
31
+
32
+ def define_label_macros
33
+ bit_field.labels.each do |label|
34
+ name = "#{full_name}_#{label.name}"
35
+ value = hex(label.value, bit_field.width)
36
+ define_macro(name, value)
37
+ end
38
+ end
30
39
  end
31
40
  end
@@ -10,7 +10,7 @@ RgGen.define_simple_feature(:register, :c_header) do
10
10
  end
11
11
 
12
12
  export def declaration
13
- type = "uint#{register.width}_t"
13
+ type = "uint#{entry_width}_t"
14
14
  name = register.name
15
15
  size = !shared_address? && register.size || nil
16
16
  create_declaration(type, name, size)
@@ -23,7 +23,11 @@ RgGen.define_simple_feature(:register, :c_header) do
23
23
  end
24
24
 
25
25
  def byte_size
26
- register.byte_size(hierarchical: true)
26
+ register.total_byte_size(hierarchical: true)
27
+ end
28
+
29
+ def entry_width
30
+ register.entry_byte_size * 8
27
31
  end
28
32
 
29
33
  def array?
@@ -21,7 +21,7 @@ RgGen.define_simple_feature(:register_file, :c_header) do
21
21
  end
22
22
 
23
23
  def byte_size
24
- register_file.byte_size(false)
24
+ register_file.entry_byte_size
25
25
  end
26
26
  end
27
27
  end
@@ -28,9 +28,9 @@ module RgGen
28
28
  def define_struct_member(offset)
29
29
  entries = select_children_by_offset(offset)
30
30
  if entries.size >= 2
31
- [define_shared_union(offset, entries), entries.first.byte_size]
31
+ [define_shared_union(offset, entries), entries.first.total_byte_size]
32
32
  elsif entries.size == 1
33
- [entries.first.declaration, entries.first.byte_size]
33
+ [entries.first.declaration, entries.first.total_byte_size]
34
34
  else
35
35
  [reserved_member(offset), bus_byte_width]
36
36
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module RgGen
4
4
  module CHeader
5
- VERSION = '0.3.0'
5
+ VERSION = '0.4.0'
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rggen-c-header
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Taichi Ishitani
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-01-02 00:00:00.000000000 Z
11
+ date: 2023-04-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -72,8 +72,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
72
72
  - !ruby/object:Gem::Version
73
73
  version: '0'
74
74
  requirements: []
75
- rubygems_version: 3.4.1
75
+ rubygems_version: 3.4.10
76
76
  signing_key:
77
77
  specification_version: 4
78
- summary: rggen-c-header-0.3.0
78
+ summary: rggen-c-header-0.4.0
79
79
  test_files: []