liiir1985 7f62dcda9f | ||
---|---|---|
.. | ||
build | ||
c2hal | ||
hashing | ||
hidl2aidl | ||
host_utils | ||
lint | ||
metadata | ||
scripts | ||
test | ||
utils | ||
.clang-format | ||
AST.cpp | ||
AST.h | ||
Android.bp | ||
Annotation.cpp | ||
Annotation.h | ||
ArrayType.cpp | ||
ArrayType.h | ||
CleanSpec.mk | ||
CompoundType.cpp | ||
CompoundType.h | ||
ConstantExpression.cpp | ||
ConstantExpression.h | ||
Coordinator.cpp | ||
Coordinator.h | ||
DeathRecipientType.cpp | ||
DeathRecipientType.h | ||
DocComment.cpp | ||
DocComment.h | ||
EnumType.cpp | ||
EnumType.h | ||
FmqType.cpp | ||
FmqType.h | ||
FormattingConstants.h | ||
HandleType.cpp | ||
HandleType.h | ||
HidlTypeAssertion.cpp | ||
HidlTypeAssertion.h | ||
Interface.cpp | ||
Interface.h | ||
Location.cpp | ||
Location.h | ||
MemoryType.cpp | ||
MemoryType.h | ||
Method.cpp | ||
Method.h | ||
NOTICE | ||
NamedType.cpp | ||
NamedType.h | ||
OWNERS | ||
PREUPLOAD.cfg | ||
PointerType.cpp | ||
PointerType.h | ||
README.md | ||
Reference.h | ||
ScalarType.cpp | ||
ScalarType.h | ||
Scope.cpp | ||
Scope.h | ||
StringType.cpp | ||
StringType.h | ||
TEST_MAPPING | ||
Type.cpp | ||
Type.h | ||
TypeDef.cpp | ||
TypeDef.h | ||
VectorType.cpp | ||
VectorType.h | ||
generateCpp.cpp | ||
generateCppImpl.cpp | ||
generateDependencies.cpp | ||
generateFormattedHidl.cpp | ||
generateInheritanceHierarchy.cpp | ||
generateJava.cpp | ||
generateJavaImpl.cpp | ||
generateVts.cpp | ||
hidl-gen_l.h | ||
hidl-gen_l.ll | ||
hidl-gen_y-helpers.h | ||
hidl-gen_y.yy | ||
main.cpp | ||
update-all-google-makefiles.sh | ||
update-makefiles-helper.sh |
README.md
hidl-gen
Full documentation can be found here: https://source.android.com/devices/architecture/hidl/
hidl-gen is a compiler for the HIDL (HAL Interface Design Language) which generates C++ and Java endpoints for RPC mechanisms. The main userspace libraries which this compiler uses can be found at system/libhidl.
1. Build
m hidl-gen
2. Run
Note that options for hidl-gen expected to be invoked by the build system are marked with 'internal' in the help menu.
hidl-gen -h
hidl-gen -o output -L c++-impl -r android.hardware:hardware/interfaces -r android.hidl:system/libhidl/transport android.hardware.nfc@1.0
Some defaults for package roots are also provided
hidl-gen -o output -L c++-impl android.hardware.nfc@1.0
hidl-gen -o output -L vts android.hardware.nfc@1.0
hidl-gen -L hash android.hardware.nfc@1.0
Example command for vendor project
hidl-gen -L c++-impl -r vendor.foo:vendor/foo/interfaces vendor.foo.nfc@1.0
See update-makefiles-helper.sh and update-all-google-makefiles.sh for examples of how to generate HIDL makefiles (using the -Landroidbp option).
NOTE: When using the -Landroidbp option, you can force generated modules to be installed in
/system_ext
rather than other partition by putting a marker file.hidl_for_system_ext
alongside*.hal
files.
NOTE: You can also install the vendor variant of the generated modules to be installed in
/odm
rather than/vendor
by putting a marker file.hidl_for_odm
alongside*.hal
files.
c2hal
This is a helper tool to convert C headers to valid .hal files.
m c2hal && c2hal -h