基于C语言开发的optee_os开源设计源码解析

作品简介

该项目为optee_os开源设计源码,以C语言为核心,辅以Python、HTML、Shell等多种语言,共包含1604个文件,其中C语言文件916个,头文件376个,Makefile文件149个,汇编文件63个,Markdown文件24个,Python脚本11个,PNG图片10个,文本文件6个,Mercurial忽略文件5个,HTML文件4个。该源码解析旨在深入理解optee_os的架构与实现。

关键词

C语言 开发 optee_os 开源设计 源码解析

目录结构

  ├── .github
  ├── issue_template.md
  ├── pull_request_template.md
├── .gitignore
├── .shippable.yml
├── .travis.yml
├── CHANGELOG.md
├── LICENSE
├── MAINTAINERS
├── Makefile
├── Notice.md
  ├── core
    ├── arch
      ├── arm
      ├── arm.mk
        ├── cpu
        ├── cortex-a15.mk
        ├── cortex-a5.mk
        ├── cortex-a7.mk
        ├── cortex-a9.mk
        ├── cortex-armv8-0.mk
        ├── crypto
        ├── aes-gcm-ce.c
        ├── ghash-ce-core_a32.S
        ├── ghash-ce-core_a64.S
        ├── sub.mk
        ├── dts
        ├── stm32mp157-pinctrl.dtsi
        ├── stm32mp157c-ed1.dts
        ├── stm32mp157c-ev1.dts
        ├── stm32mp157c.dtsi
        ├── include
        ├── arm.h
        ├── arm32.h
        ├── arm32_macros.S
        ├── arm32_macros_cortex_a9.S
        ├── arm64.h
        ├── arm64_macros.S
          ├── crypto
          ├── ghash-ce-core.h
          ├── kernel
          ├── abort.h
          ├── cache_helpers.h
          ├── delay.h
          ├── early_ta.h
          ├── generic_boot.h
          ├── linker.h
          ├── misc.h
          ├── mutex.h
          ├── pm_stubs.h
          ├── pseudo_ta.h
          ├── spinlock.h
          ├── tee_l2cc_mutex.h
          ├── thread.h
          ├── thread_defs.h
          ├── time_source.h
          ├── timer.h
          ├── tlb_helpers.h
          ├── tz_proc_def.h
          ├── tz_ssvce_def.h
          ├── tz_ssvce_pl310.h
          ├── unwind.h
          ├── user_ta.h
          ├── vfp.h
          ├── wait_queue.h
          ├── mm
          ├── core_memprot.h
          ├── core_mmu.h
          ├── generic_ram_layout.h
          ├── mobj.h
          ├── pgt_cache.h
          ├── tee_pager.h
          ├── sm
          ├── optee_smc.h
          ├── pm.h
          ├── psci.h
          ├── sm.h
          ├── std_smc.h
          ├── tee_mon.h
          ├── teesmc_opteed.h
          ├── teesmc_opteed_macros.h
        ├── smccc.h
          ├── tee
          ├── arch_svc.h
          ├── entry_fast.h
          ├── entry_std.h
        ├── kernel
        ├── abort.c
        ├── arm32_gicv3_sysreg.txt
        ├── arm32_sysreg.txt
        ├── asm-defines.c
        ├── cache_helpers_a32.S
        ├── cache_helpers_a64.S
        ├── delay.c
        ├── early_ta.c
        ├── elf32.h
        ├── elf64.h
        ├── elf_common.h
        ├── elf_load.c
        ├── elf_load.h
        ├── elf_load_dyn.c
        ├── elf_load_dyn.h
        ├── elf_load_private.h
        ├── generic_boot.c
        ├── generic_entry_a32.S
        ├── generic_entry_a64.S
        ├── kern.ld.S
        ├── link.mk
        ├── link_dummies.c
        ├── link_dummy.ld
        ├── misc_a32.S
        ├── misc_a64.S
        ├── mutex.c
        ├── mutex_lockdep.c
        ├── mutex_lockdep.h
        ├── otp_stubs.c
        ├── pm_stubs.c
        ├── proc_a32.S
        ├── proc_a64.S
        ├── pseudo_ta.c
        ├── ree_fs_ta.c
        ├── secstor_ta.c
        ├── spin_lock_a32.S
        ├── spin_lock_a64.S
        ├── spin_lock_debug.c
        ├── sub.mk
        ├── tee_l2cc_mutex.c
        ├── tee_time.c
        ├── tee_time_arm_cntpct.c
        ├── tee_time_ree.c
        ├── thread.c
        ├── thread_a32.S
        ├── thread_a64.S
        ├── thread_private.h
        ├── timer_a64.c
        ├── tlb_helpers_a32.S
        ├── tlb_helpers_a64.S
        ├── trace_ext.c
        ├── tz_ssvce_pl310_a32.S
        ├── unwind_arm32.c
        ├── unwind_arm64.c
        ├── unwind_private.h
        ├── user_ta.c
        ├── vfp.c
        ├── vfp_a32.S
        ├── vfp_a64.S
        ├── vfp_private.h
        ├── wait_queue.c
        ├── mm
        ├── core_mmu.c
        ├── core_mmu_lpae.c
        ├── core_mmu_private.h
        ├── core_mmu_v7.c
        ├── mobj.c
        ├── pgt_cache.c
        ├── sub.mk
        ├── tee_mm.c
        ├── tee_mmu.c
        ├── tee_pager.c
        ├── plat-d02
        ├── conf.mk
        ├── main.c
        ├── platform_config.h
        ├── sub.mk
        ├── plat-hikey
        ├── conf.mk
        ├── hikey_peripherals.h
        ├── main.c
        ├── platform_config.h
        ├── spi_test.c
        ├── sub.mk
        ├── plat-imx
        ├── a7_plat_init.S
        ├── a9_plat_init.S
        ├── conf.mk
          ├── config
          ├── imx6sx.h
        ├── imx-common.c
        ├── imx-regs.h
        ├── imx.h
        ├── imx6.c
        ├── imx6ul.c
        ├── imx7.c
        ├── imx_pl310.c
        ├── imx_pl310.h
        ├── imx_pm.h
        ├── imx_pm_asm_defines.c
        ├── imx_sip.h
        ├── main.c
        ├── mmdc.c
        ├── mmdc.h
        ├── platform_config.h
          ├── pm
          ├── cpuidle-imx7d.c
          ├── gpcv2.c
          ├── imx7_suspend.c
          ├── pm-imx7.c
          ├── psci-cpuidle-imx7.S
          ├── psci-suspend-imx7.S
          ├── psci.c
          ├── sub.mk
        ├── sm_platform_handler.c
        ├── sub.mk
        ├── plat-k3
        ├── conf.mk
        ├── main.c
        ├── platform_config.h
        ├── sub.mk
        ├── plat-ls
        ├── conf.mk
        ├── ls_hw_unq_key_a64.S
        ├── main.c
        ├── plat_init.S
        ├── platform_config.h
        ├── sub.mk
        ├── plat-marvell
          ├── armada3700
          ├── hal_sec_perf.c
          ├── armada7k8k
          ├── hal_sec_perf.c
        ├── conf.mk
        ├── main.c
        ├── platform_config.h
        ├── sub.mk
        ├── plat-mediatek
        ├── conf.mk
        ├── main.c
        ├── platform_config.h
        ├── sub.mk
        ├── plat-poplar
        ├── conf.mk
        ├── hi3798cv200.h
        ├── main.c
        ├── platform_config.h
        ├── sub.mk
        ├── plat-rcar
        ├── conf.mk
        ├── link.mk
        ├── main.c
        ├── platform_config.h
        ├── sub.mk
        ├── plat-rockchip
        ├── common.h
        ├── conf.mk
        ├── core_pos_a32.S
        ├── cru.h
        ├── grf.h
        ├── main.c
        ├── plat_init.S
        ├── platform.c
        ├── platform_config.h
        ├── psci_rk322x.c
        ├── sub.mk
        ├── plat-rpi3
        ├── conf.mk
        ├── main.c
        ├── platform_config.h
        ├── sub.mk
        ├── plat-sam
        ├── conf.mk
        ├── main.c
        ├── matrix.c
        ├── matrix.h
        ├── platform_config.h
        ├── sama5d2.h
        ├── sub.mk
        ├── tz_matrix.h
        ├── plat-sprd
        ├── conf.mk
        ├── console.c
        ├── main.c
        ├── platform_config.h
        ├── sub.mk
        ├── plat-stm
        ├── .gitignore
        ├── conf.mk
        ├── main.c
        ├── platform_config.h
        ├── rng_support.c
        ├── sub.mk
        ├── tz_a9init.S
        ├── plat-stm32mp1
        ├── boot_api.h
        ├── conf.mk
          ├── drivers
          ├── stm32mp1_rcc.c
          ├── stm32mp1_rcc.h
          ├── sub.mk
        ├── link.mk
        ├── main.c
        ├── platform_config.h
          ├── pm
          ├── psci.c
          ├── sub.mk
        ├── reset.S
          ├── scripts
          ├── stm32image.py
        ├── stm32_util.h
        ├── sub.mk
        ├── plat-sunxi
        ├── conf.mk
        ├── main.c
        ├── plat_init.S
        ├── platform_config.h
        ├── psci.c
        ├── sub.mk
        ├── plat-synquacer
        ├── conf.mk
        ├── main.c
        ├── platform_config.h
        ├── rng_pta.c
        ├── rng_pta.h
        ├── rng_pta_client.h
        ├── sub.mk
        ├── plat-ti
        ├── a9_plat_init.S
        ├── api_monitor_index_a15.h
        ├── api_monitor_index_a9.h
        ├── conf.mk
        ├── main.c
        ├── platform_config.h
        ├── sm_platform_handler_a15.c
        ├── sm_platform_handler_a9.c
        ├── sub.mk
        ├── ti_pl310.c
        ├── plat-vexpress
        ├── conf.mk
        ├── juno_core_pos_a32.S
        ├── juno_core_pos_a64.S
        ├── main.c
        ├── platform_config.h
        ├── sub.mk
        ├── vendor_props.c
        ├── plat-zynq7k
        ├── conf.mk
        ├── main.c
        ├── plat_init.S
        ├── platform_config.h
        ├── platform_smc.h
        ├── sub.mk
        ├── plat-zynqmp
        ├── conf.mk
        ├── main.c
        ├── platform_config.h
        ├── sub.mk
        ├── pta
        ├── benchmark.c
        ├── core_fs_htree_tests.c
        ├── core_lockdep_tests.c
        ├── core_mutex_tests.c
        ├── core_self_tests.c
        ├── core_self_tests.h
        ├── device.c
        ├── gprof.c
        ├── interrupt_tests.c
        ├── pta_invoke_tests.c
        ├── sdp_pta.c
        ├── secstor_ta_mgmt.c
        ├── stats.c
        ├── sub.mk
        ├── system.c
        ├── sm
        ├── pm.c
        ├── pm_a32.S
        ├── psci-helper.S
        ├── psci.c
        ├── sm.c
        ├── sm_a32.S
        ├── sm_private.h
        ├── std_smc.c
        ├── sub.mk
        ├── tee
        ├── arch_svc.c
        ├── arch_svc_a32.S
        ├── arch_svc_a64.S
        ├── arch_svc_private.h
        ├── cache.c
        ├── entry_fast.c
        ├── entry_std.c
        ├── init.c
        ├── pta_socket.c
        ├── sub.mk
        ├── svc_cache.c
        ├── svc_dummy.c
  ├── core.mk
  ├── crypto.mk
    ├── crypto
    ├── aes-gcm-ghash-tbl.c
    ├── aes-gcm-ghash.c
    ├── aes-gcm-private.h
    ├── aes-gcm-sw.c
    ├── aes-gcm.c
    ├── crypto.c
    ├── rng_fortuna.c
    ├── rng_hw.c
    ├── signed_hdr.c
    ├── sub.mk
    ├── drivers
    ├── atmel_uart.c
    ├── cdns_uart.c
    ├── dra7_rng.c
    ├── gic.c
    ├── hi16xx_rng.c
    ├── hi16xx_uart.c
    ├── imx_snvs.c
    ├── imx_uart.c
    ├── imx_wdog.c
    ├── mvebu_uart.c
    ├── ns16550.c
    ├── pl011.c
    ├── pl022_spi.c
    ├── pl061_gpio.c
    ├── scif.c
    ├── serial8250_uart.c
    ├── sprd_uart.c
    ├── stih_asc.c
    ├── stm32_uart.c
    ├── sub.mk
    ├── tzc380.c
    ├── tzc400.c
    ├── include
    ├── bench.h
    ├── console.h
      ├── crypto
      ├── aes-ccm.h
      ├── aes-gcm.h
      ├── crypto.h
      ├── internal_aes-gcm.h
      ├── drivers
      ├── atmel_uart.h
      ├── cdns_uart.h
      ├── gic.h
      ├── hi16xx_uart.h
      ├── imx_snvs.h
      ├── imx_uart.h
      ├── imx_wdog.h
      ├── mvebu_uart.h
      ├── ns16550.h
      ├── pl011.h
      ├── pl022_spi.h
      ├── pl061_gpio.h
      ├── scif.h
      ├── serial.h
      ├── serial8250_uart.h
      ├── sprd_uart.h
      ├── stih_asc.h
      ├── stm32_uart.h
      ├── tzc380.h
      ├── tzc400.h
      ├── dt-bindings
        ├── clock
        ├── stm32mp1-clks.h
        ├── gpio
        ├── gpio.h
        ├── interrupt-controller
        ├── arm-gic.h
        ├── irq.h
        ├── pinctrl
        ├── stm32-pinfunc.h
        ├── reset
        ├── stm32mp1-resets.h
    ├── gen-asm-defines.h
    ├── gpio.h
    ├── initcall.h
    ├── io.h
    ├── keep.h
      ├── kernel
      ├── asan.h
      ├── chip_services.h
      ├── dt.h
      ├── handle.h
      ├── interrupt.h
      ├── lockdep.h
      ├── msg_param.h
      ├── panic.h
      ├── pm.h
      ├── refcount.h
      ├── tee_common.h
      ├── tee_common_otp.h
      ├── tee_customer_part.h
      ├── tee_misc.h
      ├── tee_ta_manager.h
      ├── tee_time.h
      ├── trace_ta.h
      ├── mm
      ├── tee_mm.h
      ├── tee_mmu.h
      ├── tee_mmu_types.h
    ├── optee_msg.h
    ├── optee_rpc_cmd.h
    ├── rng_support.h
    ├── scattered_array.h
    ├── signed_hdr.h
    ├── spi.h
    ├── ta_pub_key.h
      ├── tee
      ├── cache.h
      ├── fs_dirfile.h
      ├── fs_htree.h
      ├── svc_cache.h
      ├── tadb.h
      ├── tee_cryp_concat_kdf.h
      ├── tee_cryp_hkdf.h
      ├── tee_cryp_pbkdf2.h
      ├── tee_cryp_utl.h
      ├── tee_fs.h
      ├── tee_fs_key_manager.h
      ├── tee_fs_rpc.h
      ├── tee_obj.h
      ├── tee_pobj.h
      ├── tee_svc.h
      ├── tee_svc_cryp.h
      ├── tee_svc_storage.h
      ├── uuid.h
    ├── kernel
    ├── asan.c
    ├── assert.c
    ├── console.c
    ├── dt.c
    ├── handle.c
    ├── interrupt.c
    ├── lockdep.c
    ├── msg_param.c
    ├── panic.c
    ├── pm.c
    ├── refcount.c
    ├── scattered_array.c
    ├── sub.mk
    ├── tee_misc.c
    ├── tee_ta_manager.c
    ├── ubsan.c
    ├── lib
      ├── libfdt
      ├── README.license
      ├── fdt.c
      ├── fdt_addresses.c
      ├── fdt_empty_tree.c
      ├── fdt_overlay.c
      ├── fdt_ro.c
      ├── fdt_rw.c
      ├── fdt_strerror.c
      ├── fdt_sw.c
      ├── fdt_wip.c
        ├── include
        ├── fdt.h
        ├── libfdt.h
        ├── libfdt_env.h
      ├── libfdt_internal.h
      ├── sub.mk
      ├── libtomcrypt
        ├── include
        ├── tomcrypt.h
        ├── tomcrypt_argchk.h
        ├── tomcrypt_arm_neon.h
        ├── tomcrypt_cfg.h
        ├── tomcrypt_cipher.h
        ├── tomcrypt_custom.h
        ├── tomcrypt_hash.h
        ├── tomcrypt_mac.h
        ├── tomcrypt_macros.h
        ├── tomcrypt_math.h
        ├── tomcrypt_misc.h
        ├── tomcrypt_mp.h
        ├── tomcrypt_pk.h
        ├── tomcrypt_pkcs.h
        ├── tomcrypt_prng.h
        ├── src
          ├── ciphers
          ├── aes.c
          ├── aes_armv8a_ce.c
          ├── aes_modes_armv8a_ce_a32.S
          ├── aes_modes_armv8a_ce_a64.S
          ├── aes_tab.c
          ├── des.c
          ├── sub.mk
          ├── encauth
            ├── ccm
            ├── ccm_add_aad.c
            ├── ccm_add_nonce.c
            ├── ccm_done.c
            ├── ccm_init.c
            ├── ccm_memory.c
            ├── ccm_process.c
            ├── ccm_reset.c
            ├── sub.mk
            ├── eax
            ├── eax_addheader.c
            ├── eax_decrypt.c
            ├── eax_decrypt_verify_memory.c
            ├── eax_done.c
            ├── eax_encrypt.c
            ├── eax_encrypt_authenticate_memory.c
            ├── eax_init.c
            ├── gcm
            ├── gcm_add_aad.c
            ├── gcm_add_iv.c
            ├── gcm_done.c
            ├── gcm_gf_mult.c
            ├── gcm_init.c
            ├── gcm_memory.c
            ├── gcm_mult_h.c
            ├── gcm_mult_h_arm_ce.c
            ├── gcm_process.c
            ├── gcm_reset.c
            ├── sub.mk
            ├── ocb
            ├── ocb_decrypt.c
            ├── ocb_decrypt_verify_memory.c
            ├── ocb_done_decrypt.c
            ├── ocb_done_encrypt.c
            ├── ocb_encrypt.c
            ├── ocb_encrypt_authenticate_memory.c
            ├── ocb_init.c
            ├── ocb_ntz.c
            ├── ocb_shift_xor.c
            ├── s_ocb_done.c
          ├── sub.mk
          ├── hashes
            ├── helper
            ├── hash_file.c
            ├── hash_filehandle.c
            ├── hash_memory.c
            ├── hash_memory_multi.c
            ├── sub.mk
          ├── md5.c
          ├── sha1.c
          ├── sha1_armv8a_ce.c
          ├── sha1_armv8a_ce_a32.S
          ├── sha1_armv8a_ce_a64.S
            ├── sha2
            ├── sha224.c
            ├── sha256.c
            ├── sha256_armv8a_ce.c
            ├── sha256_armv8a_ce_a32.S
            ├── sha256_armv8a_ce_a64.S
            ├── sha384.c
            ├── sha512.c
            ├── sha512_256.c
            ├── sub.mk
          ├── sub.mk
          ├── mac
            ├── hmac
            ├── hmac_done.c
            ├── hmac_file.c
            ├── hmac_init.c
            ├── hmac_memory.c
            ├── hmac_memory_multi.c
            ├── hmac_process.c
            ├── sub.mk
            ├── omac
            ├── omac_done.c
            ├── omac_file.c
            ├── omac_init.c
            ├── omac_memory.c
            ├── omac_memory_multi.c
            ├── omac_process.c
            ├── sub.mk
            ├── pmac
            ├── pmac_done.c
            ├── pmac_file.c
            ├── pmac_init.c
            ├── pmac_memory.c
            ├── pmac_memory_multi.c
            ├── pmac_ntz.c
            ├── pmac_process.c
            ├── pmac_shift_xor.c
          ├── sub.mk
            ├── xcbc
            ├── xcbc_done.c
            ├── xcbc_file.c
            ├── xcbc_init.c
            ├── xcbc_memory.c
            ├── xcbc_memory_multi.c
            ├── xcbc_process.c
          ├── math
            ├── fp
            ├── ltc_ecc_fp_mulmod.c
            ├── sub.mk
          ├── multi.c
          ├── rand_bn.c
          ├── rand_prime.c
          ├── sub.mk
          ├── misc
            ├── base64
            ├── base64_decode.c
            ├── base64_encode.c
            ├── sub.mk
          ├── burn_stack.c
            ├── crypt
            ├── crypt.c
            ├── crypt_argchk.c
            ├── crypt_cipher_descriptor.c
            ├── crypt_cipher_is_valid.c
            ├── crypt_find_cipher.c
            ├── crypt_find_cipher_any.c
            ├── crypt_find_cipher_id.c
            ├── crypt_find_hash.c
            ├── crypt_find_hash_any.c
            ├── crypt_find_hash_id.c
            ├── crypt_find_hash_oid.c
            ├── crypt_find_prng.c
            ├── crypt_fsa.c
            ├── crypt_hash_descriptor.c
            ├── crypt_hash_is_valid.c
            ├── crypt_prng_descriptor.c
            ├── crypt_prng_is_valid.c
            ├── crypt_register_cipher.c
            ├── crypt_register_hash.c
            ├── crypt_register_prng.c
            ├── crypt_unregister_cipher.c
            ├── crypt_unregister_hash.c
            ├── crypt_unregister_prng.c
            ├── sub.mk
          ├── error_to_string.c
          ├── mem_neq.c
            ├── pkcs5
            ├── pkcs_5_1.c
            ├── pkcs_5_2.c
            ├── sub.mk
          ├── sub.mk
          ├── zeromem.c
          ├── modes
            ├── cbc
            ├── cbc_decrypt.c
            ├── cbc_done.c
            ├── cbc_encrypt.c
            ├── cbc_getiv.c
            ├── cbc_setiv.c
            ├── cbc_start.c
            ├── sub.mk
            ├── cfb
            ├── cfb_decrypt.c
            ├── cfb_done.c
            ├── cfb_encrypt.c
            ├── cfb_getiv.c
            ├── cfb_setiv.c
            ├── cfb_start.c
            ├── sub.mk
            ├── ctr
            ├── ctr_decrypt.c
            ├── ctr_done.c
            ├── ctr_encrypt.c
            ├── ctr_getiv.c
            ├── ctr_setiv.c
            ├── ctr_start.c
            ├── sub.mk
            ├── ecb
            ├── ecb_decrypt.c
            ├── ecb_done.c
            ├── ecb_encrypt.c
            ├── ecb_start.c
            ├── sub.mk
            ├── f8
            ├── f8_decrypt.c
            ├── f8_done.c
            ├── f8_encrypt.c
            ├── f8_getiv.c
            ├── f8_setiv.c
            ├── f8_start.c
            ├── sub.mk
            ├── lrw
            ├── lrw_decrypt.c
            ├── lrw_done.c
            ├── lrw_encrypt.c
            ├── lrw_getiv.c
            ├── lrw_process.c
            ├── lrw_setiv.c
            ├── lrw_start.c
            ├── sub.mk
            ├── ofb
            ├── ofb_decrypt.c
            ├── ofb_done.c
            ├── ofb_encrypt.c
            ├── ofb_getiv.c
            ├── ofb_setiv.c
            ├── ofb_start.c
            ├── sub.mk
          ├── sub.mk
            ├── xts
            ├── sub.mk
            ├── xts_decrypt.c
            ├── xts_done.c
            ├── xts_encrypt.c
            ├── xts_init.c
            ├── xts_mult_x.c
        ├── mpa_desc.c
        ├── mpi_desc.c
          ├── pk
            ├── asn1
              ├── der
                ├── bit
                ├── der_decode_bit_string.c
                ├── der_decode_raw_bit_string.c
                ├── der_encode_bit_string.c
                ├── der_encode_raw_bit_string.c
                ├── der_length_bit_string.c
                ├── sub.mk
                ├── boolean
                ├── der_decode_boolean.c
                ├── der_encode_boolean.c
                ├── der_length_boolean.c
                ├── sub.mk
                ├── choice
                ├── der_decode_choice.c
                ├── sub.mk
                ├── ia5
                ├── der_decode_ia5_string.c
                ├── der_encode_ia5_string.c
                ├── der_length_ia5_string.c
                ├── sub.mk
                ├── integer
                ├── der_decode_integer.c
                ├── der_encode_integer.c
                ├── der_length_integer.c
                ├── sub.mk
                ├── object_identifier
                ├── der_decode_object_identifier.c
                ├── der_encode_object_identifier.c
                ├── der_length_object_identifier.c
                ├── sub.mk
                ├── octet
                ├── der_decode_octet_string.c
                ├── der_encode_octet_string.c
                ├── der_length_octet_string.c
                ├── sub.mk
                ├── printable_string
                ├── der_decode_printable_string.c
                ├── der_encode_printable_string.c
                ├── der_length_printable_string.c
                ├── sub.mk
                ├── sequence
                ├── der_decode_sequence_ex.c
                ├── der_decode_sequence_flexi.c
                ├── der_decode_sequence_multi.c
                ├── der_decode_subject_public_key_info.c
                ├── der_encode_sequence_ex.c
                ├── der_encode_sequence_multi.c
                ├── der_encode_subject_public_key_info.c
                ├── der_length_sequence.c
                ├── der_sequence_free.c
                ├── sub.mk
                ├── set
                ├── der_encode_set.c
                ├── der_encode_setof.c
                ├── sub.mk
                ├── short_integer
                ├── der_decode_short_integer.c
                ├── der_encode_short_integer.c
                ├── der_length_short_integer.c
                ├── sub.mk
              ├── sub.mk
                ├── teletex_string
                ├── der_decode_teletex_string.c
                ├── der_length_teletex_string.c
                ├── sub.mk
                ├── utctime
                ├── der_decode_utctime.c
                ├── der_encode_utctime.c
                ├── der_length_utctime.c
                ├── sub.mk
                ├── utf8
                ├── der_decode_utf8_string.c
                ├── der_encode_utf8_string.c
                ├── der_length_utf8_string.c
                ├── sub.mk
            ├── sub.mk
            ├── dh
            ├── dh.c
            ├── sub.mk
            ├── dsa
            ├── dsa_decrypt_key.c
            ├── dsa_encrypt_key.c
            ├── dsa_export.c
            ├── dsa_free.c
            ├── dsa_import.c
            ├── dsa_make_key.c
            ├── dsa_shared_secret.c
            ├── dsa_sign_hash.c
            ├── dsa_verify_hash.c
            ├── dsa_verify_key.c
            ├── sub.mk
            ├── ecc
            ├── ecc.c
            ├── ecc_ansi_x963_export.c
            ├── ecc_ansi_x963_import.c
            ├── ecc_decrypt_key.c
            ├── ecc_encrypt_key.c
            ├── ecc_export.c
            ├── ecc_free.c
            ├── ecc_get_size.c
            ├── ecc_import.c
            ├── ecc_make_key.c
            ├── ecc_shared_secret.c
            ├── ecc_sign_hash.c
            ├── ecc_sizes.c
            ├── ecc_verify_hash.c
            ├── ltc_ecc_is_valid_idx.c
            ├── ltc_ecc_map.c
            ├── ltc_ecc_mul2add.c
            ├── ltc_ecc_mulmod.c
            ├── ltc_ecc_mulmod_timing.c
            ├── ltc_ecc_points.c
            ├── ltc_ecc_projective_add_point.c
            ├── ltc_ecc_projective_dbl_point.c
            ├── sub.mk
            ├── pkcs1
            ├── pkcs_1_i2osp.c
            ├── pkcs_1_mgf1.c
            ├── pkcs_1_oaep_decode.c
            ├── pkcs_1_oaep_encode.c
            ├── pkcs_1_os2ip.c
            ├── pkcs_1_pss_decode.c
            ├── pkcs_1_pss_encode.c
            ├── pkcs_1_v1_5_decode.c
            ├── pkcs_1_v1_5_encode.c
            ├── sub.mk
            ├── rsa
            ├── rsa_decrypt_key.c
            ├── rsa_encrypt_key.c
            ├── rsa_export.c
            ├── rsa_exptmod.c
            ├── rsa_free.c
            ├── rsa_import.c
            ├── rsa_make_key.c
            ├── rsa_sign_hash.c
            ├── rsa_verify_hash.c
            ├── sub.mk
          ├── sub.mk
          ├── prngs
          ├── fortuna.c
          ├── rc4.c
          ├── rng_get_bytes.c
          ├── rng_make_prng.c
          ├── sprng.c
          ├── sub.mk
          ├── yarrow.c
        ├── sub.mk
        ├── tee_ltc_provider.c
      ├── sub.mk
      ├── zlib
      ├── adler32.c
      ├── gzguts.h
      ├── inffast.c
      ├── inffast.h
      ├── inffixed.h
      ├── inflate.c
      ├── inflate.h
      ├── inftrees.c
      ├── inftrees.h
      ├── sub.mk
      ├── zconf.h
      ├── zlib.h
      ├── zutil.c
      ├── zutil.h
  ├── sub.mk
    ├── tee
    ├── fs_dirfile.c
    ├── fs_htree.c
    ├── sub.mk
    ├── tadb.c
    ├── tee_cryp_concat_kdf.c
    ├── tee_cryp_hkdf.c
    ├── tee_cryp_pbkdf2.c
    ├── tee_cryp_utl.c
    ├── tee_fs_key_manager.c
    ├── tee_fs_rpc.c
    ├── tee_fs_rpc_cache.c
    ├── tee_obj.c
    ├── tee_pobj.c
    ├── tee_ree_fs.c
    ├── tee_rpmb_fs.c
    ├── tee_svc.c
    ├── tee_svc_cryp.c
    ├── tee_svc_storage.c
    ├── tee_time_generic.c
    ├── uuid.c
  ├── documentation
  ├── abort_dumps.rst
  ├── benchmark.md
  ├── build_system.md
  ├── copyright_and_license_headers.rst
  ├── crypto.md
    ├── dt-bindings
    ├── README.txt
    ├── extensions
    ├── crypto_concat_kdf.md
    ├── crypto_hkdf.md
    ├── crypto_pbkdf2.md
    ├── crypto_rsassa_pkcs1_v1_5.md
    ├── extensions.md
  ├── file_structure.md
  ├── github.md
  ├── globalplatform_api.md
  ├── gprof.md
    ├── images
      ├── benchmark
      ├── benchmark_design.png
      ├── benchmark_design.xml
      ├── benchmark_sequence.msc
      ├── benchmark_sequence.png
    ├── green.svg
      ├── interrupt_handling
      ├── Makefile
      ├── fiq.msc
      ├── fiq.png
      ├── irq.msc
      ├── irq.png
      ├── irq_fiq.msc
      ├── irq_fiq.png
      ├── tee_invoke.msc
      ├── tee_invoke.png
    ├── orange.svg
    ├── red.svg
      ├── secure_storage
      ├── block_data_encryption.odg
      ├── block_data_encryption.png
      ├── meta_data_encryption.odg
      ├── meta_data_encryption.png
      ├── secure_storage_system_architecture.odg
      ├── secure_storage_system_architecture.png
    ├── xlat_table.dot
    ├── xlat_table.png
  ├── interrupt_handling.md
  ├── optee_design.md
  ├── optee_with_auth_framework.md
  ├── porting_guidelines.md
  ├── secure_storage.md
  ├── secure_storage_rpmb.md
  ├── keys
  ├── default_ta.pem
  ├── lib
    ├── libmbedtls
      ├── include
      ├── mbedtls_config_kernel.h
      ├── mbedtls_config_uta.h
      ├── mbedtls
      ├── ChangeLog
      ├── LICENSE
      ├── apache-2.0.txt
        ├── include
          ├── mbedtls
          ├── aes.h
          ├── aesni.h
          ├── arc4.h
          ├── asn1.h
          ├── asn1write.h
          ├── base64.h
          ├── bignum.h
          ├── blowfish.h
          ├── bn_mul.h
          ├── camellia.h
          ├── ccm.h
          ├── certs.h
          ├── check_config.h
          ├── cipher.h
          ├── cipher_internal.h
          ├── cmac.h
          ├── compat-1.3.h
          ├── config.h
          ├── ctr_drbg.h
          ├── debug.h
          ├── des.h
          ├── dhm.h
          ├── ecdh.h
          ├── ecdsa.h
          ├── ecjpake.h
          ├── ecp.h
          ├── ecp_internal.h
          ├── entropy.h
          ├── entropy_poll.h
          ├── error.h
          ├── gcm.h
          ├── havege.h
          ├── hmac_drbg.h
          ├── md.h
          ├── md2.h
          ├── md4.h
          ├── md5.h
          ├── md_internal.h
          ├── memory_buffer_alloc.h
          ├── net.h
          ├── net_sockets.h
          ├── oid.h
          ├── padlock.h
          ├── pem.h
          ├── pk.h
          ├── pk_internal.h
          ├── pkcs11.h
          ├── pkcs12.h
          ├── pkcs5.h
          ├── platform.h
          ├── platform_time.h
          ├── ripemd160.h
          ├── rsa.h
          ├── sha1.h
          ├── sha256.h
          ├── sha512.h
          ├── ssl.h
          ├── ssl_cache.h
          ├── ssl_ciphersuites.h
          ├── ssl_cookie.h
          ├── ssl_internal.h
          ├── ssl_ticket.h
          ├── threading.h
          ├── timing.h
          ├── version.h
          ├── x509.h
          ├── x509_crl.h
          ├── x509_crt.h
          ├── x509_csr.h
          ├── xtea.h
        ├── library
        ├── aes.c
        ├── aesni.c
        ├── arc4.c
        ├── asn1parse.c
        ├── asn1write.c
        ├── base64.c
        ├── bignum.c
        ├── blowfish.c
        ├── camellia.c
        ├── ccm.c
        ├── certs.c
        ├── cipher.c
        ├── cipher_wrap.c
        ├── cmac.c
        ├── ctr_drbg.c
        ├── debug.c
        ├── des.c
        ├── dhm.c
        ├── ecdh.c
        ├── ecdsa.c
        ├── ecjpake.c
        ├── ecp.c
        ├── ecp_curves.c
        ├── entropy.c
        ├── entropy_poll.c
        ├── error.c
        ├── gcm.c
        ├── havege.c
        ├── hmac_drbg.c
        ├── md.c
        ├── md2.c
        ├── md4.c
        ├── md5.c
        ├── md_wrap.c
        ├── memory_buffer_alloc.c
        ├── net_sockets.c
        ├── oid.c
        ├── padlock.c
        ├── pem.c
        ├── pk.c
        ├── pk_wrap.c
        ├── pkcs11.c
        ├── pkcs12.c
        ├── pkcs5.c
        ├── pkparse.c
        ├── pkwrite.c
        ├── platform.c
        ├── ripemd160.c
        ├── rsa.c
        ├── sha1.c
        ├── sha256.c
        ├── sha512.c
        ├── ssl_cache.c
        ├── ssl_ciphersuites.c
        ├── ssl_cli.c
        ├── ssl_cookie.c
        ├── ssl_srv.c
        ├── ssl_ticket.c
        ├── ssl_tls.c
        ├── threading.c
        ├── timing.c
        ├── version.c
        ├── version_features.c
        ├── x509.c
        ├── x509_create.c
        ├── x509_crl.c
        ├── x509_crt.c
        ├── x509_csr.c
        ├── x509write_crt.c
        ├── x509write_csr.c
        ├── xtea.c
    ├── sub.mk
    ├── libmpa
      ├── arch
        ├── arm
        ├── mpa_a32.S
        ├── sub.mk
      ├── include
      ├── mpa.h
      ├── mpalib.h
      ├── mpalib_config.h
    ├── mpa_addsub.c
    ├── mpa_cmp.c
    ├── mpa_conv.c
    ├── mpa_div.c
    ├── mpa_expmod.c
    ├── mpa_gcd.c
    ├── mpa_init.c
    ├── mpa_io.c
    ├── mpa_mem_static.c
    ├── mpa_misc.c
    ├── mpa_modulus.c
    ├── mpa_montgomery.c
    ├── mpa_mul.c
    ├── mpa_primetable.h
    ├── mpa_primetest.c
    ├── mpa_random.c
    ├── mpa_shift.c
    ├── sub.mk
    ├── libutee
    ├── abort.c
      ├── arch
        ├── arm
          ├── gprof
          ├── gmon.h
          ├── gmon_out.h
          ├── gprof.c
          ├── gprof_a32.S
          ├── gprof_a64.S
          ├── gprof_pta.c
          ├── gprof_pta.h
          ├── sub.mk
        ├── sub.mk
        ├── user_ta_entry.c
        ├── utee_misc.c
        ├── utee_syscalls_a32.S
        ├── utee_syscalls_a64.S
        ├── utee_syscalls_asm.S
    ├── assert.c
    ├── base64.c
    ├── base64.h
    ├── errno.c
      ├── include
      ├── __tee_ipsocket.h
      ├── __tee_isocket_defines.h
      ├── __tee_tcpsocket_defines.h
      ├── __tee_tcpsocket_defines_extensions.h
      ├── __tee_udpsocket_defines.h
      ├── pta_benchmark.h
      ├── pta_device.h
      ├── pta_gprof.h
      ├── pta_invoke_tests.h
      ├── pta_secstor_ta_mgmt.h
      ├── pta_socket.h
      ├── pta_system.h
      ├── sdp_pta.h
      ├── tee_api.h
      ├── tee_api_defines.h
      ├── tee_api_defines_extensions.h
      ├── tee_api_types.h
      ├── tee_arith_internal.h
      ├── tee_internal_api.h
      ├── tee_internal_api_extensions.h
      ├── tee_isocket.h
      ├── tee_syscall_numbers.h
      ├── tee_ta_api.h
      ├── tee_tcpsocket.h
      ├── tee_udpsocket.h
      ├── user_ta_header.h
      ├── utee_defines.h
      ├── utee_syscalls.h
      ├── utee_types.h
    ├── sub.mk
    ├── tee_api.c
    ├── tee_api_arith_mpa.c
    ├── tee_api_arith_mpi.c
    ├── tee_api_objects.c
    ├── tee_api_operations.c
    ├── tee_api_panic.c
    ├── tee_api_private.h
    ├── tee_api_property.c
    ├── tee_socket_private.h
    ├── tee_socket_pta.c
    ├── tee_tcpudp_socket.c
    ├── trace_ext.c
    ├── utee_misc.h
    ├── libutils
      ├── ext
        ├── arch
          ├── arm
          ├── aeabi_unwind.c
          ├── atomic_a32.S
          ├── atomic_a64.S
          ├── sub.mk
      ├── buf_compare_ct.c
        ├── include
        ├── asm.S
        ├── atomic.h
        ├── bitstring.h
        ├── compiler.h
        ├── mempool.h
        ├── printk.h
        ├── speculation_barrier.h
        ├── string_ext.h
        ├── trace.h
        ├── trace_levels.h
        ├── types_ext.h
        ├── util.h
      ├── mempool.c
      ├── snprintk.c
      ├── strlcat.c
      ├── strlcpy.c
      ├── sub.mk
      ├── trace.c
      ├── isoc
        ├── arch
          ├── arm
          ├── arm32_aeabi_divmod.c
          ├── arm32_aeabi_divmod_a32.S
          ├── arm32_aeabi_ldivmod.c
          ├── arm32_aeabi_ldivmod_a32.S
          ├── arm32_aeabi_shift.c
          ├── arm32_aeabi_softfloat.c
          ├── setjmp_a32.S
          ├── setjmp_a64.S
            ├── softfloat
            ├── COPYING.txt
            ├── README.html
            ├── README.txt
              ├── arm32_include
              ├── platform.h
              ├── build
                ├── Linux-386-GCC
                ├── Makefile
                ├── platform.h
                ├── Linux-386-SSE2-GCC
                ├── Makefile
                ├── platform.h
                ├── Linux-x86_64-GCC
                ├── Makefile
                ├── platform.h
                ├── Win32-MinGW
                ├── Makefile
                ├── platform.h
                ├── Win32-SSE2-MinGW
                ├── Makefile
                ├── platform.h
                ├── Win64-MinGW-w64
                ├── Makefile
                ├── platform.h
                ├── template-FAST_INT64
                ├── Makefile
                ├── platform.h
                ├── template-not-FAST_INT64
                ├── Makefile
                ├── platform.h
              ├── doc
              ├── SoftFloat-history.html
              ├── SoftFloat-source.html
              ├── SoftFloat.html
              ├── source
                ├── 8086-SSE
                ├── extF80M_isSignalingNaN.c
                ├── f128M_isSignalingNaN.c
                ├── s_commonNaNToExtF80M.c
                ├── s_commonNaNToExtF80UI.c
                ├── s_commonNaNToF128M.c
                ├── s_commonNaNToF128UI.c
                ├── s_commonNaNToF32UI.c
                ├── s_commonNaNToF64UI.c
                ├── s_extF80MToCommonNaN.c
                ├── s_extF80UIToCommonNaN.c
                ├── s_f128MToCommonNaN.c
                ├── s_f128UIToCommonNaN.c
                ├── s_f32UIToCommonNaN.c
                ├── s_f64UIToCommonNaN.c
                ├── s_propagateNaNExtF80M.c
                ├── s_propagateNaNExtF80UI.c
                ├── s_propagateNaNF128M.c
                ├── s_propagateNaNF128UI.c
                ├── s_propagateNaNF32UI.c
                ├── s_propagateNaNF64UI.c
                ├── softfloat_raiseFlags.c
                ├── specialize.h
                ├── sub.mk
                ├── 8086
                ├── extF80M_isSignalingNaN.c
                ├── f128M_isSignalingNaN.c
                ├── s_commonNaNToExtF80M.c
                ├── s_commonNaNToExtF80UI.c
                ├── s_commonNaNToF128M.c
                ├── s_commonNaNToF128UI.c
                ├── s_commonNaNToF32UI.c
                ├── s_commonNaNToF64UI.c
                ├── s_extF80MToCommonNaN.c
                ├── s_extF80UIToCommonNaN.c
                ├── s_f128MToCommonNaN.c
                ├── s_f128UIToCommonNaN.c
                ├── s_f32UIToCommonNaN.c
                ├── s_f64UIToCommonNaN.c
                ├── s_propagateNaNExtF80M.c
                ├── s_propagateNaNExtF80UI.c
                ├── s_propagateNaNF128M.c
                ├── s_propagateNaNF128UI.c
                ├── s_propagateNaNF32UI.c
                ├── s_propagateNaNF64UI.c
                ├── softfloat_raiseFlags.c
                ├── specialize.h
              ├── extF80M_add.c
              ├── extF80M_div.c
              ├── extF80M_eq.c
              ├── extF80M_eq_signaling.c
              ├── extF80M_le.c
              ├── extF80M_le_quiet.c
              ├── extF80M_lt.c
              ├── extF80M_lt_quiet.c
              ├── extF80M_mul.c
              ├── extF80M_rem.c
              ├── extF80M_roundToInt.c
              ├── extF80M_sqrt.c
              ├── extF80M_sub.c
              ├── extF80M_to_f128M.c
              ├── extF80M_to_f32.c
              ├── extF80M_to_f64.c
              ├── extF80M_to_i32.c
              ├── extF80M_to_i32_r_minMag.c
              ├── extF80M_to_i64.c
              ├── extF80M_to_i64_r_minMag.c
              ├── extF80M_to_ui32.c
              ├── extF80M_to_ui32_r_minMag.c
              ├── extF80M_to_ui64.c
              ├── extF80M_to_ui64_r_minMag.c
              ├── extF80_add.c
              ├── extF80_div.c
              ├── extF80_eq.c
              ├── extF80_eq_signaling.c
              ├── extF80_isSignalingNaN.c
              ├── extF80_le.c
              ├── extF80_le_quiet.c
              ├── extF80_lt.c
              ├── extF80_lt_quiet.c
              ├── extF80_mul.c
              ├── extF80_rem.c
              ├── extF80_roundToInt.c
              ├── extF80_sqrt.c
              ├── extF80_sub.c
              ├── extF80_to_f128.c
              ├── extF80_to_f32.c
              ├── extF80_to_f64.c
              ├── extF80_to_i32.c
              ├── extF80_to_i32_r_minMag.c
              ├── extF80_to_i64.c
              ├── extF80_to_i64_r_minMag.c
              ├── extF80_to_ui32.c
              ├── extF80_to_ui32_r_minMag.c
              ├── extF80_to_ui64.c
              ├── extF80_to_ui64_r_minMag.c
              ├── f128M_add.c
              ├── f128M_div.c
              ├── f128M_eq.c
              ├── f128M_eq_signaling.c
              ├── f128M_le.c
              ├── f128M_le_quiet.c
              ├── f128M_lt.c
              ├── f128M_lt_quiet.c
              ├── f128M_mul.c
              ├── f128M_mulAdd.c
              ├── f128M_rem.c
              ├── f128M_roundToInt.c
              ├── f128M_sqrt.c
              ├── f128M_sub.c
              ├── f128M_to_extF80M.c
              ├── f128M_to_f32.c
              ├── f128M_to_f64.c
              ├── f128M_to_i32.c
              ├── f128M_to_i32_r_minMag.c
              ├── f128M_to_i64.c
              ├── f128M_to_i64_r_minMag.c
              ├── f128M_to_ui32.c
              ├── f128M_to_ui32_r_minMag.c
              ├── f128M_to_ui64.c
              ├── f128M_to_ui64_r_minMag.c
              ├── f128_add.c
              ├── f128_div.c
              ├── f128_eq.c
              ├── f128_eq_signaling.c
              ├── f128_isSignalingNaN.c
              ├── f128_le.c
              ├── f128_le_quiet.c
              ├── f128_lt.c
              ├── f128_lt_quiet.c
              ├── f128_mul.c
              ├── f128_mulAdd.c
              ├── f128_rem.c
              ├── f128_roundToInt.c
              ├── f128_sqrt.c
              ├── f128_sub.c
              ├── f128_to_extF80.c
              ├── f128_to_f32.c
              ├── f128_to_f64.c
              ├── f128_to_i32.c
              ├── f128_to_i32_r_minMag.c
              ├── f128_to_i64.c
              ├── f128_to_i64_r_minMag.c
              ├── f128_to_ui32.c
              ├── f128_to_ui32_r_minMag.c
              ├── f128_to_ui64.c
              ├── f128_to_ui64_r_minMag.c
              ├── f32_add.c
              ├── f32_div.c
              ├── f32_eq.c
              ├── f32_eq_signaling.c
              ├── f32_isSignalingNaN.c
              ├── f32_le.c
              ├── f32_le_quiet.c
              ├── f32_lt.c
              ├── f32_lt_quiet.c
              ├── f32_mul.c
              ├── f32_mulAdd.c
              ├── f32_rem.c
              ├── f32_roundToInt.c
              ├── f32_sqrt.c
              ├── f32_sub.c
              ├── f32_to_extF80.c
              ├── f32_to_extF80M.c
              ├── f32_to_f128.c
              ├── f32_to_f128M.c
              ├── f32_to_f64.c
              ├── f32_to_i32.c
              ├── f32_to_i32_r_minMag.c
              ├── f32_to_i64.c
              ├── f32_to_i64_r_minMag.c
              ├── f32_to_ui32.c
              ├── f32_to_ui32_r_minMag.c
              ├── f32_to_ui64.c
              ├── f32_to_ui64_r_minMag.c
              ├── f64_add.c
              ├── f64_div.c
              ├── f64_eq.c
              ├── f64_eq_signaling.c
              ├── f64_isSignalingNaN.c
              ├── f64_le.c
              ├── f64_le_quiet.c
              ├── f64_lt.c
              ├── f64_lt_quiet.c
              ├── f64_mul.c
              ├── f64_mulAdd.c
              ├── f64_rem.c
              ├── f64_roundToInt.c
              ├── f64_sqrt.c
              ├── f64_sub.c
              ├── f64_to_extF80.c
              ├── f64_to_extF80M.c
              ├── f64_to_f128.c
              ├── f64_to_f128M.c
              ├── f64_to_f32.c
              ├── f64_to_i32.c
              ├── f64_to_i32_r_minMag.c
              ├── f64_to_i64.c
              ├── f64_to_i64_r_minMag.c
              ├── f64_to_ui32.c
              ├── f64_to_ui32_r_minMag.c
              ├── f64_to_ui64.c
              ├── f64_to_ui64_r_minMag.c
              ├── i32_to_extF80.c
              ├── i32_to_extF80M.c
              ├── i32_to_f128.c
              ├── i32_to_f128M.c
              ├── i32_to_f32.c
              ├── i32_to_f64.c
              ├── i64_to_extF80.c
              ├── i64_to_extF80M.c
              ├── i64_to_f128.c
              ├── i64_to_f128M.c
              ├── i64_to_f32.c
              ├── i64_to_f64.c
                ├── include
                ├── internals.h
                ├── primitiveTypes.h
                ├── primitives.h
                ├── softfloat.h
                ├── softfloat_types.h
              ├── s_add128.c
              ├── s_add256M.c
              ├── s_addCarryM.c
              ├── s_addComplCarryM.c
              ├── s_addExtF80M.c
              ├── s_addF128M.c
              ├── s_addM.c
              ├── s_addMagsExtF80.c
              ├── s_addMagsF128.c
              ├── s_addMagsF32.c
              ├── s_addMagsF64.c
              ├── s_approxRecip32_1.c
              ├── s_approxRecipSqrt32_1.c
              ├── s_compare128M.c
              ├── s_compare96M.c
              ├── s_compareNonnormExtF80M.c
              ├── s_countLeadingZeros32.c
              ├── s_countLeadingZeros64.c
              ├── s_countLeadingZeros8.c
              ├── s_eq128.c
              ├── s_invalidExtF80M.c
              ├── s_invalidF128M.c
              ├── s_isNaNF128M.c
              ├── s_le128.c
              ├── s_lt128.c
              ├── s_mul128By32.c
              ├── s_mul128MTo256M.c
              ├── s_mul128To256M.c
              ├── s_mul64ByShifted32To128.c
              ├── s_mul64To128.c
              ├── s_mul64To128M.c
              ├── s_mulAddF128.c
              ├── s_mulAddF128M.c
              ├── s_mulAddF32.c
              ├── s_mulAddF64.c
              ├── s_negXM.c
              ├── s_normExtF80SigM.c
              ├── s_normRoundPackMToExtF80M.c
              ├── s_normRoundPackMToF128M.c
              ├── s_normRoundPackToExtF80.c
              ├── s_normRoundPackToF128.c
              ├── s_normRoundPackToF32.c
              ├── s_normRoundPackToF64.c
              ├── s_normSubnormalExtF80Sig.c
              ├── s_normSubnormalF128Sig.c
              ├── s_normSubnormalF128SigM.c
              ├── s_normSubnormalF32Sig.c
              ├── s_normSubnormalF64Sig.c
              ├── s_remStepMBy32.c
              ├── s_roundPackMToExtF80M.c
              ├── s_roundPackMToF128M.c
              ├── s_roundPackMToI64.c
              ├── s_roundPackMToUI64.c
              ├── s_roundPackToExtF80.c
              ├── s_roundPackToF128.c
              ├── s_roundPackToF32.c
              ├── s_roundPackToF64.c
              ├── s_roundPackToI32.c
              ├── s_roundPackToI64.c
              ├── s_roundPackToUI32.c
              ├── s_roundPackToUI64.c
              ├── s_shiftLeftM.c
              ├── s_shiftNormSigF128M.c
              ├── s_shiftRightJam128.c
              ├── s_shiftRightJam128Extra.c
              ├── s_shiftRightJam256M.c
              ├── s_shiftRightJam32.c
              ├── s_shiftRightJam64.c
              ├── s_shiftRightJam64Extra.c
              ├── s_shiftRightJamM.c
              ├── s_shiftRightM.c
              ├── s_shortShiftLeft128.c
              ├── s_shortShiftLeft64To96M.c
              ├── s_shortShiftLeftM.c
              ├── s_shortShiftRight128.c
              ├── s_shortShiftRightExtendM.c
              ├── s_shortShiftRightJam128.c
              ├── s_shortShiftRightJam128Extra.c
              ├── s_shortShiftRightJam64.c
              ├── s_shortShiftRightJam64Extra.c
              ├── s_shortShiftRightJamM.c
              ├── s_shortShiftRightM.c
              ├── s_sub128.c
              ├── s_sub1XM.c
              ├── s_sub256M.c
              ├── s_subM.c
              ├── s_subMagsExtF80.c
              ├── s_subMagsF128.c
              ├── s_subMagsF32.c
              ├── s_subMagsF64.c
              ├── s_tryPropagateNaNExtF80M.c
              ├── s_tryPropagateNaNF128M.c
              ├── softfloat_state.c
              ├── sub.mk
              ├── ui32_to_extF80.c
              ├── ui32_to_extF80M.c
              ├── ui32_to_f128.c
              ├── ui32_to_f128M.c
              ├── ui32_to_f32.c
              ├── ui32_to_f64.c
              ├── ui64_to_extF80.c
              ├── ui64_to_extF80M.c
              ├── ui64_to_f128.c
              ├── ui64_to_f128M.c
              ├── ui64_to_f32.c
              ├── ui64_to_f64.c
            ├── sub.mk
          ├── sub.mk
      ├── bget.c
      ├── bget.doc
      ├── bget.h
      ├── bget_malloc.c
        ├── include
        ├── assert.h
        ├── ctype.h
        ├── inttypes.h
        ├── limits.h
        ├── malloc.h
        ├── memory.h
        ├── setjmp.h
        ├── signal.h
        ├── stdint.h
        ├── stdio.h
        ├── stdlib.h
        ├── string.h
          ├── sys
          ├── cdefs.h
          ├── queue.h
          ├── types.h
        ├── time.h
        ├── unistd.h
        ├── wchar.h
      ├── isalpha.c
      ├── isdigit.c
      ├── isspace.c
      ├── isupper.c
      ├── isxdigit.c
      ├── malloc_lock.c
        ├── newlib
        ├── _ansi.h
        ├── abs.c
        ├── memchr.c
        ├── memcmp.c
        ├── memcpy.c
        ├── memmove.c
        ├── memset.c
        ├── str-two-way.h
        ├── strchr.c
        ├── strcmp.c
        ├── strcpy.c
        ├── strlen.c
        ├── strncmp.c
        ├── strncpy.c
        ├── strnlen.c
        ├── strrchr.c
        ├── strstr.c
        ├── strtoul.c
        ├── sub.mk
      ├── qsort.c
      ├── snprintf.c
      ├── stack_check.c
      ├── strdup.c
      ├── strndup.c
      ├── sub.mk
      ├── tolower.c
    ├── sub.mk
  ├── mk
  ├── aosp_optee.mk
  ├── checkconf.mk
  ├── cleandirs.mk
  ├── cleanvars.mk
  ├── compile.mk
  ├── config.mk
  ├── gcc.mk
  ├── lib.mk
  ├── subdir.mk
├── readme.txt
  ├── scripts
  ├── arm32_sysreg.py
  ├── bin_to_c.py
  ├── checkpatch.sh
  ├── checkpatch_inc.sh
  ├── gen_hashed_bin.py
  ├── gen_ld_sects.py
  ├── mem_usage.py
  ├── pem_to_pub_c.py
  ├── sign.py
  ├── symbolize.py
  ├── ta_bin_to_c.py
  ├── tee_bin_parser.py
  ├── ta
    ├── arch
      ├── arm
      ├── link.mk
      ├── link_shlib.mk
      ├── ta.ld.S
      ├── user_ta_header.c
    ├── avb
    ├── Makefile
    ├── entry.c
      ├── include
      ├── ta_avb.h
    ├── sub.mk
    ├── user_ta.mk
    ├── user_ta_header_defines.h
    ├── mk
    ├── build-user-ta.mk
    ├── ta_dev_kit.mk
  ├── ta.mk
├── typedefs.checkpatch
创作时间: