datadog-ruby_core_source 3.5.3 → 3.5.5

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.
Files changed (357) hide show
  1. checksums.yaml +4 -4
  2. data/datadog-ruby_core_source.gemspec +1 -1
  3. data/lib/datadog/ruby_core_source/ruby-2.5.0-p0/thread_win32.h +36 -0
  4. data/lib/datadog/ruby_core_source/ruby-2.5.1-p57/thread_win32.h +36 -0
  5. data/lib/datadog/ruby_core_source/ruby-2.5.4-p155/thread_win32.h +36 -0
  6. data/lib/datadog/ruby_core_source/ruby-2.6.0-p0/ccan/build_assert/build_assert.h +40 -0
  7. data/lib/datadog/ruby_core_source/ruby-2.6.0-p0/ccan/check_type/check_type.h +63 -0
  8. data/lib/datadog/ruby_core_source/ruby-2.6.0-p0/ccan/container_of/container_of.h +142 -0
  9. data/lib/datadog/ruby_core_source/ruby-2.6.0-p0/ccan/list/list.h +788 -0
  10. data/lib/datadog/ruby_core_source/ruby-2.6.0-p0/ccan/str/str.h +16 -0
  11. data/lib/datadog/ruby_core_source/ruby-2.6.0-p0/id.h +252 -0
  12. data/lib/datadog/ruby_core_source/ruby-2.6.0-p0/internal.h +2465 -0
  13. data/lib/datadog/ruby_core_source/ruby-2.6.0-p0/iseq.h +304 -0
  14. data/lib/datadog/ruby_core_source/ruby-2.6.0-p0/method.h +229 -0
  15. data/lib/datadog/ruby_core_source/ruby-2.6.0-p0/node.h +449 -0
  16. data/lib/datadog/ruby_core_source/ruby-2.6.0-p0/ruby_assert.h +60 -0
  17. data/lib/datadog/ruby_core_source/ruby-2.6.0-p0/ruby_atomic.h +244 -0
  18. data/lib/datadog/ruby_core_source/ruby-2.6.0-p0/thread_pthread.h +75 -0
  19. data/lib/datadog/ruby_core_source/ruby-2.6.0-p0/thread_win32.h +36 -0
  20. data/lib/datadog/ruby_core_source/ruby-2.6.0-p0/vm_core.h +1902 -0
  21. data/lib/datadog/ruby_core_source/ruby-2.6.0-p0/vm_opts.h +70 -0
  22. data/lib/datadog/ruby_core_source/ruby-2.7.0-p0/ccan/build_assert/build_assert.h +40 -0
  23. data/lib/datadog/ruby_core_source/ruby-2.7.0-p0/ccan/check_type/check_type.h +63 -0
  24. data/lib/datadog/ruby_core_source/ruby-2.7.0-p0/ccan/container_of/container_of.h +142 -0
  25. data/lib/datadog/ruby_core_source/ruby-2.7.0-p0/ccan/list/list.h +788 -0
  26. data/lib/datadog/ruby_core_source/ruby-2.7.0-p0/ccan/str/str.h +16 -0
  27. data/lib/datadog/ruby_core_source/ruby-2.7.0-p0/id.h +290 -0
  28. data/lib/datadog/ruby_core_source/ruby-2.7.0-p0/internal.h +2697 -0
  29. data/lib/datadog/ruby_core_source/ruby-2.7.0-p0/iseq.h +312 -0
  30. data/lib/datadog/ruby_core_source/ruby-2.7.0-p0/method.h +229 -0
  31. data/lib/datadog/ruby_core_source/ruby-2.7.0-p0/node.h +476 -0
  32. data/lib/datadog/ruby_core_source/ruby-2.7.0-p0/ruby_assert.h +15 -0
  33. data/lib/datadog/ruby_core_source/ruby-2.7.0-p0/ruby_atomic.h +244 -0
  34. data/lib/datadog/ruby_core_source/ruby-2.7.0-p0/thread_pthread.h +75 -0
  35. data/lib/datadog/ruby_core_source/ruby-2.7.0-p0/thread_win32.h +36 -0
  36. data/lib/datadog/ruby_core_source/ruby-2.7.0-p0/vm_core.h +1968 -0
  37. data/lib/datadog/ruby_core_source/ruby-2.7.0-p0/vm_opts.h +72 -0
  38. data/lib/datadog/ruby_core_source/ruby-3.0.0-p0/ccan/build_assert/build_assert.h +40 -0
  39. data/lib/datadog/ruby_core_source/ruby-3.0.0-p0/ccan/check_type/check_type.h +63 -0
  40. data/lib/datadog/ruby_core_source/ruby-3.0.0-p0/ccan/container_of/container_of.h +142 -0
  41. data/lib/datadog/ruby_core_source/ruby-3.0.0-p0/ccan/list/list.h +788 -0
  42. data/lib/datadog/ruby_core_source/ruby-3.0.0-p0/ccan/str/str.h +16 -0
  43. data/lib/datadog/ruby_core_source/ruby-3.0.0-p0/id.h +290 -0
  44. data/lib/datadog/ruby_core_source/ruby-3.0.0-p0/id_table.h +36 -0
  45. data/lib/datadog/ruby_core_source/ruby-3.0.0-p0/internal/array.h +119 -0
  46. data/lib/datadog/ruby_core_source/ruby-3.0.0-p0/internal/class.h +174 -0
  47. data/lib/datadog/ruby_core_source/ruby-3.0.0-p0/internal/compilers.h +108 -0
  48. data/lib/datadog/ruby_core_source/ruby-3.0.0-p0/internal/gc.h +161 -0
  49. data/lib/datadog/ruby_core_source/ruby-3.0.0-p0/internal/imemo.h +243 -0
  50. data/lib/datadog/ruby_core_source/ruby-3.0.0-p0/internal/serial.h +24 -0
  51. data/lib/datadog/ruby_core_source/ruby-3.0.0-p0/internal/static_assert.h +17 -0
  52. data/lib/datadog/ruby_core_source/ruby-3.0.0-p0/internal/vm.h +136 -0
  53. data/lib/datadog/ruby_core_source/ruby-3.0.0-p0/internal/warnings.h +17 -0
  54. data/lib/datadog/ruby_core_source/ruby-3.0.0-p0/internal.h +107 -0
  55. data/lib/datadog/ruby_core_source/ruby-3.0.0-p0/iseq.h +305 -0
  56. data/lib/datadog/ruby_core_source/ruby-3.0.0-p0/method.h +245 -0
  57. data/lib/datadog/ruby_core_source/ruby-3.0.0-p0/node.h +484 -0
  58. data/lib/datadog/ruby_core_source/ruby-3.0.0-p0/ractor_core.h +343 -0
  59. data/lib/datadog/ruby_core_source/{ruby-3.4.0-p0/internal/dir.h → ruby-3.0.0-p0/ruby_assert.h} +7 -8
  60. data/lib/datadog/ruby_core_source/ruby-3.0.0-p0/ruby_atomic.h +23 -0
  61. data/lib/datadog/ruby_core_source/ruby-3.0.0-p0/thread_pthread.h +115 -0
  62. data/lib/datadog/ruby_core_source/ruby-3.0.0-p0/thread_win32.h +61 -0
  63. data/lib/datadog/ruby_core_source/ruby-3.0.0-p0/vm_core.h +2023 -0
  64. data/lib/datadog/ruby_core_source/ruby-3.0.0-p0/vm_debug.h +116 -0
  65. data/lib/datadog/ruby_core_source/ruby-3.0.0-p0/vm_opts.h +73 -0
  66. data/lib/datadog/ruby_core_source/ruby-3.1.0-p0/ccan/build_assert/build_assert.h +40 -0
  67. data/lib/datadog/ruby_core_source/ruby-3.1.0-p0/ccan/check_type/check_type.h +63 -0
  68. data/lib/datadog/ruby_core_source/ruby-3.1.0-p0/ccan/container_of/container_of.h +142 -0
  69. data/lib/datadog/ruby_core_source/ruby-3.1.0-p0/ccan/list/list.h +788 -0
  70. data/lib/datadog/ruby_core_source/ruby-3.1.0-p0/ccan/str/str.h +16 -0
  71. data/lib/datadog/ruby_core_source/ruby-3.1.0-p0/darray.h +198 -0
  72. data/lib/datadog/ruby_core_source/ruby-3.1.0-p0/id.h +293 -0
  73. data/lib/datadog/ruby_core_source/ruby-3.1.0-p0/id_table.h +36 -0
  74. data/lib/datadog/ruby_core_source/ruby-3.1.0-p0/internal/array.h +113 -0
  75. data/lib/datadog/ruby_core_source/ruby-3.1.0-p0/internal/class.h +196 -0
  76. data/lib/datadog/ruby_core_source/ruby-3.1.0-p0/internal/compilers.h +107 -0
  77. data/lib/datadog/ruby_core_source/ruby-3.1.0-p0/internal/gc.h +186 -0
  78. data/lib/datadog/ruby_core_source/ruby-3.1.0-p0/internal/imemo.h +243 -0
  79. data/lib/datadog/ruby_core_source/ruby-3.1.0-p0/internal/serial.h +23 -0
  80. data/lib/datadog/ruby_core_source/{ruby-3.3.5-p100/internal/loadpath.h → ruby-3.1.0-p0/internal/static_assert.h} +8 -8
  81. data/lib/datadog/ruby_core_source/ruby-3.1.0-p0/internal/vm.h +133 -0
  82. data/lib/datadog/ruby_core_source/ruby-3.1.0-p0/internal/warnings.h +16 -0
  83. data/lib/datadog/ruby_core_source/ruby-3.1.0-p0/internal.h +109 -0
  84. data/lib/datadog/ruby_core_source/ruby-3.1.0-p0/iseq.h +322 -0
  85. data/lib/datadog/ruby_core_source/ruby-3.1.0-p0/method.h +253 -0
  86. data/lib/datadog/ruby_core_source/ruby-3.1.0-p0/node.h +510 -0
  87. data/lib/datadog/ruby_core_source/ruby-3.1.0-p0/ractor_core.h +346 -0
  88. data/lib/datadog/ruby_core_source/{ruby-3.3.0-p0/internal/dir.h → ruby-3.1.0-p0/ruby_assert.h} +6 -8
  89. data/lib/datadog/ruby_core_source/ruby-3.1.0-p0/ruby_atomic.h +23 -0
  90. data/lib/datadog/ruby_core_source/ruby-3.1.0-p0/thread_pthread.h +115 -0
  91. data/lib/datadog/ruby_core_source/ruby-3.1.0-p0/vm_core.h +2107 -0
  92. data/lib/datadog/ruby_core_source/ruby-3.1.0-p0/vm_debug.h +124 -0
  93. data/lib/datadog/ruby_core_source/ruby-3.1.0-p0/vm_opts.h +73 -0
  94. data/lib/datadog/ruby_core_source/ruby-3.2.0-p0/ccan/build_assert/build_assert.h +40 -0
  95. data/lib/datadog/ruby_core_source/ruby-3.2.0-p0/ccan/check_type/check_type.h +63 -0
  96. data/lib/datadog/ruby_core_source/ruby-3.2.0-p0/ccan/container_of/container_of.h +142 -0
  97. data/lib/datadog/ruby_core_source/ruby-3.2.0-p0/ccan/list/list.h +789 -0
  98. data/lib/datadog/ruby_core_source/ruby-3.2.0-p0/ccan/str/str.h +17 -0
  99. data/lib/datadog/ruby_core_source/ruby-3.2.0-p0/id.h +299 -0
  100. data/lib/datadog/ruby_core_source/ruby-3.2.0-p0/id_table.h +39 -0
  101. data/lib/datadog/ruby_core_source/ruby-3.2.0-p0/internal/array.h +163 -0
  102. data/lib/datadog/ruby_core_source/ruby-3.2.0-p0/internal/basic_operators.h +64 -0
  103. data/lib/datadog/ruby_core_source/ruby-3.2.0-p0/internal/class.h +182 -0
  104. data/lib/datadog/ruby_core_source/ruby-3.2.0-p0/internal/compilers.h +107 -0
  105. data/lib/datadog/ruby_core_source/ruby-3.2.0-p0/internal/gc.h +192 -0
  106. data/lib/datadog/ruby_core_source/ruby-3.2.0-p0/internal/imemo.h +242 -0
  107. data/lib/datadog/ruby_core_source/ruby-3.2.0-p0/internal/serial.h +23 -0
  108. data/lib/datadog/ruby_core_source/{ruby-3.3.0-p0/internal/loadpath.h → ruby-3.2.0-p0/internal/static_assert.h} +8 -8
  109. data/lib/datadog/ruby_core_source/ruby-3.2.0-p0/internal/vm.h +134 -0
  110. data/lib/datadog/ruby_core_source/ruby-3.2.0-p0/internal/warnings.h +16 -0
  111. data/lib/datadog/ruby_core_source/ruby-3.2.0-p0/internal.h +113 -0
  112. data/lib/datadog/ruby_core_source/ruby-3.2.0-p0/iseq.h +329 -0
  113. data/lib/datadog/ruby_core_source/ruby-3.2.0-p0/method.h +254 -0
  114. data/lib/datadog/ruby_core_source/ruby-3.2.0-p0/node.h +514 -0
  115. data/lib/datadog/ruby_core_source/ruby-3.2.0-p0/ractor_core.h +342 -0
  116. data/lib/datadog/ruby_core_source/{ruby-3.3.5-p100/internal/dir.h → ruby-3.2.0-p0/ruby_assert.h} +6 -8
  117. data/lib/datadog/ruby_core_source/ruby-3.2.0-p0/ruby_atomic.h +23 -0
  118. data/lib/datadog/ruby_core_source/ruby-3.2.0-p0/shape.h +232 -0
  119. data/lib/datadog/ruby_core_source/ruby-3.2.0-p0/thread_none.h +20 -0
  120. data/lib/datadog/ruby_core_source/ruby-3.2.0-p0/thread_pthread.h +133 -0
  121. data/lib/datadog/ruby_core_source/ruby-3.2.0-p0/vm_core.h +2106 -0
  122. data/lib/datadog/ruby_core_source/ruby-3.2.0-p0/vm_debug.h +122 -0
  123. data/lib/datadog/ruby_core_source/ruby-3.2.0-p0/vm_opts.h +73 -0
  124. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/constant.h +53 -0
  125. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/debug_counter.h +423 -0
  126. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/vm_sync.h +137 -0
  127. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/constant.h +53 -0
  128. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/debug_counter.h +423 -0
  129. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/vm_sync.h +137 -0
  130. data/lib/datadog/ruby_core_source/ruby-3.4.0-p0/constant.h +53 -0
  131. data/lib/datadog/ruby_core_source/ruby-3.4.0-p0/debug_counter.h +423 -0
  132. data/lib/datadog/ruby_core_source/ruby-3.4.0-p0/vm_sync.h +137 -0
  133. data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/constant.h +53 -0
  134. data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/debug_counter.h +425 -0
  135. data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/vm_sync.h +160 -0
  136. data/lib/datadog/ruby_core_source/ruby-4.0.6-p0/constant.h +53 -0
  137. data/lib/datadog/ruby_core_source/ruby-4.0.6-p0/debug_counter.h +426 -0
  138. data/lib/datadog/ruby_core_source/ruby-4.0.6-p0/vm_sync.h +160 -0
  139. data/lib/datadog/ruby_core_source/version.rb +1 -1
  140. metadata +140 -226
  141. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/internal/bignum.h +0 -244
  142. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/internal/bits.h +0 -568
  143. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/internal/cmdlineopt.h +0 -65
  144. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/internal/compar.h +0 -29
  145. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/internal/compile.h +0 -34
  146. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/internal/complex.h +0 -29
  147. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/internal/cont.h +0 -35
  148. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/internal/enc.h +0 -19
  149. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/internal/encoding.h +0 -35
  150. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/internal/enum.h +0 -18
  151. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/internal/enumerator.h +0 -21
  152. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/internal/error.h +0 -216
  153. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/internal/eval.h +0 -32
  154. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/internal/file.h +0 -38
  155. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/internal/fixnum.h +0 -184
  156. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/internal/hash.h +0 -191
  157. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/internal/inits.h +0 -50
  158. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/internal/io.h +0 -137
  159. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/internal/load.h +0 -18
  160. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/internal/math.h +0 -23
  161. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/internal/missing.h +0 -18
  162. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/internal/numeric.h +0 -273
  163. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/internal/object.h +0 -60
  164. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/internal/parse.h +0 -108
  165. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/internal/proc.h +0 -30
  166. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/internal/process.h +0 -124
  167. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/internal/ractor.h +0 -6
  168. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/internal/random.h +0 -17
  169. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/internal/range.h +0 -40
  170. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/internal/rational.h +0 -71
  171. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/internal/re.h +0 -28
  172. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/internal/ruby_parser.h +0 -69
  173. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/internal/sanitizers.h +0 -186
  174. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/internal/signal.h +0 -25
  175. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/internal/string.h +0 -159
  176. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/internal/struct.h +0 -127
  177. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/internal/symbol.h +0 -45
  178. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/internal/thread.h +0 -78
  179. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/internal/time.h +0 -34
  180. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/internal/transcode.h +0 -23
  181. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/internal/util.h +0 -27
  182. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/prism/extension.h +0 -18
  183. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/internal/bignum.h +0 -244
  184. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/internal/bits.h +0 -568
  185. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/internal/cmdlineopt.h +0 -65
  186. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/internal/compar.h +0 -29
  187. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/internal/compile.h +0 -34
  188. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/internal/complex.h +0 -29
  189. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/internal/cont.h +0 -35
  190. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/internal/enc.h +0 -19
  191. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/internal/encoding.h +0 -35
  192. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/internal/enum.h +0 -18
  193. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/internal/enumerator.h +0 -21
  194. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/internal/error.h +0 -216
  195. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/internal/eval.h +0 -33
  196. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/internal/file.h +0 -38
  197. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/internal/fixnum.h +0 -184
  198. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/internal/hash.h +0 -191
  199. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/internal/inits.h +0 -50
  200. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/internal/io.h +0 -137
  201. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/internal/load.h +0 -18
  202. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/internal/math.h +0 -23
  203. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/internal/missing.h +0 -18
  204. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/internal/numeric.h +0 -273
  205. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/internal/object.h +0 -62
  206. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/internal/parse.h +0 -108
  207. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/internal/proc.h +0 -30
  208. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/internal/process.h +0 -124
  209. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/internal/ractor.h +0 -6
  210. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/internal/random.h +0 -17
  211. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/internal/range.h +0 -40
  212. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/internal/rational.h +0 -71
  213. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/internal/re.h +0 -28
  214. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/internal/ruby_parser.h +0 -69
  215. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/internal/sanitizers.h +0 -186
  216. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/internal/signal.h +0 -25
  217. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/internal/string.h +0 -160
  218. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/internal/struct.h +0 -127
  219. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/internal/symbol.h +0 -45
  220. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/internal/thread.h +0 -78
  221. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/internal/time.h +0 -34
  222. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/internal/transcode.h +0 -23
  223. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/internal/util.h +0 -27
  224. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/prism/extension.h +0 -18
  225. data/lib/datadog/ruby_core_source/ruby-3.4.0-p0/internal/bignum.h +0 -244
  226. data/lib/datadog/ruby_core_source/ruby-3.4.0-p0/internal/bits.h +0 -650
  227. data/lib/datadog/ruby_core_source/ruby-3.4.0-p0/internal/cmdlineopt.h +0 -65
  228. data/lib/datadog/ruby_core_source/ruby-3.4.0-p0/internal/compar.h +0 -29
  229. data/lib/datadog/ruby_core_source/ruby-3.4.0-p0/internal/compile.h +0 -34
  230. data/lib/datadog/ruby_core_source/ruby-3.4.0-p0/internal/complex.h +0 -29
  231. data/lib/datadog/ruby_core_source/ruby-3.4.0-p0/internal/cont.h +0 -35
  232. data/lib/datadog/ruby_core_source/ruby-3.4.0-p0/internal/enc.h +0 -19
  233. data/lib/datadog/ruby_core_source/ruby-3.4.0-p0/internal/encoding.h +0 -38
  234. data/lib/datadog/ruby_core_source/ruby-3.4.0-p0/internal/enum.h +0 -18
  235. data/lib/datadog/ruby_core_source/ruby-3.4.0-p0/internal/enumerator.h +0 -21
  236. data/lib/datadog/ruby_core_source/ruby-3.4.0-p0/internal/error.h +0 -244
  237. data/lib/datadog/ruby_core_source/ruby-3.4.0-p0/internal/eval.h +0 -33
  238. data/lib/datadog/ruby_core_source/ruby-3.4.0-p0/internal/file.h +0 -38
  239. data/lib/datadog/ruby_core_source/ruby-3.4.0-p0/internal/fixnum.h +0 -185
  240. data/lib/datadog/ruby_core_source/ruby-3.4.0-p0/internal/hash.h +0 -192
  241. data/lib/datadog/ruby_core_source/ruby-3.4.0-p0/internal/inits.h +0 -47
  242. data/lib/datadog/ruby_core_source/ruby-3.4.0-p0/internal/io.h +0 -143
  243. data/lib/datadog/ruby_core_source/ruby-3.4.0-p0/internal/load.h +0 -18
  244. data/lib/datadog/ruby_core_source/ruby-3.4.0-p0/internal/loadpath.h +0 -16
  245. data/lib/datadog/ruby_core_source/ruby-3.4.0-p0/internal/math.h +0 -23
  246. data/lib/datadog/ruby_core_source/ruby-3.4.0-p0/internal/missing.h +0 -19
  247. data/lib/datadog/ruby_core_source/ruby-3.4.0-p0/internal/numeric.h +0 -274
  248. data/lib/datadog/ruby_core_source/ruby-3.4.0-p0/internal/object.h +0 -63
  249. data/lib/datadog/ruby_core_source/ruby-3.4.0-p0/internal/parse.h +0 -130
  250. data/lib/datadog/ruby_core_source/ruby-3.4.0-p0/internal/proc.h +0 -31
  251. data/lib/datadog/ruby_core_source/ruby-3.4.0-p0/internal/process.h +0 -124
  252. data/lib/datadog/ruby_core_source/ruby-3.4.0-p0/internal/ractor.h +0 -10
  253. data/lib/datadog/ruby_core_source/ruby-3.4.0-p0/internal/random.h +0 -17
  254. data/lib/datadog/ruby_core_source/ruby-3.4.0-p0/internal/range.h +0 -40
  255. data/lib/datadog/ruby_core_source/ruby-3.4.0-p0/internal/rational.h +0 -71
  256. data/lib/datadog/ruby_core_source/ruby-3.4.0-p0/internal/re.h +0 -28
  257. data/lib/datadog/ruby_core_source/ruby-3.4.0-p0/internal/ruby_parser.h +0 -102
  258. data/lib/datadog/ruby_core_source/ruby-3.4.0-p0/internal/signal.h +0 -24
  259. data/lib/datadog/ruby_core_source/ruby-3.4.0-p0/internal/st.h +0 -11
  260. data/lib/datadog/ruby_core_source/ruby-3.4.0-p0/internal/string.h +0 -198
  261. data/lib/datadog/ruby_core_source/ruby-3.4.0-p0/internal/struct.h +0 -127
  262. data/lib/datadog/ruby_core_source/ruby-3.4.0-p0/internal/symbol.h +0 -45
  263. data/lib/datadog/ruby_core_source/ruby-3.4.0-p0/internal/thread.h +0 -108
  264. data/lib/datadog/ruby_core_source/ruby-3.4.0-p0/internal/time.h +0 -34
  265. data/lib/datadog/ruby_core_source/ruby-3.4.0-p0/internal/transcode.h +0 -23
  266. data/lib/datadog/ruby_core_source/ruby-3.4.0-p0/internal/util.h +0 -27
  267. data/lib/datadog/ruby_core_source/ruby-3.4.0-p0/prism/extension.h +0 -19
  268. data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/internal/bignum.h +0 -256
  269. data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/internal/bits.h +0 -647
  270. data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/internal/cmdlineopt.h +0 -64
  271. data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/internal/compar.h +0 -29
  272. data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/internal/compile.h +0 -34
  273. data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/internal/complex.h +0 -29
  274. data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/internal/concurrent_set.h +0 -21
  275. data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/internal/cont.h +0 -34
  276. data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/internal/dir.h +0 -16
  277. data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/internal/enc.h +0 -19
  278. data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/internal/encoding.h +0 -39
  279. data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/internal/enum.h +0 -18
  280. data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/internal/enumerator.h +0 -21
  281. data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/internal/error.h +0 -251
  282. data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/internal/eval.h +0 -43
  283. data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/internal/file.h +0 -38
  284. data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/internal/fixnum.h +0 -185
  285. data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/internal/hash.h +0 -194
  286. data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/internal/inits.h +0 -51
  287. data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/internal/io.h +0 -163
  288. data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/internal/load.h +0 -20
  289. data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/internal/loadpath.h +0 -16
  290. data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/internal/math.h +0 -23
  291. data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/internal/missing.h +0 -19
  292. data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/internal/numeric.h +0 -323
  293. data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/internal/object.h +0 -63
  294. data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/internal/parse.h +0 -131
  295. data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/internal/proc.h +0 -30
  296. data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/internal/process.h +0 -124
  297. data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/internal/ractor.h +0 -10
  298. data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/internal/random.h +0 -17
  299. data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/internal/range.h +0 -40
  300. data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/internal/rational.h +0 -71
  301. data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/internal/re.h +0 -33
  302. data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/internal/ruby_parser.h +0 -102
  303. data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/internal/signal.h +0 -25
  304. data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/internal/st.h +0 -11
  305. data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/internal/string.h +0 -203
  306. data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/internal/struct.h +0 -160
  307. data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/internal/symbol.h +0 -46
  308. data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/internal/thread.h +0 -112
  309. data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/internal/time.h +0 -34
  310. data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/internal/transcode.h +0 -23
  311. data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/internal/util.h +0 -27
  312. data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/prism/extension.h +0 -19
  313. data/lib/datadog/ruby_core_source/ruby-4.0.6-p0/internal/bignum.h +0 -256
  314. data/lib/datadog/ruby_core_source/ruby-4.0.6-p0/internal/bits.h +0 -647
  315. data/lib/datadog/ruby_core_source/ruby-4.0.6-p0/internal/cmdlineopt.h +0 -64
  316. data/lib/datadog/ruby_core_source/ruby-4.0.6-p0/internal/compar.h +0 -29
  317. data/lib/datadog/ruby_core_source/ruby-4.0.6-p0/internal/compile.h +0 -34
  318. data/lib/datadog/ruby_core_source/ruby-4.0.6-p0/internal/complex.h +0 -29
  319. data/lib/datadog/ruby_core_source/ruby-4.0.6-p0/internal/concurrent_set.h +0 -21
  320. data/lib/datadog/ruby_core_source/ruby-4.0.6-p0/internal/cont.h +0 -34
  321. data/lib/datadog/ruby_core_source/ruby-4.0.6-p0/internal/dir.h +0 -16
  322. data/lib/datadog/ruby_core_source/ruby-4.0.6-p0/internal/enc.h +0 -19
  323. data/lib/datadog/ruby_core_source/ruby-4.0.6-p0/internal/encoding.h +0 -39
  324. data/lib/datadog/ruby_core_source/ruby-4.0.6-p0/internal/enum.h +0 -18
  325. data/lib/datadog/ruby_core_source/ruby-4.0.6-p0/internal/enumerator.h +0 -21
  326. data/lib/datadog/ruby_core_source/ruby-4.0.6-p0/internal/error.h +0 -251
  327. data/lib/datadog/ruby_core_source/ruby-4.0.6-p0/internal/eval.h +0 -43
  328. data/lib/datadog/ruby_core_source/ruby-4.0.6-p0/internal/file.h +0 -38
  329. data/lib/datadog/ruby_core_source/ruby-4.0.6-p0/internal/fixnum.h +0 -185
  330. data/lib/datadog/ruby_core_source/ruby-4.0.6-p0/internal/hash.h +0 -194
  331. data/lib/datadog/ruby_core_source/ruby-4.0.6-p0/internal/inits.h +0 -51
  332. data/lib/datadog/ruby_core_source/ruby-4.0.6-p0/internal/io.h +0 -163
  333. data/lib/datadog/ruby_core_source/ruby-4.0.6-p0/internal/load.h +0 -20
  334. data/lib/datadog/ruby_core_source/ruby-4.0.6-p0/internal/loadpath.h +0 -16
  335. data/lib/datadog/ruby_core_source/ruby-4.0.6-p0/internal/math.h +0 -23
  336. data/lib/datadog/ruby_core_source/ruby-4.0.6-p0/internal/missing.h +0 -19
  337. data/lib/datadog/ruby_core_source/ruby-4.0.6-p0/internal/numeric.h +0 -323
  338. data/lib/datadog/ruby_core_source/ruby-4.0.6-p0/internal/object.h +0 -63
  339. data/lib/datadog/ruby_core_source/ruby-4.0.6-p0/internal/parse.h +0 -131
  340. data/lib/datadog/ruby_core_source/ruby-4.0.6-p0/internal/proc.h +0 -30
  341. data/lib/datadog/ruby_core_source/ruby-4.0.6-p0/internal/process.h +0 -124
  342. data/lib/datadog/ruby_core_source/ruby-4.0.6-p0/internal/ractor.h +0 -10
  343. data/lib/datadog/ruby_core_source/ruby-4.0.6-p0/internal/random.h +0 -17
  344. data/lib/datadog/ruby_core_source/ruby-4.0.6-p0/internal/range.h +0 -40
  345. data/lib/datadog/ruby_core_source/ruby-4.0.6-p0/internal/rational.h +0 -73
  346. data/lib/datadog/ruby_core_source/ruby-4.0.6-p0/internal/re.h +0 -33
  347. data/lib/datadog/ruby_core_source/ruby-4.0.6-p0/internal/ruby_parser.h +0 -102
  348. data/lib/datadog/ruby_core_source/ruby-4.0.6-p0/internal/signal.h +0 -25
  349. data/lib/datadog/ruby_core_source/ruby-4.0.6-p0/internal/st.h +0 -11
  350. data/lib/datadog/ruby_core_source/ruby-4.0.6-p0/internal/string.h +0 -203
  351. data/lib/datadog/ruby_core_source/ruby-4.0.6-p0/internal/struct.h +0 -160
  352. data/lib/datadog/ruby_core_source/ruby-4.0.6-p0/internal/symbol.h +0 -46
  353. data/lib/datadog/ruby_core_source/ruby-4.0.6-p0/internal/thread.h +0 -112
  354. data/lib/datadog/ruby_core_source/ruby-4.0.6-p0/internal/time.h +0 -34
  355. data/lib/datadog/ruby_core_source/ruby-4.0.6-p0/internal/transcode.h +0 -23
  356. data/lib/datadog/ruby_core_source/ruby-4.0.6-p0/internal/util.h +0 -27
  357. data/lib/datadog/ruby_core_source/ruby-4.0.6-p0/prism/extension.h +0 -19
