html-to-markdown 2.27.2 → 2.28.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.
Files changed (237) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +8 -8
  3. data/ext/html-to-markdown-rb/native/Cargo.toml +1 -1
  4. data/ext/html-to-markdown-rb/native/src/conversion/mod.rs +6 -0
  5. data/ext/html-to-markdown-rb/native/src/conversion/tables.rs +71 -0
  6. data/ext/html-to-markdown-rb/native/src/lib.rs +27 -1
  7. data/lib/html_to_markdown/version.rb +1 -1
  8. data/lib/html_to_markdown.rb +29 -0
  9. data/rust-vendor/getrandom/.cargo-checksum.json +1 -1
  10. data/rust-vendor/getrandom/.cargo_vcs_info.json +1 -1
  11. data/rust-vendor/getrandom/CHANGELOG.md +62 -43
  12. data/rust-vendor/getrandom/Cargo.lock +49 -56
  13. data/rust-vendor/getrandom/Cargo.toml +2 -2
  14. data/rust-vendor/getrandom/Cargo.toml.orig +2 -2
  15. data/rust-vendor/getrandom/src/backends/efi_rng.rs +8 -10
  16. data/rust-vendor/getrandom/src/backends/getentropy.rs +13 -4
  17. data/rust-vendor/getrandom/src/backends/linux_android_with_fallback.rs +10 -25
  18. data/rust-vendor/getrandom/src/backends/netbsd.rs +17 -25
  19. data/rust-vendor/getrandom/src/backends/rdrand.rs +15 -9
  20. data/rust-vendor/getrandom/src/backends/rndr.rs +2 -1
  21. data/rust-vendor/getrandom/src/backends/vxworks.rs +7 -3
  22. data/rust-vendor/getrandom/src/backends/windows.rs +21 -5
  23. data/rust-vendor/getrandom/src/utils/lazy_bool.rs +39 -0
  24. data/rust-vendor/getrandom/src/utils/lazy_ptr.rs +57 -0
  25. data/rust-vendor/html-to-markdown-rs/Cargo.toml +2 -2
  26. data/rust-vendor/html-to-markdown-rs/README.md +29 -0
  27. data/rust-vendor/html-to-markdown-rs/src/convert_api.rs +368 -0
  28. data/rust-vendor/html-to-markdown-rs/src/converter/main.rs +10 -5
  29. data/rust-vendor/html-to-markdown-rs/src/converter/text_node.rs +2 -1
  30. data/rust-vendor/html-to-markdown-rs/src/lib.rs +3 -0
  31. data/rust-vendor/html-to-markdown-rs/src/prelude.rs +3 -0
  32. data/rust-vendor/html-to-markdown-rs/tests/issue_216_217_regressions.rs +82 -0
  33. data/rust-vendor/quote/.cargo-checksum.json +1 -1
  34. data/rust-vendor/quote/.cargo_vcs_info.json +1 -1
  35. data/rust-vendor/quote/.github/workflows/ci.yml +2 -2
  36. data/rust-vendor/quote/Cargo.lock +21 -21
  37. data/rust-vendor/quote/Cargo.toml +2 -2
  38. data/rust-vendor/quote/Cargo.toml.orig +2 -2
  39. data/rust-vendor/quote/README.md +0 -1
  40. data/rust-vendor/quote/src/lib.rs +1 -1
  41. data/rust-vendor/quote/src/to_tokens.rs +7 -0
  42. data/rust-vendor/quote/tests/ui/not-quotable.stderr +1 -1
  43. data/rust-vendor/quote/tests/ui/not-repeatable.stderr +3 -11
  44. data/rust-vendor/r-efi/.cargo-checksum.json +1 -1
  45. data/rust-vendor/r-efi/.cargo_vcs_info.json +1 -1
  46. data/rust-vendor/r-efi/AUTHORS +1 -0
  47. data/rust-vendor/r-efi/Cargo.lock +1 -1
  48. data/rust-vendor/r-efi/Cargo.toml +1 -3
  49. data/rust-vendor/r-efi/Cargo.toml.orig +1 -5
  50. data/rust-vendor/r-efi/NEWS.md +16 -0
  51. data/rust-vendor/r-efi/src/base.rs +1 -1
  52. data/rust-vendor/r-efi/src/lib.rs +27 -12
  53. data/rust-vendor/r-efi/src/protocols/absolute_pointer.rs +4 -4
  54. data/rust-vendor/r-efi/src/protocols/block_io.rs +8 -8
  55. data/rust-vendor/r-efi/src/protocols/bus_specific_driver_override.rs +2 -2
  56. data/rust-vendor/r-efi/src/protocols/debug_support.rs +10 -10
  57. data/rust-vendor/r-efi/src/protocols/debugport.rs +8 -8
  58. data/rust-vendor/r-efi/src/protocols/decompress.rs +4 -4
  59. data/rust-vendor/r-efi/src/protocols/device_path_from_text.rs +4 -4
  60. data/rust-vendor/r-efi/src/protocols/device_path_to_text.rs +4 -4
  61. data/rust-vendor/r-efi/src/protocols/device_path_utilities.rs +16 -16
  62. data/rust-vendor/r-efi/src/protocols/disk_io.rs +4 -4
  63. data/rust-vendor/r-efi/src/protocols/disk_io2.rs +8 -8
  64. data/rust-vendor/r-efi/src/protocols/driver_binding.rs +6 -6
  65. data/rust-vendor/r-efi/src/protocols/driver_diagnostics2.rs +2 -2
  66. data/rust-vendor/r-efi/src/protocols/driver_family_override.rs +2 -2
  67. data/rust-vendor/r-efi/src/protocols/file.rs +28 -28
  68. data/rust-vendor/r-efi/src/protocols/graphics_output.rs +6 -6
  69. data/rust-vendor/r-efi/src/protocols/hii_database.rs +24 -24
  70. data/rust-vendor/r-efi/src/protocols/hii_font.rs +8 -8
  71. data/rust-vendor/r-efi/src/protocols/hii_font_ex.rs +10 -10
  72. data/rust-vendor/r-efi/src/protocols/hii_string.rs +10 -10
  73. data/rust-vendor/r-efi/src/protocols/ip4.rs +16 -16
  74. data/rust-vendor/r-efi/src/protocols/ip6.rs +18 -18
  75. data/rust-vendor/r-efi/src/protocols/load_file.rs +2 -2
  76. data/rust-vendor/r-efi/src/protocols/loaded_image.rs +2 -2
  77. data/rust-vendor/r-efi/src/protocols/managed_network.rs +16 -16
  78. data/rust-vendor/r-efi/src/protocols/memory_attribute.rs +6 -6
  79. data/rust-vendor/r-efi/src/protocols/mp_services.rs +15 -15
  80. data/rust-vendor/r-efi/src/protocols/pci_io.rs +26 -26
  81. data/rust-vendor/r-efi/src/protocols/platform_driver_override.rs +6 -6
  82. data/rust-vendor/r-efi/src/protocols/rng.rs +4 -4
  83. data/rust-vendor/r-efi/src/protocols/service_binding.rs +4 -4
  84. data/rust-vendor/r-efi/src/protocols/shell.rs +81 -81
  85. data/rust-vendor/r-efi/src/protocols/shell_dynamic_command.rs +4 -4
  86. data/rust-vendor/r-efi/src/protocols/simple_file_system.rs +2 -2
  87. data/rust-vendor/r-efi/src/protocols/simple_network.rs +26 -26
  88. data/rust-vendor/r-efi/src/protocols/simple_text_input.rs +4 -4
  89. data/rust-vendor/r-efi/src/protocols/simple_text_input_ex.rs +11 -11
  90. data/rust-vendor/r-efi/src/protocols/simple_text_output.rs +18 -18
  91. data/rust-vendor/r-efi/src/protocols/tcp4.rs +20 -20
  92. data/rust-vendor/r-efi/src/protocols/tcp6.rs +18 -18
  93. data/rust-vendor/r-efi/src/protocols/timestamp.rs +3 -3
  94. data/rust-vendor/r-efi/src/protocols/udp4.rs +16 -16
  95. data/rust-vendor/r-efi/src/protocols/udp6.rs +14 -14
  96. data/rust-vendor/r-efi/src/system.rs +115 -115
  97. data/rust-vendor/r-efi/src/vendor/intel/console_control.rs +6 -6
  98. data/rust-vendor/r-efi-5.3.0/.cargo-checksum.json +1 -0
  99. data/rust-vendor/r-efi-5.3.0/.cargo_vcs_info.json +6 -0
  100. data/rust-vendor/r-efi-5.3.0/.github/workflows/publish.yml +39 -0
  101. data/rust-vendor/r-efi-5.3.0/.github/workflows/rust-tests.yml +125 -0
  102. data/rust-vendor/r-efi-5.3.0/AUTHORS +74 -0
  103. data/rust-vendor/r-efi-5.3.0/Cargo.lock +16 -0
  104. data/rust-vendor/r-efi-5.3.0/Cargo.toml +70 -0
  105. data/rust-vendor/r-efi-5.3.0/Cargo.toml.orig +51 -0
  106. data/rust-vendor/r-efi-5.3.0/Makefile +85 -0
  107. data/rust-vendor/r-efi-5.3.0/NEWS.md +301 -0
  108. data/rust-vendor/r-efi-5.3.0/README.md +99 -0
  109. data/rust-vendor/r-efi-5.3.0/examples/freestanding.rs +34 -0
  110. data/rust-vendor/r-efi-5.3.0/examples/gop-query.rs +188 -0
  111. data/rust-vendor/r-efi-5.3.0/examples/hello-world.rs +55 -0
  112. data/rust-vendor/r-efi-5.3.0/src/base.rs +993 -0
  113. data/rust-vendor/r-efi-5.3.0/src/hii.rs +1300 -0
  114. data/rust-vendor/r-efi-5.3.0/src/lib.rs +182 -0
  115. data/rust-vendor/r-efi-5.3.0/src/protocols/absolute_pointer.rs +69 -0
  116. data/rust-vendor/r-efi-5.3.0/src/protocols/block_io.rs +70 -0
  117. data/rust-vendor/r-efi-5.3.0/src/protocols/bus_specific_driver_override.rs +32 -0
  118. data/rust-vendor/r-efi-5.3.0/src/protocols/debug_support.rs +835 -0
  119. data/rust-vendor/r-efi-5.3.0/src/protocols/debugport.rs +42 -0
  120. data/rust-vendor/r-efi-5.3.0/src/protocols/decompress.rs +37 -0
  121. data/rust-vendor/r-efi-5.3.0/src/protocols/device_path.rs +82 -0
  122. data/rust-vendor/r-efi-5.3.0/src/protocols/device_path_from_text.rs +26 -0
  123. data/rust-vendor/r-efi-5.3.0/src/protocols/device_path_to_text.rs +30 -0
  124. data/rust-vendor/r-efi-5.3.0/src/protocols/device_path_utilities.rs +63 -0
  125. data/rust-vendor/r-efi-5.3.0/src/protocols/disk_io.rs +40 -0
  126. data/rust-vendor/r-efi-5.3.0/src/protocols/disk_io2.rs +58 -0
  127. data/rust-vendor/r-efi-5.3.0/src/protocols/driver_binding.rs +42 -0
  128. data/rust-vendor/r-efi-5.3.0/src/protocols/driver_diagnostics2.rs +38 -0
  129. data/rust-vendor/r-efi-5.3.0/src/protocols/driver_family_override.rs +23 -0
  130. data/rust-vendor/r-efi-5.3.0/src/protocols/file.rs +183 -0
  131. data/rust-vendor/r-efi-5.3.0/src/protocols/graphics_output.rs +103 -0
  132. data/rust-vendor/r-efi-5.3.0/src/protocols/hii_database.rs +299 -0
  133. data/rust-vendor/r-efi-5.3.0/src/protocols/hii_font.rs +87 -0
  134. data/rust-vendor/r-efi-5.3.0/src/protocols/hii_font_ex.rs +107 -0
  135. data/rust-vendor/r-efi-5.3.0/src/protocols/hii_package_list.rs +14 -0
  136. data/rust-vendor/r-efi-5.3.0/src/protocols/hii_string.rs +71 -0
  137. data/rust-vendor/r-efi-5.3.0/src/protocols/ip4.rs +202 -0
  138. data/rust-vendor/r-efi-5.3.0/src/protocols/ip6.rs +264 -0
  139. data/rust-vendor/r-efi-5.3.0/src/protocols/load_file.rs +26 -0
  140. data/rust-vendor/r-efi-5.3.0/src/protocols/load_file2.rs +15 -0
  141. data/rust-vendor/r-efi-5.3.0/src/protocols/loaded_image.rs +39 -0
  142. data/rust-vendor/r-efi-5.3.0/src/protocols/loaded_image_device_path.rs +13 -0
  143. data/rust-vendor/r-efi-5.3.0/src/protocols/managed_network.rs +147 -0
  144. data/rust-vendor/r-efi-5.3.0/src/protocols/memory_attribute.rs +40 -0
  145. data/rust-vendor/r-efi-5.3.0/src/protocols/mp_services.rs +121 -0
  146. data/rust-vendor/r-efi-5.3.0/src/protocols/pci_io.rs +203 -0
  147. data/rust-vendor/r-efi-5.3.0/src/protocols/platform_driver_override.rs +46 -0
  148. data/rust-vendor/r-efi-5.3.0/src/protocols/rng.rs +83 -0
  149. data/rust-vendor/r-efi-5.3.0/src/protocols/service_binding.rs +20 -0
  150. data/rust-vendor/r-efi-5.3.0/src/protocols/shell.rs +295 -0
  151. data/rust-vendor/r-efi-5.3.0/src/protocols/shell_dynamic_command.rs +33 -0
  152. data/rust-vendor/r-efi-5.3.0/src/protocols/shell_parameters.rs +23 -0
  153. data/rust-vendor/r-efi-5.3.0/src/protocols/simple_file_system.rs +26 -0
  154. data/rust-vendor/r-efi-5.3.0/src/protocols/simple_network.rs +196 -0
  155. data/rust-vendor/r-efi-5.3.0/src/protocols/simple_text_input.rs +38 -0
  156. data/rust-vendor/r-efi-5.3.0/src/protocols/simple_text_input_ex.rs +85 -0
  157. data/rust-vendor/r-efi-5.3.0/src/protocols/simple_text_output.rs +86 -0
  158. data/rust-vendor/r-efi-5.3.0/src/protocols/tcp4.rs +224 -0
  159. data/rust-vendor/r-efi-5.3.0/src/protocols/tcp6.rs +202 -0
  160. data/rust-vendor/r-efi-5.3.0/src/protocols/timestamp.rs +32 -0
  161. data/rust-vendor/r-efi-5.3.0/src/protocols/udp4.rs +151 -0
  162. data/rust-vendor/r-efi-5.3.0/src/protocols/udp6.rs +137 -0
  163. data/rust-vendor/r-efi-5.3.0/src/protocols.rs +54 -0
  164. data/rust-vendor/r-efi-5.3.0/src/system.rs +1130 -0
  165. data/rust-vendor/r-efi-5.3.0/src/vendor/intel/console_control.rs +37 -0
  166. data/rust-vendor/r-efi-5.3.0/src/vendor.rs +10 -0
  167. data/rust-vendor/tokio/.cargo-checksum.json +1 -1
  168. data/rust-vendor/tokio/.cargo_vcs_info.json +1 -1
  169. data/rust-vendor/tokio/CHANGELOG.md +94 -0
  170. data/rust-vendor/tokio/Cargo.lock +1549 -0
  171. data/rust-vendor/tokio/Cargo.toml +96 -83
  172. data/rust-vendor/tokio/Cargo.toml.orig +7 -7
  173. data/rust-vendor/tokio/README.md +1 -1
  174. data/rust-vendor/tokio/src/fs/open_options.rs +4 -1
  175. data/rust-vendor/tokio/src/fs/read.rs +4 -1
  176. data/rust-vendor/tokio/src/fs/write.rs +4 -1
  177. data/rust-vendor/tokio/src/io/async_write.rs +3 -4
  178. data/rust-vendor/tokio/src/io/poll_evented.rs +23 -1
  179. data/rust-vendor/tokio/src/io/stderr.rs +15 -1
  180. data/rust-vendor/tokio/src/io/stdout.rs +14 -0
  181. data/rust-vendor/tokio/src/io/util/async_write_ext.rs +2 -2
  182. data/rust-vendor/tokio/src/io/util/write_buf.rs +11 -2
  183. data/rust-vendor/tokio/src/lib.rs +12 -28
  184. data/rust-vendor/tokio/src/macros/select.rs +6 -8
  185. data/rust-vendor/tokio/src/net/tcp/socket.rs +25 -1
  186. data/rust-vendor/tokio/src/net/tcp/stream.rs +40 -1
  187. data/rust-vendor/tokio/src/process/unix/pidfd_reaper.rs +1 -41
  188. data/rust-vendor/tokio/src/runtime/blocking/pool.rs +18 -14
  189. data/rust-vendor/tokio/src/runtime/builder.rs +10 -4
  190. data/rust-vendor/tokio/src/runtime/handle.rs +3 -2
  191. data/rust-vendor/tokio/src/runtime/io/driver/uring.rs +49 -61
  192. data/rust-vendor/tokio/src/runtime/io/driver.rs +6 -5
  193. data/rust-vendor/tokio/src/runtime/mod.rs +20 -1
  194. data/rust-vendor/tokio/src/runtime/runtime.rs +71 -1
  195. data/rust-vendor/tokio/src/runtime/scheduler/current_thread/mod.rs +24 -8
  196. data/rust-vendor/tokio/src/runtime/scheduler/multi_thread/worker.rs +5 -0
  197. data/rust-vendor/tokio/src/runtime/task/core.rs +1 -0
  198. data/rust-vendor/tokio/src/runtime/task/join.rs +7 -3
  199. data/rust-vendor/tokio/src/runtime/task/list.rs +5 -3
  200. data/rust-vendor/tokio/src/runtime/task/mod.rs +0 -5
  201. data/rust-vendor/tokio/src/runtime/tests/loom_blocking.rs +39 -1
  202. data/rust-vendor/tokio/src/signal/mod.rs +6 -17
  203. data/rust-vendor/tokio/src/signal/registry.rs +1 -1
  204. data/rust-vendor/tokio/src/signal/unix.rs +24 -44
  205. data/rust-vendor/tokio/src/signal/windows/sys.rs +52 -64
  206. data/rust-vendor/tokio/src/signal/windows.rs +35 -23
  207. data/rust-vendor/tokio/src/sync/mpsc/mod.rs +3 -1
  208. data/rust-vendor/tokio/src/sync/oneshot.rs +13 -0
  209. data/rust-vendor/tokio/src/sync/rwlock.rs +4 -5
  210. data/rust-vendor/tokio/src/sync/tests/loom_oneshot.rs +27 -1
  211. data/rust-vendor/tokio/src/task/blocking.rs +16 -1
  212. data/rust-vendor/tokio/src/task/builder.rs +2 -2
  213. data/rust-vendor/tokio/src/task/mod.rs +1 -1
  214. data/rust-vendor/tokio/src/task/spawn.rs +8 -3
  215. data/rust-vendor/tokio/src/task/yield_now.rs +13 -23
  216. data/rust-vendor/tokio/src/time/clock.rs +62 -0
  217. data/rust-vendor/tokio/src/util/memchr.rs +32 -4
  218. data/rust-vendor/tokio/src/util/sharded_list.rs +6 -4
  219. data/rust-vendor/tokio/tests/fs_link.rs +54 -0
  220. data/rust-vendor/tokio/tests/io_async_fd_memory_leak.rs +209 -0
  221. data/rust-vendor/tokio/tests/io_write_buf.rs +56 -0
  222. data/rust-vendor/tokio/tests/process_issue_7144.rs +8 -0
  223. data/rust-vendor/tokio/tests/rt_basic.rs +41 -0
  224. data/rust-vendor/tokio/tests/rt_common_before_park.rs +92 -0
  225. data/rust-vendor/tokio/tests/rt_metrics.rs +1 -1
  226. data/rust-vendor/tokio/tests/rt_panic.rs +12 -0
  227. data/rust-vendor/tokio/tests/rt_shutdown_err.rs +82 -0
  228. data/rust-vendor/tokio/tests/rt_threaded.rs +49 -1
  229. data/rust-vendor/tokio/tests/rt_unstable_metrics.rs +32 -0
  230. data/rust-vendor/tokio/tests/tcp_connect.rs +2 -3
  231. data/rust-vendor/tokio/tests/tcp_shutdown.rs +1 -3
  232. data/rust-vendor/tokio/tests/tcp_socket.rs +3 -4
  233. data/rust-vendor/tokio/tests/tcp_stream.rs +3 -0
  234. data/sig/html_to_markdown.rbs +46 -0
  235. data/spec/convert_with_tables_spec.rb +194 -0
  236. metadata +80 -3
  237. data/rust-vendor/getrandom/src/utils/lazy.rs +0 -64
