HIDL defined type to support a composed interface

This patch supports parcel/un-parcel a struct with a composed
Interface.

Bug: 68295540
Test: hidl_test
Change-Id: Ia1d4493115c9bd2df8a5b2266632d3e88931ee4d
6 files changed
tree: 07acbc4d3f3b52714c8a60b30bfdcf2081be2d63
  1. build/
  2. c2hal/
  3. docs/
  4. include_hash/
  5. test/
  6. utils/
  7. .clang-format
  8. Android.bp
  9. Annotation.cpp
  10. Annotation.h
  11. ArrayType.cpp
  12. ArrayType.h
  13. AST.cpp
  14. AST.h
  15. CleanSpec.mk
  16. CompoundType.cpp
  17. CompoundType.h
  18. ConstantExpression.cpp
  19. ConstantExpression.h
  20. Coordinator.cpp
  21. Coordinator.h
  22. DeathRecipientType.cpp
  23. DeathRecipientType.h
  24. EnumType.cpp
  25. EnumType.h
  26. FmqType.cpp
  27. FmqType.h
  28. generateCpp.cpp
  29. generateCppAdapter.cpp
  30. generateCppImpl.cpp
  31. generateJava.cpp
  32. generateVts.cpp
  33. HandleType.cpp
  34. HandleType.h
  35. Hash.cpp
  36. hidl-gen_l.ll
  37. hidl-gen_y.yy
  38. HidlTypeAssertion.cpp
  39. HidlTypeAssertion.h
  40. Interface.cpp
  41. Interface.h
  42. Location.cpp
  43. Location.h
  44. main.cpp
  45. MemoryType.cpp
  46. MemoryType.h
  47. Method.cpp
  48. Method.h
  49. MODULE_LICENSE_APACHE2
  50. NamedType.cpp
  51. NamedType.h
  52. NOTICE
  53. OWNERS
  54. PointerType.cpp
  55. PointerType.h
  56. PREUPLOAD.cfg
  57. README.md
  58. Reference.h
  59. RefType.cpp
  60. RefType.h
  61. ScalarType.cpp
  62. ScalarType.h
  63. Scope.cpp
  64. Scope.h
  65. StringType.cpp
  66. StringType.h
  67. Type.cpp
  68. Type.h
  69. TypeDef.cpp
  70. TypeDef.h
  71. update-all-google-makefiles.sh
  72. update-makefiles-helper.sh
  73. VectorType.cpp
  74. VectorType.h
README.md

hidl-gen user guide

1. Build

croot
make hidl-gen

2. Run

hidl-gen -o output-path -L language (-r interface-root) fqname

output-path: directory to store the output files.
language: output file for given language. e.g.c++, vts..

fqname: fully qualified name of the input files.
For singe file input, follow the format: package@version::fileName
For directory input, follow the format: package@version

interface-root(optional): prefix and root path for fqname.
If not set, use the default prefix: android.hardware and default root path
defined in $TOP.

examples:

croot
hidl-gen -o output -L c++ -r android.hardware:hardware/interfaces -r android.hidl:system/libhidl/transport android.hardware.nfc@1.0::INfc.hal
hidl-gen -o output -L vts -r android.hardware:hardware/interfaces -r android.hidl:system/libhidl/transport android.hardware.nfc@1.0
hidl-gen -o test -L c++ -r android.hardware:hardware/interfaces -r android.hidl:system/libhidl/transport android.hardware.nfc@1.0
hidl-gen -L hash -r android.hardware:hardware/interfaces -r android.hidl:system/libhidl/transport android.hardware.nfc@1.0