pw_rpc2: Split ProtocolStatusCode into ServerError and ClientError

Split protocol status codes into separate ServerError and ClientError
enums with concise names scoped to each endpoint role, and separate
coroutine frame allocation failure from invalid method future errors.

Change-Id: I3f3d790796a8532c345cb61cb504e2105a7b8264
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/sandbox/+/483969
40 files changed
tree: 7f4d6a7a70c353a95c4a4989da883bbf12ef35fc
  1. .agents/
  2. .allstar/
  3. .gemini/
  4. .github/
  5. .vscode/
  6. build_overrides/
  7. docker/
  8. docs/
  9. kudzu/
  10. pw_alignment/
  11. pw_allocator/
  12. pw_allocator_zephyr/
  13. pw_analog/
  14. pw_android_toolchain/
  15. pw_arduino_build/
  16. pw_assert/
  17. pw_assert_basic/
  18. pw_assert_fuchsia/
  19. pw_assert_log/
  20. pw_assert_tokenized/
  21. pw_assert_trap/
  22. pw_assert_zephyr/
  23. pw_async/
  24. pw_async2/
  25. pw_async_basic/
  26. pw_async_fuchsia/
  27. pw_atomic/
  28. pw_base64/
  29. pw_bloat/
  30. pw_blob_store/
  31. pw_bluetooth/
  32. pw_bluetooth_hci/
  33. pw_bluetooth_profiles/
  34. pw_bluetooth_proxy/
  35. pw_bluetooth_sapphire/
  36. pw_boot/
  37. pw_boot_cortex_m/
  38. pw_buf/
  39. pw_build/
  40. pw_build_android/
  41. pw_build_info/
  42. pw_build_mcuxpresso/
  43. pw_bytes/
  44. pw_change/
  45. pw_channel/
  46. pw_checksum/
  47. pw_chre/
  48. pw_chrono/
  49. pw_chrono_embos/
  50. pw_chrono_freertos/
  51. pw_chrono_rp2040/
  52. pw_chrono_stl/
  53. pw_chrono_threadx/
  54. pw_chrono_zephyr/
  55. pw_cli/
  56. pw_cli_analytics/
  57. pw_clock_tree/
  58. pw_clock_tree_mcuxpresso/
  59. pw_compilation_testing/
  60. pw_config_loader/
  61. pw_console/
  62. pw_containers/
  63. pw_cpu_exception/
  64. pw_cpu_exception_cortex_m/
  65. pw_cpu_exception_risc_v/
  66. pw_crypto/
  67. pw_digital_io/
  68. pw_digital_io_linux/
  69. pw_digital_io_mcuxpresso/
  70. pw_digital_io_rp2040/
  71. pw_digital_io_zephyr/
  72. pw_display/
  73. pw_dma_mcuxpresso/
  74. pw_docgen/
  75. pw_doctor/
  76. pw_elf/
  77. pw_emu/
  78. pw_enum/
  79. pw_env_setup/
  80. pw_env_setup_zephyr/
  81. pw_file/
  82. pw_flatbuffers/
  83. pw_format/
  84. pw_fortifier/
  85. pw_function/
  86. pw_fuzzer/
  87. pw_ghish/
  88. pw_grpc/
  89. pw_hdlc/
  90. pw_hex_dump/
  91. pw_i2c/
  92. pw_i2c_linux/
  93. pw_i2c_mcuxpresso/
  94. pw_i2c_rp2040/
  95. pw_i2c_zephyr/
  96. pw_ide/
  97. pw_interrupt/
  98. pw_interrupt_cortex_m/
  99. pw_interrupt_freertos/
  100. pw_interrupt_zephyr/
  101. pw_intrusive_ptr/
  102. pw_json/
  103. pw_kernel/
  104. pw_kvs/
  105. pw_libc/
  106. pw_libcxx/
  107. pw_log/
  108. pw_log_android/
  109. pw_log_basic/
  110. pw_log_fuchsia/
  111. pw_log_null/
  112. pw_log_rpc/
  113. pw_log_string/
  114. pw_log_tokenized/
  115. pw_log_zephyr/
  116. pw_malloc/
  117. pw_malloc_freelist/
  118. pw_malloc_freertos/
  119. pw_memory/
  120. pw_metric/
  121. pw_module/
  122. pw_multibuf/
  123. pw_multisink/
  124. pw_numeric/
  125. pw_package/
  126. pw_perf_test/
  127. pw_persistent_ram/
  128. pw_polyfill/
  129. pw_preprocessor/
  130. pw_presubmit/
  131. pw_protobuf/
  132. pw_protobuf_compiler/
  133. pw_random/
  134. pw_random_fuchsia/
  135. pw_result/
  136. pw_ring_buffer/
  137. pw_router/
  138. pw_rpc/
  139. pw_rpc2/
  140. pw_rpc_transport/
  141. pw_rust/
  142. pw_sensor/
  143. pw_snapshot/
  144. pw_software_update/
  145. pw_span/
  146. pw_spi/
  147. pw_spi_linux/
  148. pw_spi_mcuxpresso/
  149. pw_spi_rp2040/
  150. pw_spi_zephyr/
  151. pw_status/
  152. pw_stm32cube_build/
  153. pw_stream/
  154. pw_stream_uart_linux/
  155. pw_stream_uart_mcuxpresso/
  156. pw_string/
  157. pw_symbolizer/
  158. pw_sync/
  159. pw_sync_baremetal/
  160. pw_sync_embos/
  161. pw_sync_freertos/
  162. pw_sync_stl/
  163. pw_sync_threadx/
  164. pw_sync_zephyr/
  165. pw_sys_io/
  166. pw_sys_io_ambiq_sdk/
  167. pw_sys_io_arduino/
  168. pw_sys_io_baremetal_lm3s6965evb/
  169. pw_sys_io_baremetal_stm32f429/
  170. pw_sys_io_emcraft_sf2/
  171. pw_sys_io_mcuxpresso/
  172. pw_sys_io_rp2040/
  173. pw_sys_io_stdio/
  174. pw_sys_io_stm32cube/
  175. pw_sys_io_zephyr/
  176. pw_system/
  177. pw_target_runner/
  178. pw_thread/
  179. pw_thread_embos/
  180. pw_thread_freertos/
  181. pw_thread_stl/
  182. pw_thread_threadx/
  183. pw_thread_zephyr/
  184. pw_time/
  185. pw_tls_client/
  186. pw_tls_client_boringssl/
  187. pw_tls_client_mbedtls/
  188. pw_tokenizer/
  189. pw_toolchain/
  190. pw_trace/
  191. pw_trace_tokenized/
  192. pw_transfer/
  193. pw_transport/
  194. pw_uart/
  195. pw_uart_mcuxpresso/
  196. pw_ulink/
  197. pw_unit_test/
  198. pw_uuid/
  199. pw_varint/
  200. pw_watch/
  201. pw_web/
  202. pw_work_queue/
  203. seed/
  204. targets/
  205. third_party/
  206. zephyr/
  207. .bazelignore
  208. .bazelrc
  209. .bazelversion
  210. .black.toml
  211. .clang-format
  212. .clang-tidy
  213. .git-blame-ignore-revs
  214. .gitattributes
  215. .gitignore
  216. .gn
  217. .mypy.ini
  218. .prettierignore
  219. .prettierrc.cjs
  220. .pw_ide.yaml
  221. .pylintrc
  222. .rgignore
  223. .ruff.toml
  224. activate.bat
  225. Android.bp
  226. AUTHORS
  227. bootstrap.bat
  228. bootstrap.fish
  229. bootstrap.sh
  230. BUILD.bazel
  231. BUILD.gn
  232. BUILDCONFIG.gn
  233. CMakeLists.txt
  234. EXTENDED_OWNERS
  235. GEMINI.md
  236. gh
  237. go.mod
  238. go.sum
  239. Kconfig.zephyr
  240. LICENSE
  241. MODULE.bazel
  242. MODULE.bazel.lock
  243. modules.gni
  244. OWNERS
  245. package.json
  246. pigweed.json
  247. PIGWEED_MODULES
  248. pw
  249. README.md
  250. REPO.bazel
  251. rustfmt.toml
  252. tsconfig.json
  253. workflows.json
  254. WORKSPACE_OWNERS
README.md

Pigweed

Pigweed is an open source collection of embedded-targeted libraries–or as we like to call them, modules. These modules are building blocks and infrastructure that enable faster and more reliable development on small-footprint MMU-less 32-bit microcontrollers like the STMicroelectronics STM32L452 or the Nordic nRF52832.

For more information please see our website: https://pigweed.dev/.

Links