@@ -0,0 +1,86 @@
1
+ //! Simple Text Output Protocol
2
+ //!
3
+ //! The simple-text-output protocol provides a simple way to print text on screen. It is modeled
4
+ //! around the old VGA-consoles, but does not carry all the old cruft. It expects a rectangular
5
+ //! text array and allows you to move the cursor around to write Unicode symbols to screen.
6
+
7
+ pub const PROTOCOL_GUID: crate::base::Guid = crate::base::Guid::from_fields(
8
+ 0x387477c2,
9
+ 0x69c7,
10
+ 0x11d2,
11
+ 0x8e,
12
+ 0x39,
13
+ &[0x00, 0xa0, 0xc9, 0x69, 0x72, 0x3b],
14
+ );
15
+
16
+ #[repr(C)]
17
+ #[derive(Clone, Copy, Debug)]
18
+ pub struct Mode {
19
+ pub max_mode: i32,
20
+ pub mode: i32,
21
+ pub attribute: i32,
22
+ pub cursor_column: i32,
23
+ pub cursor_row: i32,
24
+ pub cursor_visible: crate::base::Boolean,
25
+ }
26
+
27
+ pub type ProtocolReset = eficall! {fn(
28
+ *mut Protocol,
29
+ crate::base::Boolean,
30
+ ) -> crate::base::Status};
31
+
32
+ pub type ProtocolOutputString = eficall! {fn(
33
+ *mut Protocol,
34
+ *mut crate::base::Char16,
35
+ ) -> crate::base::Status};
36
+
37
+ pub type ProtocolTestString = eficall! {fn(
38
+ *mut Protocol,
39
+ *mut crate::base::Char16,
40
+ ) -> crate::base::Status};
41
+
42
+ pub type ProtocolQueryMode = eficall! {fn(
43
+ *mut Protocol,
44
+ usize,
45
+ *mut usize,
46
+ *mut usize,
47
+ ) -> crate::base::Status};
48
+
49
+ pub type ProtocolSetMode = eficall! {fn(
50
+ *mut Protocol,
51
+ usize,
52
+ ) -> crate::base::Status};
53
+
54
+ pub type ProtocolSetAttribute = eficall! {fn(
55
+ *mut Protocol,
56
+ usize,
57
+ ) -> crate::base::Status};
58
+
59
+ pub type ProtocolClearScreen = eficall! {fn(
60
+ *mut Protocol,
61
+ ) -> crate::base::Status};
62
+
63
+ pub type ProtocolSetCursorPosition = eficall! {fn(
64
+ *mut Protocol,
65
+ usize,
66
+ usize,
67
+ ) -> crate::base::Status};
68
+
69
+ pub type ProtocolEnableCursor = eficall! {fn(
70
+ *mut Protocol,
71
+ crate::base::Boolean,
72
+ ) -> crate::base::Status};
73
+
74
+ #[repr(C)]
75
+ pub struct Protocol {
76
+ pub reset: ProtocolReset,
77
+ pub output_string: ProtocolOutputString,
78
+ pub test_string: ProtocolTestString,
79
+ pub query_mode: ProtocolQueryMode,
80
+ pub set_mode: ProtocolSetMode,
81
+ pub set_attribute: ProtocolSetAttribute,
82
+ pub clear_screen: ProtocolClearScreen,
83
+ pub set_cursor_position: ProtocolSetCursorPosition,
84
+ pub enable_cursor: ProtocolEnableCursor,
85
+ pub mode: *mut Mode,
86
+ }
@@ -0,0 +1,224 @@
1
+ //! Transmission Control Protocol version 4
2
+ //!
3
+ //! It provides services to send and receive data streams.
4
+
5
+ pub const PROTOCOL_GUID: crate::base::Guid = crate::base::Guid::from_fields(
6
+ 0x65530bc7,
7
+ 0xa359,
8
+ 0x410f,
9
+ 0xb0,
10
+ 0x10,
11
+ &[0x5a, 0xad, 0xc7, 0xec, 0x2b, 0x62],
12
+ );
13
+
14
+ pub const SERVICE_BINDING_PROTOCOL_GUID: crate::base::Guid = crate::base::Guid::from_fields(
15
+ 0x00720665,
16
+ 0x67eb,
17
+ 0x4a99,
18
+ 0xba,
19
+ 0xf7,
20
+ &[0xd3, 0xc3, 0x3a, 0x1c, 0x7c, 0xc9],
21
+ );
22
+
23
+ pub type ConnectionState = u32;
24
+
25
+ pub const STATE_CLOSED: ConnectionState = 0x00000000;
26
+ pub const STATE_LISTEN: ConnectionState = 0x00000001;
27
+ pub const STATE_SYN_SENT: ConnectionState = 0x00000002;
28
+ pub const STATE_SYN_RECEIVED: ConnectionState = 0x00000003;
29
+ pub const STATE_ESTABLISHED: ConnectionState = 0x00000004;
30
+ pub const STATE_FIN_WAIT1: ConnectionState = 0x00000005;
31
+ pub const STATE_FIN_WAIT2: ConnectionState = 0x00000006;
32
+ pub const STATE_CLOSING: ConnectionState = 0x00000007;
33
+ pub const STATE_TIME_WAIT: ConnectionState = 0x00000008;
34
+ pub const STATE_CLOSE_WAIT: ConnectionState = 0x00000009;
35
+ pub const STATE_LAST_ACK: ConnectionState = 0x0000000a;
36
+
37
+ #[repr(C)]
38
+ #[derive(Clone, Copy, Debug)]
39
+ pub struct ConfigData {
40
+ pub type_of_service: u8,
41
+ pub time_to_live: u8,
42
+ pub access_point: AccessPoint,
43
+ pub control_option: *mut r#Option,
44
+ }
45
+
46
+ impl Default for ConfigData {
47
+ fn default() -> Self {
48
+ Self {
49
+ type_of_service: Default::default(),
50
+ time_to_live: Default::default(),
51
+ access_point: Default::default(),
52
+ control_option: core::ptr::null_mut(),
53
+ }
54
+ }
55
+ }
56
+
57
+ #[repr(C)]
58
+ #[derive(Clone, Copy, Debug, Default)]
59
+ pub struct AccessPoint {
60
+ pub use_default_address: crate::base::Boolean,
61
+ pub station_address: crate::base::Ipv4Address,
62
+ pub subnet_mask: crate::base::Ipv4Address,
63
+ pub station_port: u16,
64
+ pub remote_address: crate::base::Ipv4Address,
65
+ pub remote_port: u16,
66
+ pub active_flag: crate::base::Boolean,
67
+ }
68
+
69
+ #[repr(C)]
70
+ #[derive(Clone, Copy, Debug)]
71
+ pub struct r#Option {
72
+ pub receive_buffer_size: u32,
73
+ pub send_buffer_size: u32,
74
+ pub max_syn_back_log: u32,
75
+ pub connection_timeout: u32,
76
+ pub data_retries: u32,
77
+ pub fin_timeout: u32,
78
+ pub time_wait_timeout: u32,
79
+ pub keep_alive_probes: u32,
80
+ pub keep_alive_time: u32,
81
+ pub keep_alive_interval: u32,
82
+ pub enable_nagle: crate::base::Boolean,
83
+ pub enable_time_stamp: crate::base::Boolean,
84
+ pub enable_window_scaling: crate::base::Boolean,
85
+ pub enable_selective_ack: crate::base::Boolean,
86
+ pub enable_path_mtu_discovery: crate::base::Boolean,
87
+ }
88
+
89
+ #[repr(C)]
90
+ #[derive(Clone, Copy, Debug)]
91
+ pub struct CompletionToken {
92
+ pub event: crate::base::Event,
93
+ pub status: crate::base::Status,
94
+ }
95
+
96
+ #[repr(C)]
97
+ #[derive(Clone, Copy, Debug)]
98
+ pub struct ConnectionToken {
99
+ pub completion_token: CompletionToken,
100
+ }
101
+
102
+ #[repr(C)]
103
+ #[derive(Clone, Copy, Debug)]
104
+ pub struct ListenToken {
105
+ pub completion_token: CompletionToken,
106
+ pub new_child_handle: crate::base::Handle,
107
+ }
108
+
109
+ #[repr(C)]
110
+ #[derive(Clone, Copy)]
111
+ pub struct IoToken {
112
+ pub completion_token: CompletionToken,
113
+ pub packet: IoTokenPacket,
114
+ }
115
+
116
+ #[repr(C)]
117
+ #[derive(Clone, Copy)]
118
+ pub union IoTokenPacket {
119
+ pub rx_data: *mut ReceiveData,
120
+ pub tx_data: *mut TransmitData,
121
+ }
122
+
123
+ #[repr(C)]
124
+ #[derive(Clone, Copy, Debug)]
125
+ pub struct ReceiveData<const N: usize = 0> {
126
+ pub urgent_flag: crate::base::Boolean,
127
+ pub data_length: u32,
128
+ pub fragment_count: u32,
129
+ pub fragment_table: [FragmentData; N],
130
+ }
131
+
132
+ #[repr(C)]
133
+ #[derive(Clone, Copy, Debug)]
134
+ pub struct FragmentData {
135
+ pub fragment_length: u32,
136
+ pub fragment_buffer: *mut core::ffi::c_void,
137
+ }
138
+
139
+ #[repr(C)]
140
+ #[derive(Clone, Copy, Debug)]
141
+ pub struct TransmitData<const N: usize = 0> {
142
+ pub push: crate::base::Boolean,
143
+ pub urgent: crate::base::Boolean,
144
+ pub data_length: u32,
145
+ pub fragment_count: u32,
146
+ pub fragment_table: [FragmentData; N],
147
+ }
148
+
149
+ #[repr(C)]
150
+ #[derive(Clone, Copy, Debug)]
151
+ pub struct CloseToken {
152
+ pub completion_token: CompletionToken,
153
+ pub abort_on_close: crate::base::Boolean,
154
+ }
155
+
156
+ pub type ProtocolGetModeData = eficall! {fn(
157
+ *mut Protocol,
158
+ *mut ConnectionState,
159
+ *mut ConfigData,
160
+ *mut crate::protocols::ip4::ModeData,
161
+ *mut crate::protocols::managed_network::ConfigData,
162
+ *mut crate::protocols::simple_network::Mode,
163
+ ) -> crate::base::Status};
164
+
165
+ pub type ProtocolConfigure = eficall! {fn(
166
+ *mut Protocol,
167
+ *mut ConfigData,
168
+ ) -> crate::base::Status};
169
+
170
+ pub type ProtocolRoutes = eficall! {fn(
171
+ *mut Protocol,
172
+ crate::base::Boolean,
173
+ *mut crate::base::Ipv4Address,
174
+ *mut crate::base::Ipv4Address,
175
+ *mut crate::base::Ipv4Address,
176
+ ) -> crate::base::Status};
177
+
178
+ pub type ProtocolConnect = eficall! {fn(
179
+ *mut Protocol,
180
+ *mut ConnectionToken,
181
+ ) -> crate::base::Status};
182
+
183
+ pub type ProtocolAccept = eficall! {fn(
184
+ *mut Protocol,
185
+ *mut ListenToken,
186
+ ) -> crate::base::Status};
187
+
188
+ pub type ProtocolTransmit = eficall! {fn(
189
+ *mut Protocol,
190
+ *mut IoToken,
191
+ ) -> crate::base::Status};
192
+
193
+ pub type ProtocolReceive = eficall! {fn(
194
+ *mut Protocol,
195
+ *mut IoToken,
196
+ ) -> crate::base::Status};
197
+
198
+ pub type ProtocolClose = eficall! {fn(
199
+ *mut Protocol,
200
+ *mut CloseToken,
201
+ ) -> crate::base::Status};
202
+
203
+ pub type ProtocolCancel = eficall! {fn(
204
+ *mut Protocol,
205
+ *mut CompletionToken,
206
+ ) -> crate::base::Status};
207
+
208
+ pub type ProtocolPoll = eficall! {fn(
209
+ *mut Protocol,
210
+ ) -> crate::base::Status};
211
+
212
+ #[repr(C)]
213
+ pub struct Protocol {
214
+ pub get_mode_data: ProtocolGetModeData,
215
+ pub configure: ProtocolConfigure,
216
+ pub routes: ProtocolRoutes,
217
+ pub connect: ProtocolConnect,
218
+ pub accept: ProtocolAccept,
219
+ pub transmit: ProtocolTransmit,
220
+ pub receive: ProtocolReceive,
221
+ pub close: ProtocolClose,
222
+ pub cancel: ProtocolCancel,
223
+ pub poll: ProtocolPoll,
224
+ }
@@ -0,0 +1,202 @@
1
+ //! Transmission Control Protocol version 6
2
+ //!
3
+ //! It provides services to send and receive data streams.
4
+
5
+ pub const PROTOCOL_GUID: crate::base::Guid = crate::base::Guid::from_fields(
6
+ 0x46e44855,
7
+ 0xbd60,
8
+ 0x4ab7,
9
+ 0xab,
10
+ 0x0d,
11
+ &[0xa6, 0x79, 0xb9, 0x44, 0x7d, 0x77],
12
+ );
13
+
14
+ pub const SERVICE_BINDING_PROTOCOL_GUID: crate::base::Guid = crate::base::Guid::from_fields(
15
+ 0xec20eb79,
16
+ 0x6c1a,
17
+ 0x4664,
18
+ 0x9a,
19
+ 0x0d,
20
+ &[0xd2, 0xe4, 0xcc, 0x16, 0xd6, 0x64],
21
+ );
22
+
23
+ #[repr(C)]
24
+ #[derive(Clone, Copy, Debug)]
25
+ pub struct AccessPoint {
26
+ pub station_address: crate::base::Ipv6Address,
27
+ pub station_port: u16,
28
+ pub remote_address: crate::base::Ipv6Address,
29
+ pub remote_port: u16,
30
+ pub active_flag: crate::base::Boolean,
31
+ }
32
+
33
+ #[repr(C)]
34
+ #[derive(Clone, Copy, Debug)]
35
+ pub struct r#Option {
36
+ pub receive_buffer_size: u32,
37
+ pub send_buffer_size: u32,
38
+ pub max_syn_back_log: u32,
39
+ pub connection_timeout: u32,
40
+ pub data_retries: u32,
41
+ pub fin_timeout: u32,
42
+ pub time_wait_timeout: u32,
43
+ pub keep_alive_probes: u32,
44
+ pub keep_alive_time: u32,
45
+ pub keep_alive_interval: u32,
46
+ pub enable_nagle: crate::base::Boolean,
47
+ pub enable_time_stamp: crate::base::Boolean,
48
+ pub enable_window_scaling: crate::base::Boolean,
49
+ pub enable_selective_ack: crate::base::Boolean,
50
+ pub enable_path_mtu_discovery: crate::base::Boolean,
51
+ }
52
+
53
+ #[repr(C)]
54
+ #[derive(Clone, Copy, Debug)]
55
+ pub struct ConfigData {
56
+ pub traffic_class: u8,
57
+ pub hop_limit: u8,
58
+ pub access_point: AccessPoint,
59
+ pub control_option: *mut r#Option,
60
+ }
61
+
62
+ pub type ConnectionState = u32;
63
+
64
+ pub const STATE_CLOSED: ConnectionState = 0x00000000;
65
+ pub const STATE_LISTEN: ConnectionState = 0x00000001;
66
+ pub const STATE_SYN_SENT: ConnectionState = 0x00000002;
67
+ pub const STATE_SYN_RECEIVED: ConnectionState = 0x00000003;
68
+ pub const STATE_ESTABLISHED: ConnectionState = 0x00000004;
69
+ pub const STATE_FIN_WAIT1: ConnectionState = 0x00000005;
70
+ pub const STATE_FIN_WAIT2: ConnectionState = 0x00000006;
71
+ pub const STATE_CLOSING: ConnectionState = 0x00000007;
72
+ pub const STATE_TIME_WAIT: ConnectionState = 0x00000008;
73
+ pub const STATE_CLOSE_WAIT: ConnectionState = 0x00000009;
74
+ pub const STATE_LAST_ACK: ConnectionState = 0x0000000a;
75
+
76
+ #[repr(C)]
77
+ #[derive(Clone, Copy, Debug)]
78
+ pub struct CompletionToken {
79
+ pub event: crate::base::Event,
80
+ pub status: crate::base::Status,
81
+ }
82
+
83
+ #[repr(C)]
84
+ #[derive(Clone, Copy, Debug)]
85
+ pub struct ConnectionToken {
86
+ pub completion_token: CompletionToken,
87
+ }
88
+
89
+ #[repr(C)]
90
+ #[derive(Clone, Copy, Debug)]
91
+ pub struct ListenToken {
92
+ pub completion_token: CompletionToken,
93
+ pub new_child_handle: crate::base::Handle,
94
+ }
95
+
96
+ #[repr(C)]
97
+ #[derive(Clone, Copy)]
98
+ pub struct IoToken {
99
+ pub completion_token: CompletionToken,
100
+ pub packet: IoTokenPacket,
101
+ }
102
+
103
+ #[repr(C)]
104
+ #[derive(Clone, Copy)]
105
+ pub union IoTokenPacket {
106
+ pub rx_data: *mut ReceiveData,
107
+ pub tx_data: *mut TransmitData,
108
+ }
109
+
110
+ #[repr(C)]
111
+ #[derive(Clone, Copy, Debug)]
112
+ pub struct ReceiveData<const N: usize = 0> {
113
+ pub urgent_flag: crate::base::Boolean,
114
+ pub data_length: u32,
115
+ pub fragment_count: u32,
116
+ pub fragment_table: [FragmentData; N],
117
+ }
118
+
119
+ #[repr(C)]
120
+ #[derive(Clone, Copy, Debug)]
121
+ pub struct FragmentData {
122
+ pub fragment_length: u32,
123
+ pub fragment_buffer: *mut core::ffi::c_void,
124
+ }
125
+
126
+ #[repr(C)]
127
+ #[derive(Clone, Copy, Debug)]
128
+ pub struct TransmitData<const N: usize = 0> {
129
+ pub push: crate::base::Boolean,
130
+ pub urgent: crate::base::Boolean,
131
+ pub data_length: u32,
132
+ pub fragment_count: u32,
133
+ pub fragment_table: [FragmentData; N],
134
+ }
135
+
136
+ #[repr(C)]
137
+ #[derive(Clone, Copy, Debug)]
138
+ pub struct CloseToken {
139
+ pub completion_token: CompletionToken,
140
+ pub abort_on_close: crate::base::Boolean,
141
+ }
142
+
143
+ pub type ProtocolGetModeData = eficall! {fn(
144
+ *mut Protocol,
145
+ *mut ConnectionState,
146
+ *mut ConfigData,
147
+ *mut crate::protocols::ip6::ModeData,
148
+ *mut crate::protocols::managed_network::ConfigData,
149
+ *mut crate::protocols::simple_network::Mode,
150
+ ) -> crate::base::Status};
151
+
152
+ pub type ProtocolConfigure = eficall! {fn(
153
+ *mut Protocol,
154
+ *mut ConfigData,
155
+ ) -> crate::base::Status};
156
+
157
+ pub type ProtocolConnect = eficall! {fn(
158
+ *mut Protocol,
159
+ *mut ConnectionToken,
160
+ ) -> crate::base::Status};
161
+
162
+ pub type ProtocolAccept = eficall! {fn(
163
+ *mut Protocol,
164
+ *mut ListenToken,
165
+ ) -> crate::base::Status};
166
+
167
+ pub type ProtocolTransmit = eficall! {fn(
168
+ *mut Protocol,
169
+ *mut IoToken,
170
+ ) -> crate::base::Status};
171
+
172
+ pub type ProtocolReceive = eficall! {fn(
173
+ *mut Protocol,
174
+ *mut IoToken,
175
+ ) -> crate::base::Status};
176
+
177
+ pub type ProtocolClose = eficall! {fn(
178
+ *mut Protocol,
179
+ *mut CloseToken,
180
+ ) -> crate::base::Status};
181
+
182
+ pub type ProtocolCancel = eficall! {fn(
183
+ *mut Protocol,
184
+ *mut CompletionToken,
185
+ ) -> crate::base::Status};
186
+
187
+ pub type ProtocolPoll = eficall! {fn(
188
+ *mut Protocol,
189
+ ) -> crate::base::Status};
190
+
191
+ #[repr(C)]
192
+ pub struct Protocol {
193
+ pub get_mode_data: ProtocolGetModeData,
194
+ pub configure: ProtocolConfigure,
195
+ pub connect: ProtocolConnect,
196
+ pub accept: ProtocolAccept,
197
+ pub transmit: ProtocolTransmit,
198
+ pub receive: ProtocolReceive,
199
+ pub close: ProtocolClose,
200
+ pub cancel: ProtocolCancel,
201
+ pub poll: ProtocolPoll,
202
+ }
@@ -0,0 +1,32 @@
1
+ //! EFI Timestamp Protocol
2
+ //!
3
+ //! The Timestamp protocol provides a platform independent interface for
4
+ //! retrieving a high resolution timestamp counter.
5
+
6
+ pub const PROTOCOL_GUID: crate::base::Guid = crate::base::Guid::from_fields(
7
+ 0xafbfde41,
8
+ 0x2e6e,
9
+ 0x4262,
10
+ 0xba,
11
+ 0x65,
12
+ &[0x62, 0xb9, 0x23, 0x6e, 0x54, 0x95],
13
+ );
14
+
15
+ #[repr(C)]
16
+ #[derive(Clone, Copy, Debug)]
17
+ pub struct Properties {
18
+ pub frequency: u64,
19
+ pub end_value: u64,
20
+ }
21
+
22
+ pub type ProtocolGetTimestamp = eficall! {fn() -> u64};
23
+
24
+ pub type ProtocolGetProperties = eficall! {fn(
25
+ *mut Properties,
26
+ ) -> crate::base::Status};
27
+
28
+ #[repr(C)]
29
+ pub struct Protocol {
30
+ pub get_timestamp: ProtocolGetTimestamp,
31
+ pub get_properties: ProtocolGetProperties,
32
+ }
@@ -0,0 +1,151 @@
1
+ //! User Datagram Protocol V4
2
+ //!
3
+ //! It provides simple packet-oriented services to transmit and receive UDP packets.
4
+
5
+ pub const PROTOCOL_GUID: crate::base::Guid = crate::base::Guid::from_fields(
6
+ 0x3ad9df29,
7
+ 0x4501,
8
+ 0x478d,
9
+ 0xb1,
10
+ 0xf8,
11
+ &[0x7f, 0x7f, 0xe7, 0x0e, 0x50, 0xf3],
12
+ );
13
+
14
+ pub const SERVICE_BINDING_PROTOCOL_GUID: crate::base::Guid = crate::base::Guid::from_fields(
15
+ 0x83f01464,
16
+ 0x99bd,
17
+ 0x45e5,
18
+ 0xb3,
19
+ 0x83,
20
+ &[0xaf, 0x63, 0x05, 0xd8, 0xe9, 0xe6],
21
+ );
22
+
23
+ #[repr(C)]
24
+ #[derive(Clone, Copy, Debug)]
25
+ pub struct ConfigData {
26
+ pub accept_broadcast: crate::base::Boolean,
27
+ pub accept_promiscuous: crate::base::Boolean,
28
+ pub accept_any_port: crate::base::Boolean,
29
+ pub allow_duplicate_port: crate::base::Boolean,
30
+ pub type_of_service: u8,
31
+ pub time_to_live: u8,
32
+ pub do_not_fragment: crate::base::Boolean,
33
+ pub receive_timeout: u32,
34
+ pub transmit_timeout: u32,
35
+ pub use_default_address: crate::base::Boolean,
36
+ pub station_address: crate::base::Ipv4Address,
37
+ pub subnet_mask: crate::base::Ipv4Address,
38
+ pub station_port: u16,
39
+ pub remote_address: crate::base::Ipv4Address,
40
+ pub remote_port: u16,
41
+ }
42
+
43
+ #[repr(C)]
44
+ #[derive(Clone, Copy)]
45
+ pub struct SessionData {
46
+ pub source_address: crate::base::Ipv4Address,
47
+ pub source_port: u16,
48
+ pub destination_address: crate::base::Ipv4Address,
49
+ pub destination_port: u16,
50
+ }
51
+
52
+ #[repr(C)]
53
+ #[derive(Clone, Copy, Debug)]
54
+ pub struct FragmentData {
55
+ pub fragment_length: u32,
56
+ pub fragment_buffer: *mut core::ffi::c_void,
57
+ }
58
+
59
+ #[repr(C)]
60
+ #[derive(Clone, Copy)]
61
+ pub struct ReceiveData<const N: usize = 0> {
62
+ pub time_stamp: crate::system::Time,
63
+ pub recycle_signal: crate::base::Event,
64
+ pub udp_session: SessionData,
65
+ pub data_length: u32,
66
+ pub fragment_count: u32,
67
+ pub fragment_table: [FragmentData; N],
68
+ }
69
+
70
+ #[repr(C)]
71
+ #[derive(Clone, Copy)]
72
+ pub struct TransmitData<const N: usize = 0> {
73
+ pub udp_session_data: *mut SessionData,
74
+ pub gateway_address: *mut crate::base::Ipv4Address,
75
+ pub data_length: u32,
76
+ pub fragment_count: u32,
77
+ pub fragment_table: [FragmentData; N],
78
+ }
79
+
80
+ #[repr(C)]
81
+ #[derive(Clone, Copy)]
82
+ pub union CompletionTokenPacket {
83
+ pub rx_data: *mut ReceiveData,
84
+ pub tx_data: *mut TransmitData,
85
+ }
86
+
87
+ #[repr(C)]
88
+ #[derive(Clone, Copy)]
89
+ pub struct CompletionToken {
90
+ pub event: crate::base::Event,
91
+ pub status: crate::base::Status,
92
+ pub packet: CompletionTokenPacket,
93
+ }
94
+
95
+ pub type ProtocolGetModeData = eficall! {fn(
96
+ *mut Protocol,
97
+ *mut ConfigData,
98
+ *mut crate::protocols::ip4::ModeData,
99
+ *mut crate::protocols::managed_network::ConfigData,
100
+ *mut crate::protocols::simple_network::Mode,
101
+ ) -> crate::base::Status};
102
+
103
+ pub type ProtocolConfigure = eficall! {fn(
104
+ *mut Protocol,
105
+ *mut ConfigData,
106
+ ) -> crate::base::Status};
107
+
108
+ pub type ProtocolGroups = eficall! {fn(
109
+ *mut Protocol,
110
+ crate::base::Boolean,
111
+ *mut crate::base::Ipv4Address,
112
+ ) -> crate::base::Status};
113
+
114
+ pub type ProtocolRoutes = eficall! {fn(
115
+ *mut Protocol,
116
+ crate::base::Boolean,
117
+ *mut crate::base::Ipv4Address,
118
+ *mut crate::base::Ipv4Address,
119
+ *mut crate::base::Ipv4Address,
120
+ ) -> crate::base::Status};
121
+
122
+ pub type ProtocolTransmit = eficall! {fn(
123
+ *mut Protocol,
124
+ *mut CompletionToken,
125
+ ) -> crate::base::Status};
126
+
127
+ pub type ProtocolReceive = eficall! {fn(
128
+ *mut Protocol,
129
+ *mut CompletionToken,
130
+ ) -> crate::base::Status};
131
+
132
+ pub type ProtocolCancel = eficall! {fn(
133
+ *mut Protocol,
134
+ *mut CompletionToken,
135
+ ) -> crate::base::Status};
136
+
137
+ pub type ProtocolPoll = eficall! {fn(
138
+ *mut Protocol,
139
+ ) -> crate::base::Status};
140
+
141
+ #[repr(C)]
142
+ pub struct Protocol {
143
+ pub get_mode_data: ProtocolGetModeData,
144
+ pub configure: ProtocolConfigure,
145
+ pub groups: ProtocolGroups,
146
+ pub routes: ProtocolRoutes,
147
+ pub transmit: ProtocolTransmit,
148
+ pub receive: ProtocolReceive,
149
+ pub cancel: ProtocolCancel,
150
+ pub poll: ProtocolPoll,
151
+ }