static synchronized eBPFHelperDataTypes get(Program program, MessageLog log) {

		boolean previouslyParsed =
			TransientProgramProperties.hasProperty(program, EBPF_DATATYPE_MGR_PROPERTY_KEY);
		eBPFHelperDataTypes instance = TransientProgramProperties.getProperty(program,
			EBPF_DATATYPE_MGR_PROPERTY_KEY, SCOPE.ANALYSIS_SESSION, eBPFHelperDataTypes.class,
			() -> parseHelpFunctionDefs(program));
		if (instance == null && !previouslyParsed) {
			log.appendMsg("Failed to parse eBPF helper function definitions (see log for details)");
		}
		return instance;
	}
Get the BPF helper datatypes which has been populated with helper function 
definitions and related dependency datatypes.  All structure dependencies are defined
as empty structures.  In addition, the big-endian typedefs {@code __be16} and 
{@code __be32} will be prepopulated within the program's datatype manager with
big-endian default setting enabled.

@param program target program
@param log analysis message log
@return BPF helper datatype or null if failed to initialize.
Ghidra/Processors/eBPF/src/main/java/ghidra/app/plugin/core/analysis/eBPFHelperDataTypes.java