@@ -0,0 +1,116 @@
1
+ #ifndef RUBY_DEBUG_H
2
+ #define RUBY_DEBUG_H
3
+ /**********************************************************************
4
+
5
+ vm_debug.h - YARV Debug function interface
6
+
7
+ $Author$
8
+ created at: 04/08/25 02:33:49 JST
9
+
10
+ Copyright (C) 2004-2007 Koichi Sasada
11
+
12
+ **********************************************************************/
13
+
14
+ #include "ruby/ruby.h"
15
+ #include "node.h"
16
+
17
+ RUBY_SYMBOL_EXPORT_BEGIN
18
+
19
+ #define dpv(h,v) ruby_debug_print_value(-1, 0, (h), (v))
20
+ #define dp(v) ruby_debug_print_value(-1, 0, "", (v))
21
+ #define dpi(i) ruby_debug_print_id(-1, 0, "", (i))
22
+ #define dpn(n) ruby_debug_print_node(-1, 0, "", (n))
23
+
24
+ VALUE ruby_debug_print_value(int level, int debug_level, const char *header, VALUE v);
25
+ ID ruby_debug_print_id(int level, int debug_level, const char *header, ID id);
26
+ NODE *ruby_debug_print_node(int level, int debug_level, const char *header, const NODE *node);
27
+ int ruby_debug_print_indent(int level, int debug_level, int indent_level);
28
+ void ruby_debug_gc_check_func(void);
29
+ void ruby_set_debug_option(const char *str);
30
+
31
+ RUBY_SYMBOL_EXPORT_END
32
+
33
+ #if RUBY_DEVEL
34
+ #ifndef USE_RUBY_DEBUG_LOG
35
+ #define USE_RUBY_DEBUG_LOG 0
36
+ #endif
37
+ #else
38
+ // disable on !RUBY_DEVEL
39
+ #ifdef USE_RUBY_DEBUG_LOG
40
+ #undef USE_RUBY_DEBUG_LOG
41
+ #endif
42
+ #endif
43
+
44
+ /* RUBY_DEBUG_LOG: Logging debug information mechanism
45
+ *
46
+ * This feature provides a mechanism to store logging information
47
+ * to a file, stderr or memory space with simple macros.
48
+ *
49
+ * The following information will be stored.
50
+ * * (1) __FILE__, __LINE__ in C
51
+ * * (2) __FILE__, __LINE__ in Ruby
52
+ * * (3) __func__ in C (message title)
53
+ * * (4) given string with sprintf format
54
+ * * (5) Thread number (if multiple threads are running)
55
+ *
56
+ * This feature is enabled only USE_RUBY_DEBUG_LOG is enabled.
57
+ * Release version should not enable it.
58
+ *
59
+ * Running with the `RUBY_DEBUG_LOG` environment variable enables
60
+ * this feature.
61
+ *
62
+ * # logging into a file
63
+ * RUBY_DEBUG_LOG=/path/to/file STDERR
64
+ *
65
+ * # logging into STDERR
66
+ * RUBY_DEBUG_LOG=stderr
67
+ *
68
+ * # logging into memory space (check with a debugger)
69
+ * # It will help if the timing is important.
70
+ * RUBY_DEBUG_LOG=mem
71
+ *
72
+ * RUBY_DEBUG_LOG_FILTER environment variable can specify the filter string.
73
+ * If "(3) __func__ in C (message title)" contains the specified string, the
74
+ * information will be stored (example: RUBY_DEBUG_LOG_FILTER=str will enable
75
+ * only on str related information).
76
+ *
77
+ * In a MRI source code, you can use the following macros:
78
+ * * RUBY_DEBUG_LOG(fmt, ...): Above (1) to (4) will be logged.
79
+ * * RUBY_DEBUG_LOG2(file, line, fmt, ...):
80
+ * Same as RUBY_DEBUG_LOG(), but (1) will be replaced with given file, line.
81
+ */
82
+
83
+ extern enum ruby_debug_log_mode {
84
+ ruby_debug_log_disabled = 0x00,
85
+ ruby_debug_log_memory = 0x01,
86
+ ruby_debug_log_stderr = 0x02,
87
+ ruby_debug_log_file = 0x04,
88
+ } ruby_debug_log_mode;
89
+
90
+ void ruby_debug_log(const char *file, int line, const char *func_name, const char *fmt, ...);
91
+ void ruby_debug_log_print(unsigned int n);
92
+ bool ruby_debug_log_filter(const char *func_name);
93
+
94
+ // convenient macro to log even if the USE_RUBY_DEBUG_LOG macro is not specified.
95
+ // You can use this macro for temporary usage (you should not commit it).
96
+ #define _RUBY_DEBUG_LOG(fmt, ...) ruby_debug_log(__FILE__, __LINE__, __func__, fmt, __VA_ARGS__)
97
+
98
+ #if USE_RUBY_DEBUG_LOG
99
+
100
+ #define RUBY_DEBUG_LOG(fmt, ...) do { \
101
+ if (ruby_debug_log_mode && ruby_debug_log_filter(__func__)) \
102
+ ruby_debug_log(__FILE__, __LINE__, __func__, fmt, __VA_ARGS__); \
103
+ } while (0)
104
+
105
+ #define RUBY_DEBUG_LOG2(file, line, fmt, ...) do { \
106
+ if (ruby_debug_log_mode && ruby_debug_log_filter(__func__)) \
107
+ ruby_debug_log(file, line, __func__, fmt, __VA_ARGS__); \
108
+ } while (0)
109
+
110
+ #else
111
+ // do nothing
112
+ #define RUBY_DEBUG_LOG(fmt, ...)
113
+ #define RUBY_DEBUG_LOG2(file, line, fmt, ...)
114
+ #endif // USE_RUBY_DEBUG_LOG
115
+
116
+ #endif /* RUBY_DEBUG_H */
@@ -0,0 +1,73 @@
1
+ #ifndef RUBY_VM_OPTS_H/*-*-c-*-*/
2
+ #define RUBY_VM_OPTS_H
3
+ /**********************************************************************
4
+
5
+ vm_opts.h - VM optimize option
6
+
7
+ $Author$
8
+
9
+ Copyright (C) 2004-2007 Koichi Sasada
10
+
11
+ **********************************************************************/
12
+
13
+ /* Compile options.
14
+ * You can change these options at runtime by VM::CompileOption.
15
+ * Following definitions are default values.
16
+ */
17
+
18
+ #define OPT_TAILCALL_OPTIMIZATION 0
19
+ #define OPT_PEEPHOLE_OPTIMIZATION 1
20
+ #define OPT_SPECIALISED_INSTRUCTION 1
21
+ #define OPT_INLINE_CONST_CACHE 1
22
+ #define OPT_FROZEN_STRING_LITERAL 0
23
+ #define OPT_DEBUG_FROZEN_STRING_LITERAL 0
24
+
25
+ /* Build Options.
26
+ * You can't change these options at runtime.
27
+ */
28
+
29
+ /* C compiler dependent */
30
+
31
+ /*
32
+ * 0: direct (using labeled goto using GCC special)
33
+ * 1: token (switch/case)
34
+ * 2: call (function call for each insn dispatch)
35
+ */
36
+ #ifndef OPT_THREADED_CODE
37
+ #define OPT_THREADED_CODE 0
38
+ #endif
39
+
40
+ #define OPT_DIRECT_THREADED_CODE (OPT_THREADED_CODE == 0)
41
+ #define OPT_TOKEN_THREADED_CODE (OPT_THREADED_CODE == 1)
42
+ #define OPT_CALL_THREADED_CODE (OPT_THREADED_CODE == 2)
43
+
44
+ /* VM running option */
45
+ #define OPT_CHECKED_RUN 1
46
+ #define OPT_INLINE_METHOD_CACHE 1
47
+ #define OPT_GLOBAL_METHOD_CACHE 1
48
+ #define OPT_BLOCKINLINING 0
49
+
50
+ #ifndef OPT_IC_FOR_IVAR
51
+ #define OPT_IC_FOR_IVAR 1
52
+ #endif
53
+
54
+ /* architecture independent, affects generated code */
55
+ #define OPT_OPERANDS_UNIFICATION 1
56
+ #define OPT_INSTRUCTIONS_UNIFICATION 0
57
+ #define OPT_UNIFY_ALL_COMBINATION 0
58
+ #define OPT_STACK_CACHING 0
59
+
60
+ /* misc */
61
+ #ifndef OPT_SUPPORT_JOKE
62
+ #define OPT_SUPPORT_JOKE 0
63
+ #endif
64
+
65
+ #ifndef OPT_SUPPORT_CALL_C_FUNCTION
66
+ #define OPT_SUPPORT_CALL_C_FUNCTION 0
67
+ #endif
68
+
69
+ #ifndef VM_COLLECT_USAGE_DETAILS
70
+ #define VM_COLLECT_USAGE_DETAILS 0
71
+ #endif
72
+
73
+ #endif /* RUBY_VM_OPTS_H */
@@ -0,0 +1,40 @@
1
+ /* CC0 (Public domain) - see ccan/licenses/CC0 file for details */
2
+ #ifndef CCAN_BUILD_ASSERT_H
3
+ #define CCAN_BUILD_ASSERT_H
4
+
5
+ /**
6
+ * BUILD_ASSERT - assert a build-time dependency.
7
+ * @cond: the compile-time condition which must be true.
8
+ *
9
+ * Your compile will fail if the condition isn't true, or can't be evaluated
10
+ * by the compiler. This can only be used within a function.
11
+ *
12
+ * Example:
13
+ * #include <stddef.h>
14
+ * ...
15
+ * static char *foo_to_char(struct foo *foo)
16
+ * {
17
+ * // This code needs string to be at start of foo.
18
+ * BUILD_ASSERT(offsetof(struct foo, string) == 0);
19
+ * return (char *)foo;
20
+ * }
21
+ */
22
+ #define BUILD_ASSERT(cond) \
23
+ do { (void) sizeof(char [1 - 2*!(cond)]); } while(0)
24
+
25
+ /**
26
+ * BUILD_ASSERT_OR_ZERO - assert a build-time dependency, as an expression.
27
+ * @cond: the compile-time condition which must be true.
28
+ *
29
+ * Your compile will fail if the condition isn't true, or can't be evaluated
30
+ * by the compiler. This can be used in an expression: its value is "0".
31
+ *
32
+ * Example:
33
+ * #define foo_to_char(foo) \
34
+ * ((char *)(foo) \
35
+ * + BUILD_ASSERT_OR_ZERO(offsetof(struct foo, string) == 0))
36
+ */
37
+ #define BUILD_ASSERT_OR_ZERO(cond) \
38
+ (sizeof(char [1 - 2*!(cond)]) - 1)
39
+
40
+ #endif /* CCAN_BUILD_ASSERT_H */
@@ -0,0 +1,63 @@
1
+ /* CC0 (Public domain) - see ccan/licenses/CC0 file for details */
2
+ #ifndef CCAN_CHECK_TYPE_H
3
+ #define CCAN_CHECK_TYPE_H
4
+
5
+ /**
6
+ * check_type - issue a warning or build failure if type is not correct.
7
+ * @expr: the expression whose type we should check (not evaluated).
8
+ * @type: the exact type we expect the expression to be.
9
+ *
10
+ * This macro is usually used within other macros to try to ensure that a macro
11
+ * argument is of the expected type. No type promotion of the expression is
12
+ * done: an unsigned int is not the same as an int!
13
+ *
14
+ * check_type() always evaluates to 0.
15
+ *
16
+ * If your compiler does not support typeof, then the best we can do is fail
17
+ * to compile if the sizes of the types are unequal (a less complete check).
18
+ *
19
+ * Example:
20
+ * // They should always pass a 64-bit value to _set_some_value!
21
+ * #define set_some_value(expr) \
22
+ * _set_some_value((check_type((expr), uint64_t), (expr)))
23
+ */
24
+
25
+ /**
26
+ * check_types_match - issue a warning or build failure if types are not same.
27
+ * @expr1: the first expression (not evaluated).
28
+ * @expr2: the second expression (not evaluated).
29
+ *
30
+ * This macro is usually used within other macros to try to ensure that
31
+ * arguments are of identical types. No type promotion of the expressions is
32
+ * done: an unsigned int is not the same as an int!
33
+ *
34
+ * check_types_match() always evaluates to 0.
35
+ *
36
+ * If your compiler does not support typeof, then the best we can do is fail
37
+ * to compile if the sizes of the types are unequal (a less complete check).
38
+ *
39
+ * Example:
40
+ * // Do subtraction to get to enclosing type, but make sure that
41
+ * // pointer is of correct type for that member.
42
+ * #define container_of(mbr_ptr, encl_type, mbr) \
43
+ * (check_types_match((mbr_ptr), &((encl_type *)0)->mbr), \
44
+ * ((encl_type *) \
45
+ * ((char *)(mbr_ptr) - offsetof(enclosing_type, mbr))))
46
+ */
47
+ #if HAVE_TYPEOF
48
+ #define check_type(expr, type) \
49
+ ((typeof(expr) *)0 != (type *)0)
50
+
51
+ #define check_types_match(expr1, expr2) \
52
+ ((typeof(expr1) *)0 != (typeof(expr2) *)0)
53
+ #else
54
+ #include "ccan/build_assert/build_assert.h"
55
+ /* Without typeof, we can only test the sizes. */
56
+ #define check_type(expr, type) \
57
+ BUILD_ASSERT_OR_ZERO(sizeof(expr) == sizeof(type))
58
+
59
+ #define check_types_match(expr1, expr2) \
60
+ BUILD_ASSERT_OR_ZERO(sizeof(expr1) == sizeof(expr2))
61
+ #endif /* HAVE_TYPEOF */
62
+
63
+ #endif /* CCAN_CHECK_TYPE_H */
@@ -0,0 +1,142 @@
1
+ /* CC0 (Public domain) - see ccan/licenses/CC0 file for details */
2
+ #ifndef CCAN_CONTAINER_OF_H
3
+ #define CCAN_CONTAINER_OF_H
4
+ #include "ccan/check_type/check_type.h"
5
+
6
+ /**
7
+ * container_of - get pointer to enclosing structure
8
+ * @member_ptr: pointer to the structure member
9
+ * @containing_type: the type this member is within
10
+ * @member: the name of this member within the structure.
11
+ *
12
+ * Given a pointer to a member of a structure, this macro does pointer
13
+ * subtraction to return the pointer to the enclosing type.
14
+ *
15
+ * Example:
16
+ * struct foo {
17
+ * int fielda, fieldb;
18
+ * // ...
19
+ * };
20
+ * struct info {
21
+ * int some_other_field;
22
+ * struct foo my_foo;
23
+ * };
24
+ *
25
+ * static struct info *foo_to_info(struct foo *foo)
26
+ * {
27
+ * return container_of(foo, struct info, my_foo);
28
+ * }
29
+ */
30
+ #define container_of(member_ptr, containing_type, member) \
31
+ ((containing_type *) \
32
+ ((char *)(member_ptr) \
33
+ - container_off(containing_type, member)) \
34
+ + check_types_match(*(member_ptr), ((containing_type *)0)->member))
35
+
36
+
37
+ /**
38
+ * container_of_or_null - get pointer to enclosing structure, or NULL
39
+ * @member_ptr: pointer to the structure member
40
+ * @containing_type: the type this member is within
41
+ * @member: the name of this member within the structure.
42
+ *
43
+ * Given a pointer to a member of a structure, this macro does pointer
44
+ * subtraction to return the pointer to the enclosing type, unless it
45
+ * is given NULL, in which case it also returns NULL.
46
+ *
47
+ * Example:
48
+ * struct foo {
49
+ * int fielda, fieldb;
50
+ * // ...
51
+ * };
52
+ * struct info {
53
+ * int some_other_field;
54
+ * struct foo my_foo;
55
+ * };
56
+ *
57
+ * static struct info *foo_to_info_allowing_null(struct foo *foo)
58
+ * {
59
+ * return container_of_or_null(foo, struct info, my_foo);
60
+ * }
61
+ */
62
+ static inline char *container_of_or_null_(void *member_ptr, size_t offset)
63
+ {
64
+ return member_ptr ? (char *)member_ptr - offset : NULL;
65
+ }
66
+ #define container_of_or_null(member_ptr, containing_type, member) \
67
+ ((containing_type *) \
68
+ container_of_or_null_(member_ptr, \
69
+ container_off(containing_type, member)) \
70
+ + check_types_match(*(member_ptr), ((containing_type *)0)->member))
71
+
72
+ /**
73
+ * container_off - get offset to enclosing structure
74
+ * @containing_type: the type this member is within
75
+ * @member: the name of this member within the structure.
76
+ *
77
+ * Given a pointer to a member of a structure, this macro does
78
+ * typechecking and figures out the offset to the enclosing type.
79
+ *
80
+ * Example:
81
+ * struct foo {
82
+ * int fielda, fieldb;
83
+ * // ...
84
+ * };
85
+ * struct info {
86
+ * int some_other_field;
87
+ * struct foo my_foo;
88
+ * };
89
+ *
90
+ * static struct info *foo_to_info(struct foo *foo)
91
+ * {
92
+ * size_t off = container_off(struct info, my_foo);
93
+ * return (void *)((char *)foo - off);
94
+ * }
95
+ */
96
+ #define container_off(containing_type, member) \
97
+ offsetof(containing_type, member)
98
+
99
+ /**
100
+ * container_of_var - get pointer to enclosing structure using a variable
101
+ * @member_ptr: pointer to the structure member
102
+ * @container_var: a pointer of same type as this member's container
103
+ * @member: the name of this member within the structure.
104
+ *
105
+ * Given a pointer to a member of a structure, this macro does pointer
106
+ * subtraction to return the pointer to the enclosing type.
107
+ *
108
+ * Example:
109
+ * static struct info *foo_to_i(struct foo *foo)
110
+ * {
111
+ * struct info *i = container_of_var(foo, i, my_foo);
112
+ * return i;
113
+ * }
114
+ */
115
+ #if HAVE_TYPEOF
116
+ #define container_of_var(member_ptr, container_var, member) \
117
+ container_of(member_ptr, typeof(*container_var), member)
118
+ #else
119
+ #define container_of_var(member_ptr, container_var, member) \
120
+ ((void *)((char *)(member_ptr) - \
121
+ container_off_var(container_var, member)))
122
+ #endif
123
+
124
+ /**
125
+ * container_off_var - get offset of a field in enclosing structure
126
+ * @container_var: a pointer to a container structure
127
+ * @member: the name of a member within the structure.
128
+ *
129
+ * Given (any) pointer to a structure and a its member name, this
130
+ * macro does pointer subtraction to return offset of member in a
131
+ * structure memory layout.
132
+ *
133
+ */
134
+ #if HAVE_TYPEOF
135
+ #define container_off_var(var, member) \
136
+ container_off(typeof(*var), member)
137
+ #else
138
+ #define container_off_var(var, member) \
139
+ ((const char *)&(var)->member - (const char *)(var))
140
+ #endif
141
+
142
+ #endif /* CCAN_CONTAINER_OF_H */