sgx_km: Build SGX KM from source sgx-km-source
authorAndrew F. Davis <afd@ti.com>
Tue, 26 Jun 2018 21:24:59 +0000 (16:24 -0500)
committerAndrew F. Davis <afd@ti.com>
Tue, 26 Jun 2018 21:24:59 +0000 (16:24 -0500)
Signed-off-by: Andrew F. Davis <afd@ti.com>
232 files changed:
sgx_km/Android.mk [new file with mode: 0644]
sgx_km/eurasia_km/GPL-COPYING [new file with mode: 0644]
sgx_km/eurasia_km/INSTALL [new file with mode: 0644]
sgx_km/eurasia_km/MIT-COPYING [new file with mode: 0644]
sgx_km/eurasia_km/README [new file with mode: 0644]
sgx_km/eurasia_km/eurasiacon/build/linux2/_objects.mk [new file with mode: 0644]
sgx_km/eurasia_km/eurasiacon/build/linux2/bits.mk [new file with mode: 0644]
sgx_km/eurasia_km/eurasiacon/build/linux2/buildvars.mk [new file with mode: 0644]
sgx_km/eurasia_km/eurasiacon/build/linux2/commands.mk [new file with mode: 0644]
sgx_km/eurasia_km/eurasiacon/build/linux2/common/android/arch.mk [new file with mode: 0644]
sgx_km/eurasia_km/eurasiacon/build/linux2/common/android/arch_common.mk [new file with mode: 0644]
sgx_km/eurasia_km/eurasiacon/build/linux2/common/android/extra_config.mk [new file with mode: 0644]
sgx_km/eurasia_km/eurasiacon/build/linux2/common/android/features.mk [new file with mode: 0644]
sgx_km/eurasia_km/eurasiacon/build/linux2/common/android/install.sh.tpl [new file with mode: 0644]
sgx_km/eurasia_km/eurasiacon/build/linux2/common/android/paths.mk [new file with mode: 0644]
sgx_km/eurasia_km/eurasiacon/build/linux2/common/android/platform_version.mk [new file with mode: 0644]
sgx_km/eurasia_km/eurasiacon/build/linux2/common/dridrm.mk [new file with mode: 0644]
sgx_km/eurasia_km/eurasiacon/build/linux2/common/ion.mk [new file with mode: 0644]
sgx_km/eurasia_km/eurasiacon/build/linux2/common/omap4.mk [new file with mode: 0644]
sgx_km/eurasia_km/eurasiacon/build/linux2/common/opencl.mk [new file with mode: 0644]
sgx_km/eurasia_km/eurasiacon/build/linux2/config/compiler.mk [new file with mode: 0644]
sgx_km/eurasia_km/eurasiacon/build/linux2/config/compilers/arm-eabi.mk [new file with mode: 0644]
sgx_km/eurasia_km/eurasiacon/build/linux2/config/compilers/arm-linux-androideabi.mk [new file with mode: 0644]
sgx_km/eurasia_km/eurasiacon/build/linux2/config/compilers/mips64el-linux-android.mk [new file with mode: 0644]
sgx_km/eurasia_km/eurasiacon/build/linux2/config/core.mk [new file with mode: 0644]
sgx_km/eurasia_km/eurasiacon/build/linux2/defs.mk [new file with mode: 0644]
sgx_km/eurasia_km/eurasiacon/build/linux2/kbuild/Makefile.template [new file with mode: 0644]
sgx_km/eurasia_km/eurasiacon/build/linux2/kbuild/kbuild.mk [new file with mode: 0644]
sgx_km/eurasia_km/eurasiacon/build/linux2/kernel_module.mk [new file with mode: 0644]
sgx_km/eurasia_km/eurasiacon/build/linux2/kernel_version.mk [new file with mode: 0644]
sgx_km/eurasia_km/eurasiacon/build/linux2/moduledefs/host_x86_64.mk [new file with mode: 0644]
sgx_km/eurasia_km/eurasiacon/build/linux2/moduledefs/target_armv7-a.mk [new file with mode: 0644]
sgx_km/eurasia_km/eurasiacon/build/linux2/moduledefs/target_mips32r6el.mk [new file with mode: 0644]
sgx_km/eurasia_km/eurasiacon/build/linux2/moduledefs/target_neutral.mk [new file with mode: 0644]
sgx_km/eurasia_km/eurasiacon/build/linux2/moduledefs_common.mk [new file with mode: 0644]
sgx_km/eurasia_km/eurasiacon/build/linux2/modules.mk [new file with mode: 0644]
sgx_km/eurasia_km/eurasiacon/build/linux2/omap_android/Makefile [new file with mode: 0644]
sgx_km/eurasia_km/eurasiacon/build/linux2/prepare_tree.mk [new file with mode: 0644]
sgx_km/eurasia_km/eurasiacon/build/linux2/pvrversion.mk [new file with mode: 0644]
sgx_km/eurasia_km/eurasiacon/build/linux2/scripts.mk [new file with mode: 0644]
sgx_km/eurasia_km/eurasiacon/build/linux2/shared_library.mk [new file with mode: 0644]
sgx_km/eurasia_km/eurasiacon/build/linux2/this_makefile.mk [new file with mode: 0644]
sgx_km/eurasia_km/eurasiacon/build/linux2/tools/cc-check.sh [new file with mode: 0755]
sgx_km/eurasia_km/eurasiacon/build/linux2/toplevel.mk [new file with mode: 0644]
sgx_km/eurasia_km/include4/dbgdrvif.h [new file with mode: 0644]
sgx_km/eurasia_km/include4/img_defs.h [new file with mode: 0644]
sgx_km/eurasia_km/include4/img_types.h [new file with mode: 0644]
sgx_km/eurasia_km/include4/kernel_types.h [new file with mode: 0644]
sgx_km/eurasia_km/include4/pdumpdefs.h [new file with mode: 0644]
sgx_km/eurasia_km/include4/pvr_debug.h [new file with mode: 0644]
sgx_km/eurasia_km/include4/pvr_sync_user.h [new file with mode: 0644]
sgx_km/eurasia_km/include4/pvrmodule.h [new file with mode: 0644]
sgx_km/eurasia_km/include4/pvrversion.h [new file with mode: 0644]
sgx_km/eurasia_km/include4/services.h [new file with mode: 0644]
sgx_km/eurasia_km/include4/servicesext.h [new file with mode: 0644]
sgx_km/eurasia_km/include4/sgx_options.h [new file with mode: 0644]
sgx_km/eurasia_km/include4/sgxapi_km.h [new file with mode: 0644]
sgx_km/eurasia_km/include4/sgxscript.h [new file with mode: 0644]
sgx_km/eurasia_km/services4/include/env/linux/pvr_drm_shared.h [new file with mode: 0644]
sgx_km/eurasia_km/services4/include/ion_sys_private.h [new file with mode: 0644]
sgx_km/eurasia_km/services4/include/kernelbuffer.h [new file with mode: 0644]
sgx_km/eurasia_km/services4/include/kerneldisplay.h [new file with mode: 0644]
sgx_km/eurasia_km/services4/include/pdump.h [new file with mode: 0644]
sgx_km/eurasia_km/services4/include/pvr_bridge.h [new file with mode: 0644]
sgx_km/eurasia_km/services4/include/pvr_bridge_km.h [new file with mode: 0644]
sgx_km/eurasia_km/services4/include/pvrmmap.h [new file with mode: 0644]
sgx_km/eurasia_km/services4/include/pvrsrv_errors.h [new file with mode: 0644]
sgx_km/eurasia_km/services4/include/servicesint.h [new file with mode: 0644]
sgx_km/eurasia_km/services4/include/sgx_bridge.h [new file with mode: 0644]
sgx_km/eurasia_km/services4/include/sgx_mkif_km.h [new file with mode: 0644]
sgx_km/eurasia_km/services4/include/sgx_ukernel_status_codes.h [new file with mode: 0644]
sgx_km/eurasia_km/services4/include/sgxinfo.h [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/bridged/bridged_pvr_bridge.c [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/bridged/bridged_pvr_bridge.h [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/bridged/bridged_support.c [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/bridged/bridged_support.h [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/bridged/sgx/bridged_sgx_bridge.c [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/bridged/sgx/bridged_sgx_bridge.h [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/common/buffer_manager.c [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/common/deviceclass.c [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/common/deviceid.h [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/common/devicemem.c [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/common/handle.c [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/common/hash.c [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/common/lists.c [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/common/mem.c [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/common/mem_debug.c [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/common/metrics.c [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/common/osfunc_common.c [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/common/pdump_common.c [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/common/perproc.c [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/common/power.c [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/common/pvrsrv.c [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/common/queue.c [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/common/ra.c [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/common/refcount.c [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/common/resman.c [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/common/ttrace.c [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/devices/sgx/mmu.c [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/devices/sgx/mmu.h [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/devices/sgx/pb.c [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/devices/sgx/sgx_bridge_km.h [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/devices/sgx/sgxconfig.h [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/devices/sgx/sgxinfokm.h [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/devices/sgx/sgxinit.c [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/devices/sgx/sgxkick.c [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/devices/sgx/sgxpower.c [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/devices/sgx/sgxreset.c [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/devices/sgx/sgxtransfer.c [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/devices/sgx/sgxutils.c [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/devices/sgx/sgxutils.h [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/env/linux/Kbuild.mk [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/env/linux/Linux.mk [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/env/linux/dma_fence_sync_native_server.c [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/env/linux/dmabuf.c [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/env/linux/dmabuf.h [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/env/linux/env_data.h [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/env/linux/env_perproc.h [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/env/linux/event.c [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/env/linux/event.h [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/env/linux/ion.c [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/env/linux/ion.h [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/env/linux/linkage.h [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/env/linux/lma_heap_ion.h [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/env/linux/lock.h [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/env/linux/mm.c [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/env/linux/mm.h [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/env/linux/mmap.c [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/env/linux/mmap.h [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/env/linux/module.c [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/env/linux/mutex.c [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/env/linux/mutex.h [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/env/linux/mutils.c [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/env/linux/mutils.h [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/env/linux/osfunc.c [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/env/linux/osperproc.c [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/env/linux/pdump.c [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/env/linux/private_data.h [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/env/linux/proc.c [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/env/linux/proc.h [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/env/linux/pvr_bridge_k.c [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/env/linux/pvr_counting_timeline.c [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/env/linux/pvr_counting_timeline.h [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/env/linux/pvr_debug.c [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/env/linux/pvr_drm.c [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/env/linux/pvr_drm.h [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/env/linux/pvr_fence.c [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/env/linux/pvr_fence.h [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/env/linux/pvr_linux_fence.c [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/env/linux/pvr_linux_fence.h [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/env/linux/pvr_sw_fence.c [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/env/linux/pvr_sw_fence.h [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/env/linux/pvr_sync.c [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/env/linux/pvr_sync.h [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/env/linux/pvr_sync_common.c [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/env/linux/pvr_sync_common.h [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/env/linux/pvr_sync_dma_fence.c [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/env/linux/pvr_uaccess.h [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/env/linux/pvrsrv_sync_server.h [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/env/linux/systrace.c [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/env/linux/systrace.h [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/hwdefs/mnemedefs.h [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/hwdefs/ocpdefs.h [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/hwdefs/sgx520defs.h [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/hwdefs/sgx530defs.h [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/hwdefs/sgx531defs.h [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/hwdefs/sgx535defs.h [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/hwdefs/sgx540defs.h [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/hwdefs/sgx543_v1.164defs.h [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/hwdefs/sgx543defs.h [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/hwdefs/sgx544defs.h [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/hwdefs/sgx545defs.h [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/hwdefs/sgxdefs.h [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/hwdefs/sgxerrata.h [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/hwdefs/sgxfeaturedefs.h [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/hwdefs/sgxmmu.h [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/hwdefs/sgxmpdefs.h [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/include/buffer_manager.h [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/include/device.h [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/include/devicemem.h [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/include/dmabuf_sync.h [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/include/handle.h [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/include/hash.h [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/include/ion_sync.h [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/include/lists.h [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/include/metrics.h [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/include/osfunc.h [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/include/osperproc.h [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/include/pdump_int.h [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/include/pdump_km.h [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/include/pdump_osfunc.h [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/include/perfkm.h [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/include/perproc.h [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/include/power.h [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/include/queue.h [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/include/ra.h [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/include/refcount.h [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/include/resman.h [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/include/services_headers.h [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/include/srvkm.h [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/include/ttrace.h [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/include/ttrace_common.h [new file with mode: 0644]
sgx_km/eurasia_km/services4/srvkm/include/ttrace_tokens.h [new file with mode: 0644]
sgx_km/eurasia_km/services4/system/include/syscommon.h [new file with mode: 0644]
sgx_km/eurasia_km/services4/system/omap/oemfuncs.h [new file with mode: 0644]
sgx_km/eurasia_km/services4/system/omap/sgxfreq.c [new file with mode: 0644]
sgx_km/eurasia_km/services4/system/omap/sgxfreq.h [new file with mode: 0644]
sgx_km/eurasia_km/services4/system/omap/sgxfreq_activeidle.c [new file with mode: 0644]
sgx_km/eurasia_km/services4/system/omap/sgxfreq_cool.c [new file with mode: 0644]
sgx_km/eurasia_km/services4/system/omap/sgxfreq_on3demand.c [new file with mode: 0644]
sgx_km/eurasia_km/services4/system/omap/sgxfreq_onoff.c [new file with mode: 0644]
sgx_km/eurasia_km/services4/system/omap/sgxfreq_userspace.c [new file with mode: 0644]
sgx_km/eurasia_km/services4/system/omap/sysconfig.c [new file with mode: 0644]
sgx_km/eurasia_km/services4/system/omap/sysconfig.h [new file with mode: 0644]
sgx_km/eurasia_km/services4/system/omap/sysinfo.h [new file with mode: 0644]
sgx_km/eurasia_km/services4/system/omap/syslocal.h [new file with mode: 0644]
sgx_km/eurasia_km/services4/system/omap/sysutils.c [new file with mode: 0644]
sgx_km/eurasia_km/services4/system/omap/sysutils_linux.c [new file with mode: 0644]
sgx_km/eurasia_km/tools/intern/debug/client/linuxsrv.h [new file with mode: 0644]
sgx_km/eurasia_km/tools/intern/debug/dbgdriv/Kbuild.mk [new file with mode: 0644]
sgx_km/eurasia_km/tools/intern/debug/dbgdriv/Linux.mk [new file with mode: 0644]
sgx_km/eurasia_km/tools/intern/debug/dbgdriv/common/dbgdriv.c [new file with mode: 0644]
sgx_km/eurasia_km/tools/intern/debug/dbgdriv/common/dbgdriv.h [new file with mode: 0644]
sgx_km/eurasia_km/tools/intern/debug/dbgdriv/common/dbgdriv_handle.c [new file with mode: 0644]
sgx_km/eurasia_km/tools/intern/debug/dbgdriv/common/dbgdriv_ioctl.h [new file with mode: 0644]
sgx_km/eurasia_km/tools/intern/debug/dbgdriv/common/hostfunc.h [new file with mode: 0644]
sgx_km/eurasia_km/tools/intern/debug/dbgdriv/common/hotkey.c [new file with mode: 0644]
sgx_km/eurasia_km/tools/intern/debug/dbgdriv/common/hotkey.h [new file with mode: 0644]
sgx_km/eurasia_km/tools/intern/debug/dbgdriv/common/ioctl.c [new file with mode: 0644]
sgx_km/eurasia_km/tools/intern/debug/dbgdriv/linux/hostfunc.c [new file with mode: 0644]
sgx_km/eurasia_km/tools/intern/debug/dbgdriv/linux/main.c [new file with mode: 0644]
sgx_km/lib/modules/pvrsrvkm.ko [deleted file]

diff --git a/sgx_km/Android.mk b/sgx_km/Android.mk
new file mode 100644 (file)
index 0000000..fb27474
--- /dev/null
@@ -0,0 +1,35 @@
+#
+# Copyright (C) 2018 Texas Instruments Incorporated - http://www.ti.com/
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+LOCAL_PATH := $(call my-dir)
+include $(CLEAR_VARS)
+
+local-build := $(LOCAL_PATH)/eurasia_km/eurasiacon/build/linux2/omap_android
+out-intermediates := $(call intermediates-dir-for, ETC, pvrsrvkm)
+
+PVRSRVKM := $(LOCAL_PATH)/lib/modules/pvrsrvkm.ko
+
+$(PVRSRVKM): $(local-build)/Makefile $(KERNELDIR)/.version
+       @echo "Building $@"
+       @$(MAKE) -C $(local-build) \
+               CROSS_COMPILE=arm-linux-androideabi- \
+               KERNEL_CROSS_COMPILE=arm-linux-androideabi- \
+               KERNELDIR=$(KERNELDIR) \
+               ARCH=arm \
+               ANDROID_ROOT=$(ANDROID_BUILD_TOP) \
+               PLATFORM_RELEASE="8.1" \
+               OUT=$(abspath $(out-intermediates))
+       @$(ACP) -fp $(abspath $(out-intermediates))/target_armv7-a/pvrsrvkm.ko $@
diff --git a/sgx_km/eurasia_km/GPL-COPYING b/sgx_km/eurasia_km/GPL-COPYING
new file mode 100644 (file)
index 0000000..83d1261
--- /dev/null
@@ -0,0 +1,344 @@
+-------------------------------------------------------------------------
+
+                   GNU GENERAL PUBLIC LICENSE
+                      Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+    59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+                           Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users.  This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it.  (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.)  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+  To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have.  You must make sure that they, too, receive or can get the
+source code.  And you must show them these terms so they know their
+rights.
+
+  We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+  Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software.  If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary.  To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+                   GNU GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License.  The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language.  (Hereinafter, translation is included without limitation in
+the term "modification".)  Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+  1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+  2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) You must cause the modified files to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    b) You must cause any work that you distribute or publish, that in
+    whole or in part contains or is derived from the Program or any
+    part thereof, to be licensed as a whole at no charge to all third
+    parties under the terms of this License.
+
+    c) If the modified program normally reads commands interactively
+    when run, you must cause it, when started running for such
+    interactive use in the most ordinary way, to print or display an
+    announcement including an appropriate copyright notice and a
+    notice that there is no warranty (or else, saying that you provide
+    a warranty) and that users may redistribute the program under
+    these conditions, and telling the user how to view a copy of this
+    License.  (Exception: if the Program itself is interactive but
+    does not normally print such an announcement, your work based on
+    the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+    a) Accompany it with the complete corresponding machine-readable
+    source code, which must be distributed under the terms of Sections
+    1 and 2 above on a medium customarily used for software interchange; or,
+
+    b) Accompany it with a written offer, valid for at least three
+    years, to give any third party, for a charge no more than your
+    cost of physically performing source distribution, a complete
+    machine-readable copy of the corresponding source code, to be
+    distributed under the terms of Sections 1 and 2 above on a medium
+    customarily used for software interchange; or,
+
+    c) Accompany it with the information you received as to the offer
+    to distribute corresponding source code.  (This alternative is
+    allowed only for noncommercial distribution and only if you
+    received the program in object code or executable form with such
+    an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it.  For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable.  However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License.  Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+  5. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Program or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+  6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+  7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded.  In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+  9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation.  If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+  10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission.  For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this.  Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+                           NO WARRANTY
+
+  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+                    END OF TERMS AND CONDITIONS
+
+       Appendix: How to Apply These Terms to Your New Programs
+
+  If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+  To do so, attach the following notices to the program.  It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) 19yy  <name of author>
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+    Gnomovision version 69, Copyright (C) 19yy name of author
+    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+    This is free software, and you are welcome to redistribute it
+    under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License.  Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+  `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+  <signature of Ty Coon>, 1 April 1989
+  Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs.  If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library.  If this is what you want to do, use the GNU Library General
+Public License instead of this License.
+
+-------------------------------------------------------------------------
+
diff --git a/sgx_km/eurasia_km/INSTALL b/sgx_km/eurasia_km/INSTALL
new file mode 100644 (file)
index 0000000..aefa6c3
--- /dev/null
@@ -0,0 +1,72 @@
+
+SGX Embedded Systems DDK for the Linux kernel.
+Copyright (C) Imagination Technologies Ltd. All rights reserved.
+======================================================================
+
+This file covers how to build and install the Imagination Technologies
+SGX DDK for the Linux kernel.
+
+
+Build System Environment Variables
+-------------------------------------------
+
+The SGX DDK Build scripts depend on a number of environment variables
+being setup before compilation or installation of DDK software can
+commence:
+
+$DISCIMAGE
+The DDK Build scripts install files to the location specified by the
+DISCIMAGE environment variable, when the make install target is used.
+This should point to the target filesystem.
+$ export DISCIMAGE=/path/to/filesystem
+
+$KERNELDIR
+When building the SGX DDK kernel module, the build needs access
+to the headers of the Linux kernel
+$ export KERNELDIR=/path/to/kernel
+
+$PATH
+If a cross compiler is being used make sure the PATH environment variable
+includes the path to the toolchain
+$ export PATH=$PATH:/path/to/toolchain
+
+$CROSS_COMPILE
+Since the SGX DDK Build scripts are geared toward a cross-compilation
+workflow, the CROSS_COMPILE environment variable needs to be set
+$ export CROSS_COMPILE=toolchain-prefix-
+
+
+Build and Install Instructions
+-------------------------------------------
+
+The SGX DDK configures different target builds within directories under
+eurasiacon/build/linux/.
+
+The supported build targets are:
+
+       all             Makes everything
+       clean   Removes all intermediate files created by a build.
+       clobber Removes all binaries for all builds as well.
+       install Runs the install script generated by the build.
+
+The following variables may be set on the command line to influence a build.
+
+       BUILD   The type of build being performed.
+                       Alternatives are release, timing or debug.
+       CFLAGS  Build dependent optimisations and debug information flags.
+       SILENT  Determines whether text of commands is produced during build.
+
+To build for, change to the appropriate target directory, e.g.:
+$ cd eurasiacon/build/linux/platform/kbuild
+
+Issue the make command:
+$ make BUILD=debug all
+
+The DDK software must be installed by the root user.  Become the root user:
+$ su
+
+Install the DDK software:
+$ make install
+
+Become an ordinary user again:
+$ exit
diff --git a/sgx_km/eurasia_km/MIT-COPYING b/sgx_km/eurasia_km/MIT-COPYING
new file mode 100644 (file)
index 0000000..0cbd14e
--- /dev/null
@@ -0,0 +1,41 @@
+
+This software is Copyright (C) Imagination Technologies Ltd.
+
+You may use, distribute and copy this software under the terms of the MIT
+license displayed below.
+
+-----------------------------------------------------------------------------
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+Alternatively, this Software may be used under the terms of the GNU General
+Public License Version 2 ("GPL") in which case the provisions of GPL are
+applicable instead of those above.
+
+If you wish to allow use of your version of this Software only under the terms
+of GPL, and not to allow others to use your version of this file under the
+terms of the MIT license, indicate your decision by deleting from each file
+the provisions above and replace them with the notice and other provisions
+required by GPL as set out in the file called "GPL-COPYING" included in this
+distribution. If you do not delete the provisions above, a recipient may use
+your version of this file under the terms of either the MIT license or GPL.
+
+-----------------------------------------------------------------------------
+
+EXCEPT AS OTHERWISE STATED IN A NEGOTIATED AGREEMENT: (A) THE SOFTWARE IS
+PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
+BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+PURPOSE AND NONINFRINGEMENT; AND (B) IN NO EVENT SHALL THE AUTHORS OR
+COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+-----------------------------------------------------------------------------
diff --git a/sgx_km/eurasia_km/README b/sgx_km/eurasia_km/README
new file mode 100644 (file)
index 0000000..2eae109
--- /dev/null
@@ -0,0 +1,49 @@
+
+SGX Embedded Systems DDK for Linux kernel.
+Copyright (C) Imagination Technologies Ltd. All rights reserved.
+======================================================================
+
+
+About 
+-------------------------------------------
+
+This is the Imagination Technologies SGX DDK for the Linux kernel.
+
+
+License
+-------------------------------------------
+
+You may use, distribute and copy this software under the terms of the MIT
+license.  Details of this license can be found in the file "MIT-COPYING".
+
+Alternatively, you may use, distribute and copy this software under the terms
+of the GNU General Public License version 2.  The full GNU General Public
+License version 2 can be found in the file "GPL-COPYING".
+
+
+Build and Install Instructions
+-------------------------------------------
+
+For details see the "INSTALL" file.
+
+To build for, change to the appropriate target directory, e.g.:
+$ cd eurasiacon/build/linux/platform/kbuild
+
+Issue the make command:
+$ make BUILD=debug all
+
+The DDK software must be installed by the root user.  Become the root user:
+$ su
+
+Install the DDK software:
+# make install
+
+Become an ordinary user again:
+$ exit
+
+
+Contact information:
+-------------------------------------------
+
+Imagination Technologies Ltd. <gpl-support@imgtec.com>
+Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK
diff --git a/sgx_km/eurasia_km/eurasiacon/build/linux2/_objects.mk b/sgx_km/eurasia_km/eurasiacon/build/linux2/_objects.mk
new file mode 100644 (file)
index 0000000..82da9d6
--- /dev/null
@@ -0,0 +1,121 @@
+########################################################################### ###
+#@Copyright     Copyright (c) Imagination Technologies Ltd. All Rights Reserved
+#@License       Dual MIT/GPLv2
+# 
+# The contents of this file are subject to the MIT license as set out below.
+# 
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+# 
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+# 
+# Alternatively, the contents of this file may be used under the terms of
+# the GNU General Public License Version 2 ("GPL") in which case the provisions
+# of GPL are applicable instead of those above.
+# 
+# If you wish to allow use of your version of this file only under the terms of
+# GPL, and not to allow others to use your version of this file under the terms
+# of the MIT license, indicate your decision by deleting the provisions above
+# and replace them with the notice and other provisions required by GPL as set
+# out in the file called "GPL-COPYING" included in this distribution. If you do
+# not delete the provisions above, a recipient may use your version of this file
+# under the terms of either the MIT license or GPL.
+# 
+# This License is also included in this distribution in the file called
+# "MIT-COPYING".
+# 
+# EXCEPT AS OTHERWISE STATED IN A NEGOTIATED AGREEMENT: (A) THE SOFTWARE IS
+# PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
+# BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+# PURPOSE AND NONINFRINGEMENT; AND (B) IN NO EVENT SHALL THE AUTHORS OR
+# COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+#@Description   Common processing for all modules that compile code.
+### ###########################################################################
+
+# Filter for source types
+MODULE_C_SOURCES := $(filter %.c,$(MODULE_SOURCES))
+MODULE_CXX_SOURCES := $(filter %.cpp,$(MODULE_SOURCES))
+
+MODULE_UNRECOGNISED_SOURCES := $(filter-out %.c %.cpp, $(MODULE_SOURCES))
+
+ifneq ($(strip $(MODULE_UNRECOGNISED_SOURCES)),)
+$(error In makefile $(THIS_MAKEFILE): Module $(THIS_MODULE) specified source files with unrecognised suffixes: $(MODULE_UNRECOGNISED_SOURCES))
+endif
+
+# Objects built from MODULE_SOURCES
+# Objects built from MODULE_C_SOURCES and MODULE_CXX_SOURCES
+MODULE_C_OBJECTS := $(addprefix $(MODULE_INTERMEDIATES_DIR)/,$(foreach _cobj,$(MODULE_C_SOURCES:.c=.o),$(notdir $(_cobj))))
+MODULE_CXX_OBJECTS := $(addprefix $(MODULE_INTERMEDIATES_DIR)/,$(foreach _cxxobj,$(MODULE_CXX_SOURCES:.cpp=.o),$(notdir $(_cxxobj))))
+
+# MODULE_GENERATED_DEPENDENCIES are generated as a side effect of running the
+# rules below, but if we wanted to generate .d files for things that GCC
+# couldn't handle, we could add a rule with $(MODULE_GENERATED_DEPENDENCIES)
+# as a target
+MODULE_GENERATED_DEPENDENCIES := $(MODULE_C_OBJECTS:.o=.d) $(MODULE_CXX_OBJECTS:.o=.d)
+-include $(MODULE_GENERATED_DEPENDENCIES)
+
+MODULE_DEPENDS := $(addprefix $(MODULE_OUT)/,$($(THIS_MODULE)_depends))
+MODULE_DEPENDS += $(addprefix $(GENERATED_CODE_OUT)/,$($(THIS_MODULE)_genheaders))
+
+# Add any MODULE_OUT relative include flags here
+MODULE_INCLUDE_FLAGS += $(addprefix -I $(MODULE_OUT)/, $($(THIS_MODULE)_includes_relative))
+
+define rule-for-objects-o-from-one-c
+$(1): MODULE_CC := $$(MODULE_CC)
+$(1): MODULE_CFLAGS := $$(MODULE_CFLAGS)
+$(1): MODULE_HOST_CFLAGS := $$(MODULE_HOST_CFLAGS)
+$(1): MODULE_INCLUDE_FLAGS := $$(MODULE_INCLUDE_FLAGS)
+$(1): MODULE_ALLOWED_CFLAGS := $$(MODULE_ALLOWED_CFLAGS)
+$(1): THIS_MODULE := $$(THIS_MODULE)
+ifneq ($(PKG_CONFIG_ENV_VAR),)
+$(1): export PKG_CONFIG_TOP_BUILD_DIR := $(abspath $(MODULE_OUT))
+$(1): export $(PKG_CONFIG_ENV_VAR) := $(abspath $(MODULE_OUT)/pkgconfig)
+endif
+$(1): export PKG_CONFIG_SYSROOT_DIR := $(PKG_CONFIG_SYSROOT_DIR)
+$(1): $$(MODULE_DEPENDS) $$(THIS_MAKEFILE)
+$(1): | $$(MODULE_INTERMEDIATES_DIR)
+$(1): $(2)
+       @: $(if $(MODULE_CHECK_CFLAGS),
+               $(if $(filter-out $(MODULE_ALLOWED_CFLAGS),$($(THIS_MODULE)_cflags)),\
+                       $(error $(THIS_MODULE): LTO-incompatible cflag(s) used: \
+                               $(filter-out $(MODULE_ALLOWED_CFLAGS),$($(THIS_MODULE)_cflags)))))
+       $$(check-src)
+ifeq ($(MODULE_HOST_BUILD),true)
+       $$(host-o-from-one-c)
+else
+       $$(target-o-from-one-c)
+endif
+endef
+
+# This rule is used to compile C++ source files
+define rule-for-objects-o-from-one-cxx
+$(1): MODULE_CXX := $$(MODULE_CXX)
+$(1): MODULE_CXXFLAGS := $$(MODULE_CXXFLAGS)
+$(1): MODULE_HOST_CXXFLAGS := $$(MODULE_HOST_CXXFLAGS)
+$(1): MODULE_INCLUDE_FLAGS := $$(MODULE_INCLUDE_FLAGS)
+$(1): MODULE_ALLOWED_CFLAGS := $$(MODULE_ALLOWED_CFLAGS)
+$(1): THIS_MODULE := $$(THIS_MODULE)
+ifneq ($(PKG_CONFIG_ENV_VAR),)
+$(1): export PKG_CONFIG_TOP_BUILD_DIR := $(abspath $(MODULE_OUT))
+$(1): export $(PKG_CONFIG_ENV_VAR) := $(abspath $(MODULE_OUT)/pkgconfig)
+endif
+$(1): $$(MODULE_DEPENDS) $$(THIS_MAKEFILE)
+$(1): | $$(MODULE_INTERMEDIATES_DIR)
+$(1): $(2)
+       @: $(if $(MODULE_CHECK_CFLAGS),
+               $(if $(filter-out $(MODULE_ALLOWED_CFLAGS),$($(THIS_MODULE)_cxxflags)),\
+                       $(error $(THIS_MODULE): LTO-incompatible cxxflag(s) used: \
+                               $(filter-out $(MODULE_ALLOWED_CFLAGS),$($(THIS_MODULE)_cxxflags)))))
+ifeq ($(MODULE_HOST_BUILD),true)
+       $$(host-o-from-one-cxx)
+else
+       $$(target-o-from-one-cxx)
+endif
+endef
diff --git a/sgx_km/eurasia_km/eurasiacon/build/linux2/bits.mk b/sgx_km/eurasia_km/eurasiacon/build/linux2/bits.mk
new file mode 100644 (file)
index 0000000..b6bcbbc
--- /dev/null
@@ -0,0 +1,116 @@
+########################################################################### ###
+#@Title         Useful special targets which don't build anything
+#@Copyright     Copyright (c) Imagination Technologies Ltd. All Rights Reserved
+#@License       Dual MIT/GPLv2
+# 
+# The contents of this file are subject to the MIT license as set out below.
+# 
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+# 
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+# 
+# Alternatively, the contents of this file may be used under the terms of
+# the GNU General Public License Version 2 ("GPL") in which case the provisions
+# of GPL are applicable instead of those above.
+# 
+# If you wish to allow use of your version of this file only under the terms of
+# GPL, and not to allow others to use your version of this file under the terms
+# of the MIT license, indicate your decision by deleting the provisions above
+# and replace them with the notice and other provisions required by GPL as set
+# out in the file called "GPL-COPYING" included in this distribution. If you do
+# not delete the provisions above, a recipient may use your version of this file
+# under the terms of either the MIT license or GPL.
+# 
+# This License is also included in this distribution in the file called
+# "MIT-COPYING".
+# 
+# EXCEPT AS OTHERWISE STATED IN A NEGOTIATED AGREEMENT: (A) THE SOFTWARE IS
+# PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
+# BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+# PURPOSE AND NONINFRINGEMENT; AND (B) IN NO EVENT SHALL THE AUTHORS OR
+# COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+### ###########################################################################
+
+ifneq ($(filter dumpvar-%,$(MAKECMDGOALS)),)
+dumpvar-%: ;
+$(foreach _var_to_dump,$(patsubst dumpvar-%,%,$(filter dumpvar-%,$(MAKECMDGOALS))),$(info $(if $(filter undefined,$(origin $(_var_to_dump))),# $$($(_var_to_dump)) is not set,$(_var_to_dump) := $($(_var_to_dump)))))
+endif
+
+ifneq ($(filter whereis-%,$(MAKECMDGOALS)),)
+whereis-%: ;
+$(foreach _module_to_find,$(patsubst whereis-%,%,$(filter whereis-%,$(MAKECMDGOALS))),$(info $(if $(INTERNAL_MAKEFILE_FOR_MODULE_$(_module_to_find)),$(INTERNAL_MAKEFILE_FOR_MODULE_$(_module_to_find)),# No module $(_module_to_find))))
+endif
+
+ifneq ($(filter whatis-%,$(MAKECMDGOALS)),)
+whatis-$(HOST_OUT)/%: ;
+whatis-$(TARGET_PRIMARY_OUT)/%: ;
+whatis-$(TARGET_NEUTRAL_OUT)/%: ;
+$(foreach _file_to_find,$(patsubst whatis-%,%,$(filter whatis-%,$(MAKECMDGOALS))),$(info $(strip $(foreach _m,$(ALL_MODULES),$(if $(filter $(_file_to_find),$(INTERNAL_TARGETS_FOR_$(_m))),$(_file_to_find) is in $(_m) which is defined in $(INTERNAL_MAKEFILE_FOR_MODULE_$(_m)),)))))
+endif
+
+.PHONY: ls-modules
+ls-modules:
+       @: $(foreach _m,$(ALL_MODULES),$(info $($(_m)_type) $(_m) $(patsubst $(TOP)/%,%,$(INTERNAL_MAKEFILE_FOR_MODULE_$(_m)))))
+
+ifeq ($(strip $(MAKECMDGOALS)),visualise)
+FORMAT ?= xlib
+GRAPHVIZ ?= neato
+visualise: $(OUT)/MAKE_RULES.dot
+       $(GRAPHVIZ) -T$(FORMAT) -o $(OUT)/MAKE_RULES.$(FORMAT) $<
+$(OUT)/MAKE_RULES.dot: $(OUT)/MAKE_RULES
+       perl $(MAKE_TOP)/tools/depgraph.pl -t $(TOP) -g $(firstword $(GRAPHVIZ)) $(OUT)/MAKE_RULES >$(OUT)/MAKE_RULES.dot
+$(OUT)/MAKE_RULES: $(ALL_MAKEFILES)
+       -$(MAKE) -C $(TOP) -f $(MAKE_TOP)/toplevel.mk TOP=$(TOP) OUT=$(OUT) ls-modules -qp >$(OUT)/MAKE_RULES 2>&1
+else
+visualise:
+       @: $(error visualise specified along with other goals. This is not supported)
+endif
+
+.PHONY: help
+help:
+       @echo 'Build targets'
+       @echo '  make, make build       Build all components of the build'
+       @echo '  make components        Build only the user-mode components'
+       @echo '  make kbuild            Build only the kernel-mode components'
+       @echo '  make docs              Build the build's supporting documentation'
+       @echo '  make MODULE            Build the module MODULE and all of its dependencies'
+       @echo '  make eurasiacon/binary2_.../target/libsomething.so'
+       @echo '                         Build a particular file (including intermediates)'
+       @echo 'Variables'
+       @echo '  make V=1 ...           Print the commands that are executed'
+       @echo '  make W=1 ...           Enable extra compiler warnings'
+       @echo '  make D=opt ...         Set build system debug option (D=help for a list)'
+       @echo '  make OUT=dir ...       Place output+intermediates in specified directory'
+       @echo '  EXCLUDED_APIS=...      List of APIs to remove from the build'
+       @echo '  make SOMEOPTION=1 ...  Set configuration options (see config/core.mk)'
+       @echo '                         Defaults are set by $(PVR_BUILD_DIR)/Makefile'
+       @echo 'Clean targets'
+       @echo '  make clean             Remove only intermediates for the current build'
+       @echo '  make clobber           As "make clean", but remove output files too'
+       @echo '  make clean-MODULE      Clean (or clobber) only files for MODULE'
+       @echo ''
+       @echo 'Special targets'
+       @echo '  make whereis-MODULE    Show the path to the Linux.mk defining MODULE'
+       @echo '  make whatis-FILE       Show which module builds an output FILE'
+       @echo '  make ls-modules        List all modules defined by makefiles'
+
+ifneq ($(filter help,$(D)),)
+empty :=
+space := $(empty) $(empty) 
+$(info Debug options)
+$(info $(space)D=modules            dump module info)
+$(info $(space)D=config             dump all config options + type and origin)
+$(info $(space)D=freeze-config      prevent config changes)
+$(info $(space)D=config-changes     dump diffs when config changes)
+$(info $(space)D=nobuild            stop before running the main build)
+$(info Options can be combined: make D=freeze-config,config-changes)
+$(error D=help given)
+endif
diff --git a/sgx_km/eurasia_km/eurasiacon/build/linux2/buildvars.mk b/sgx_km/eurasia_km/eurasiacon/build/linux2/buildvars.mk
new file mode 100644 (file)
index 0000000..4d4afa6
--- /dev/null
@@ -0,0 +1,267 @@
+########################################################################### ###
+#@Title         Define global variables
+#@Copyright     Copyright (c) Imagination Technologies Ltd. All Rights Reserved
+#@Description   This file is read once at the start of the build, after reading 
+#               in config.mk. It should define the non-MODULE_* variables used 
+#               in commands, like ALL_CFLAGS
+#@License       Dual MIT/GPLv2
+# 
+# The contents of this file are subject to the MIT license as set out below.
+# 
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+# 
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+# 
+# Alternatively, the contents of this file may be used under the terms of
+# the GNU General Public License Version 2 ("GPL") in which case the provisions
+# of GPL are applicable instead of those above.
+# 
+# If you wish to allow use of your version of this file only under the terms of
+# GPL, and not to allow others to use your version of this file under the terms
+# of the MIT license, indicate your decision by deleting the provisions above
+# and replace them with the notice and other provisions required by GPL as set
+# out in the file called "GPL-COPYING" included in this distribution. If you do
+# not delete the provisions above, a recipient may use your version of this file
+# under the terms of either the MIT license or GPL.
+# 
+# This License is also included in this distribution in the file called
+# "MIT-COPYING".
+# 
+# EXCEPT AS OTHERWISE STATED IN A NEGOTIATED AGREEMENT: (A) THE SOFTWARE IS
+# PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
+# BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+# PURPOSE AND NONINFRINGEMENT; AND (B) IN NO EVENT SHALL THE AUTHORS OR
+# COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+### ###########################################################################
+
+# NOTE: You must *not* use the cc-option et al macros in COMMON_FLAGS,
+# COMMON_CFLAGS or COMMON_USER_FLAGS. These flags are shared between
+# host and target, which might use compilers with different capabilities.
+
+# ANOTHER NOTE: All flags here must be architecture-independent (i.e. no
+# -march or toolchain include paths)
+
+# These flags are used for kernel, User C and User C++
+#
+COMMON_FLAGS := -W -Wall
+
+# Some GCC warnings are C only, so we must mask them from C++
+#
+COMMON_CFLAGS := $(COMMON_FLAGS) \
+ -Wdeclaration-after-statement -Wno-format-zero-length \
+ -Wmissing-prototypes -Wstrict-prototypes
+
+# User C and User C++ optimization control. Does not affect kernel.
+#
+ifeq ($(BUILD),debug)
+COMMON_USER_FLAGS := -O0
+else
+OPTIM ?= -O2
+ifeq ($(USE_LTO),1)
+COMMON_USER_FLAGS := $(OPTIM) -flto
+else
+COMMON_USER_FLAGS := $(OPTIM)
+endif
+endif
+
+# FIXME: We should probably audit the driver for aliasing
+#
+COMMON_USER_FLAGS += -fno-strict-aliasing
+
+# We always enable debugging. Either the release binaries are stripped
+# and the symbols put in the symbolpackage, or we're building debug.
+#
+COMMON_USER_FLAGS += -g
+
+# User C and User C++ warning flags
+#
+COMMON_USER_FLAGS += \
+ -Wpointer-arith -Wunused-parameter \
+ -Wmissing-format-attribute
+
+# Additional warnings, and optional warnings.
+#
+TESTED_TARGET_USER_FLAGS := \
+ $(call cc-option,-Wno-missing-field-initializers) \
+ $(call cc-option,-fdiagnostics-show-option) \
+ $(call cc-option,-Wno-self-assign) \
+ $(call cc-option,-Wno-parentheses-equality)
+TESTED_HOST_USER_FLAGS := \
+ $(call host-cc-option,-Wno-missing-field-initializers) \
+ $(call host-cc-option,-fdiagnostics-show-option) \
+ $(call host-cc-option,-Wno-self-assign) \
+ $(call host-cc-option,-Wno-parentheses-equality)
+
+# These flags are clang-specific.
+# -Wno-unused-command-line-argument works around a buggy interaction
+# with ccache, see https://bugzilla.samba.org/show_bug.cgi?id=8118
+# -fcolor-diagnostics force-enables colored error messages which
+# get disabled when ccache is piped through ccache.
+#
+TESTED_TARGET_USER_FLAGS += \
+ $(call cc-option,-Qunused-arguments) \
+ $(call cc-option,-fcolor-diagnostics)
+TESTED_HOST_USER_FLAGS += \
+ $(call host-cc-option,-Qunused-arguments) \
+ $(call host-cc-option,-fcolor-diagnostics)
+
+ifeq ($(W),1)
+TESTED_TARGET_USER_FLAGS += \
+ $(call cc-option,-Wbad-function-cast) \
+ $(call cc-option,-Wcast-qual) \
+ $(call cc-option,-Wcast-align) \
+ $(call cc-option,-Wconversion) \
+ $(call cc-option,-Wdisabled-optimization) \
+ $(call cc-option,-Wlogical-op) \
+ $(call cc-option,-Wmissing-declarations) \
+ $(call cc-option,-Wmissing-include-dirs) \
+ $(call cc-option,-Wnested-externs) \
+ $(call cc-option,-Wold-style-definition) \
+ $(call cc-option,-Woverlength-strings) \
+ $(call cc-option,-Wpacked) \
+ $(call cc-option,-Wpacked-bitfield-compat) \
+ $(call cc-option,-Wpadded) \
+ $(call cc-option,-Wredundant-decls) \
+ $(call cc-option,-Wshadow) \
+ $(call cc-option,-Wswitch-default) \
+ $(call cc-option,-Wvla) \
+ $(call cc-option,-Wwrite-strings)
+TESTED_HOST_USER_FLAGS += \
+ $(call host-cc-option,-Wbad-function-cast) \
+ $(call host-cc-option,-Wcast-qual) \
+ $(call host-cc-option,-Wcast-align) \
+ $(call host-cc-option,-Wconversion) \
+ $(call host-cc-option,-Wdisabled-optimization) \
+ $(call host-cc-option,-Wlogical-op) \
+ $(call host-cc-option,-Wmissing-declarations) \
+ $(call host-cc-option,-Wmissing-include-dirs) \
+ $(call host-cc-option,-Wnested-externs) \
+ $(call host-cc-option,-Wold-style-definition) \
+ $(call host-cc-option,-Woverlength-strings) \
+ $(call host-cc-option,-Wpacked) \
+ $(call host-cc-option,-Wpacked-bitfield-compat) \
+ $(call host-cc-option,-Wpadded) \
+ $(call host-cc-option,-Wredundant-decls) \
+ $(call host-cc-option,-Wshadow) \
+ $(call host-cc-option,-Wswitch-default) \
+ $(call host-cc-option,-Wvla) \
+ $(call host-cc-option,-Wwrite-strings)
+endif
+
+TESTED_TARGET_USER_FLAGS += \
+ $(call cc-optional-warning,-Wunused-but-set-variable)
+TESTED_HOST_USER_FLAGS += \
+ $(call host-cc-optional-warning,-Wunused-but-set-variable)
+
+KBUILD_FLAGS := \
+ -Wno-unused-parameter -Wno-sign-compare
+
+# androideabi toolchain adds `pic` by default, disable it
+# for kernel module build
+KBUILD_FLAGS += -fno-pic
+KBUILD_FLAGS += -fstack-protector-strong
+
+TESTED_KBUILD_FLAGS := \
+ $(call kernel-cc-option,-Wmissing-include-dirs) \
+ $(call kernel-cc-option,-Wno-type-limits) \
+ $(call kernel-cc-option,-Wno-pointer-arith) \
+ $(call kernel-cc-option,-Wno-aggregate-return) \
+ $(call kernel-cc-option,-Wno-unused-but-set-variable) \
+ $(call kernel-cc-option,-Wno-ignored-qualifiers) \
+ $(call kernel-cc-option,-Wno-old-style-declaration) \
+ $(call kernel-cc-optional-warning,-Wbad-function-cast) \
+ $(call kernel-cc-optional-warning,-Wcast-qual) \
+ $(call kernel-cc-optional-warning,-Wcast-align) \
+ $(call kernel-cc-optional-warning,-Wconversion) \
+ $(call kernel-cc-optional-warning,-Wdisabled-optimization) \
+ $(call kernel-cc-optional-warning,-Wlogical-op) \
+ $(call kernel-cc-optional-warning,-Wmissing-declarations) \
+ $(call kernel-cc-optional-warning,-Wmissing-include-dirs) \
+ $(call kernel-cc-optional-warning,-Wnested-externs) \
+ $(call kernel-cc-optional-warning,-Wno-missing-field-initializers) \
+ $(call kernel-cc-optional-warning,-Wold-style-definition) \
+ $(call kernel-cc-optional-warning,-Woverlength-strings) \
+ $(call kernel-cc-optional-warning,-Wpacked) \
+ $(call kernel-cc-optional-warning,-Wpacked-bitfield-compat) \
+ $(call kernel-cc-optional-warning,-Wpadded) \
+ $(call kernel-cc-optional-warning,-Wredundant-decls) \
+ $(call kernel-cc-optional-warning,-Wshadow) \
+ $(call kernel-cc-optional-warning,-Wswitch-default) \
+ $(call kernel-cc-optional-warning,-Wvla) \
+ $(call kernel-cc-optional-warning,-Wwrite-strings)
+
+# User C only
+#
+ALL_CFLAGS := \
+ $(COMMON_USER_FLAGS) $(COMMON_CFLAGS) $(TESTED_TARGET_USER_FLAGS) \
+ $(SYS_CFLAGS)
+ALL_HOST_CFLAGS := \
+ $(COMMON_USER_FLAGS) $(COMMON_CFLAGS) $(TESTED_HOST_USER_FLAGS)
+
+# User C++ only
+#
+ALL_CXXFLAGS := \
+ -fno-rtti -fno-exceptions \
+ $(COMMON_USER_FLAGS) $(COMMON_FLAGS) $(TESTED_TARGET_USER_FLAGS) \
+ $(SYS_CXXFLAGS)
+ALL_HOST_CXXFLAGS := \
+ -fno-rtti -fno-exceptions \
+ $(COMMON_USER_FLAGS) $(COMMON_FLAGS) $(TESTED_HOST_USER_FLAGS)
+
+# Workaround for some target clangs that don't support -O0 w/ PIC.
+#
+ifeq ($(cc-is-clang),true)
+ALL_CFLAGS := $(patsubst -O0,-O1,$(ALL_CFLAGS))
+ALL_CXXFLAGS := $(patsubst -O0,-O1,$(ALL_CXXFLAGS))
+endif
+
+# Kernel C only
+#
+ALL_KBUILD_CFLAGS := $(COMMON_CFLAGS) $(KBUILD_FLAGS) $(TESTED_KBUILD_FLAGS)
+
+# User C and C++
+#
+# NOTE: ALL_HOST_LDFLAGS should probably be using -rpath-link too, and if we
+# ever need to support building host shared libraries, it's required.
+#
+# We can't use it right now because we want to support non-GNU-compatible
+# linkers like the Darwin 'ld' which doesn't support -rpath-link.
+#
+# For the same reason (Darwin 'ld') don't bother checking for text
+# relocations in host binaries.
+#
+ALL_HOST_LDFLAGS :=
+ALL_LDFLAGS := -Wl,--warn-shared-textrel
+
+ALL_LDFLAGS += $(SYS_LDFLAGS)
+
+# Optional security hardening features.
+ifneq ($(FORTIFY),)
+ALL_CFLAGS   += -fstack-protector -Wa,--noexecstack -D_FORTIFY_SOURCE=2
+ALL_CXXFLAGS += -fstack-protector -Wa,--noexecstack -D_FORTIFY_SOURCE=2
+ALL_LDFLAGS  += -Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now
+endif
+
+# This variable contains a list of all modules built by kbuild
+ALL_KBUILD_MODULES :=
+
+# This variable contains a list of all modules which contain C++ source files
+ALL_CXX_MODULES :=
+
+# Toolchain triple for cross environment
+CROSS_TRIPLE := $(patsubst %-,%,$(notdir $(CROSS_COMPILE)))
+
+ifneq ($(TOOLCHAIN),)
+$(warning **********************************************)
+$(warning  The TOOLCHAIN option has been removed, but)
+$(warning  you have it set (via $(origin TOOLCHAIN)))
+$(warning **********************************************)
+endif
diff --git a/sgx_km/eurasia_km/eurasiacon/build/linux2/commands.mk b/sgx_km/eurasia_km/eurasiacon/build/linux2/commands.mk
new file mode 100644 (file)
index 0000000..d4876c9
--- /dev/null
@@ -0,0 +1,312 @@
+########################################################################### ###
+#@Copyright     Copyright (c) Imagination Technologies Ltd. All Rights Reserved
+#@License       Dual MIT/GPLv2
+# 
+# The contents of this file are subject to the MIT license as set out below.
+# 
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+# 
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+# 
+# Alternatively, the contents of this file may be used under the terms of
+# the GNU General Public License Version 2 ("GPL") in which case the provisions
+# of GPL are applicable instead of those above.
+# 
+# If you wish to allow use of your version of this file only under the terms of
+# GPL, and not to allow others to use your version of this file under the terms
+# of the MIT license, indicate your decision by deleting the provisions above
+# and replace them with the notice and other provisions required by GPL as set
+# out in the file called "GPL-COPYING" included in this distribution. If you do
+# not delete the provisions above, a recipient may use your version of this file
+# under the terms of either the MIT license or GPL.
+# 
+# This License is also included in this distribution in the file called
+# "MIT-COPYING".
+# 
+# EXCEPT AS OTHERWISE STATED IN A NEGOTIATED AGREEMENT: (A) THE SOFTWARE IS
+# PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
+# BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+# PURPOSE AND NONINFRINGEMENT; AND (B) IN NO EVENT SHALL THE AUTHORS OR
+# COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+### ###########################################################################
+
+# from-one-* recipes make a thing from one source file, so they use $<. Others
+# use $(MODULE_something) instead of $^
+
+# We expect that MODULE_*FLAGS contains all the flags we need, including the
+# flags for all modules (like $(ALL_CFLAGS) and $(ALL_HOST_CFLAGS)), and
+# excluding flags for include search dirs or for linking libraries. The
+# exceptions are ALL_EXE_LDFLAGS and ALL_LIB_LDFLAGS, since they depend on the
+# type of thing being linked, so they appear in the commands below
+
+define host-o-from-one-c
+$(if $(V),,@echo "  HOST_CC " $(call relative-to-top,$<))
+$(MODULE_CC) -MD -c $(MODULE_HOST_CFLAGS) $(MODULE_INCLUDE_FLAGS) \
+       -include $(CONFIG_H) $< -o $@
+endef
+
+define target-o-from-one-c
+$(if $(V),,@echo "  CC      " $(call relative-to-top,$<))
+$(MODULE_CC) -MD -c $(MODULE_CFLAGS) $(SYS_INCLUDES) $(MODULE_INCLUDE_FLAGS) \
+        -include $(CONFIG_H) $< -o $@
+endef
+
+define host-o-from-one-cxx
+$(if $(V),,@echo "  HOST_CXX" $(call relative-to-top,$<))
+$(MODULE_CXX) -MD -c $(MODULE_HOST_CXXFLAGS) $(MODULE_INCLUDE_FLAGS) \
+       -include $(CONFIG_H) $< -o $@
+endef
+
+define target-o-from-one-cxx
+$(if $(V),,@echo "  CXX     " $(call relative-to-top,$<))
+$(MODULE_CXX) -MD -c $(MODULE_CXXFLAGS) $(SYS_INCLUDES) $(MODULE_INCLUDE_FLAGS) \
+       -include $(CONFIG_H) $< -o $@
+endef
+
+define host-executable-from-o
+$(if $(V),,@echo "  HOST_LD " $(call relative-to-top,$@))
+$(MODULE_CC) $(MODULE_HOST_LDFLAGS) \
+       -o $@ $(sort $(MODULE_ALL_OBJECTS)) $(MODULE_LIBRARY_DIR_FLAGS) \
+       $(MODULE_LIBRARY_FLAGS)
+endef
+
+define host-executable-cxx-from-o
+$(if $(V),,@echo "  HOST_LD " $(call relative-to-top,$@))
+$(MODULE_CXX) $(MODULE_HOST_LDFLAGS) \
+       -o $@ $(sort $(MODULE_ALL_OBJECTS)) $(MODULE_LIBRARY_DIR_FLAGS) \
+       $(MODULE_LIBRARY_FLAGS)
+endef
+
+define target-executable-from-o
+$(if $(V),,@echo "  LD      " $(call relative-to-top,$@))
+$(MODULE_CC) \
+       $(MODULE_EXE_LDFLAGS) $(MODULE_LDFLAGS) -o $@ \
+       $(MODULE_EXE_CRTBEGIN) $(sort $(MODULE_ALL_OBJECTS)) $(MODULE_EXE_CRTEND) \
+       $(MODULE_LIBRARY_DIR_FLAGS) $(MODULE_LIBRARY_FLAGS) $(MODULE_LIBGCC)
+endef
+
+define target-executable-cxx-from-o
+$(if $(V),,@echo "  LD      " $(call relative-to-top,$@))
+$(MODULE_CXX) \
+       $(MODULE_EXE_LDFLAGS_CXX) $(MODULE_LDFLAGS) -o $@ \
+       $(MODULE_EXE_CRTBEGIN) $(sort $(MODULE_ALL_OBJECTS)) $(MODULE_EXE_CRTEND) \
+       $(MODULE_LIBRARY_DIR_FLAGS) $(MODULE_LIBRARY_FLAGS) $(MODULE_LIBGCC)
+endef
+
+define target-shared-library-from-o
+$(if $(V),,@echo "  LD      " $(call relative-to-top,$@))
+$(MODULE_CC) -shared -Wl,-Bsymbolic \
+       $(MODULE_LIB_LDFLAGS) $(MODULE_LDFLAGS) -o $@ \
+       $(MODULE_LIB_CRTBEGIN) $(sort $(MODULE_ALL_OBJECTS)) $(MODULE_LIB_CRTEND) \
+       $(MODULE_LIBRARY_DIR_FLAGS) $(MODULE_LIBRARY_FLAGS) $(MODULE_LIBGCC)
+endef
+
+# If there were any C++ source files in a shared library, we use this recipe,
+# which runs the C++ compiler to link the final library
+define target-shared-library-cxx-from-o
+$(if $(V),,@echo "  LD      " $(call relative-to-top,$@))
+$(MODULE_CXX) -shared -Wl,-Bsymbolic \
+       $(MODULE_LIB_LDFLAGS_CXX) $(MODULE_LDFLAGS) -o $@ \
+       $(MODULE_LIB_CRTBEGIN) $(sort $(MODULE_ALL_OBJECTS)) $(MODULE_LIB_CRTEND) \
+       $(MODULE_LIBRARY_DIR_FLAGS) $(MODULE_LIBRARY_FLAGS) $(MODULE_LIBGCC)
+endef
+
+define host-shared-library-from-o
+$(if $(V),,@echo "  HOST_LD " $(call relative-to-top,$@))
+$(MODULE_CC) -shared -Wl,-Bsymbolic \
+       $(MODULE_HOST_LDFLAGS) -o $@ \
+       $(sort $(MODULE_ALL_OBJECTS)) \
+       $(MODULE_LIBRARY_DIR_FLAGS) $(MODULE_LIBRARY_FLAGS)
+endef
+
+# If there were any C++ source files in a shared library, we use this recipe,
+# which runs the C++ compiler to link the final library
+define host-shared-library-cxx-from-o
+$(if $(V),,@echo "  HOST_LD " $(call relative-to-top,$@))
+$(MODULE_CXX) -shared -Wl,-Bsymbolic \
+       $(MODULE_HOST_LDFLAGS) -o $@ \
+       $(sort $(MODULE_ALL_OBJECTS)) \
+       $(MODULE_LIBRARY_DIR_FLAGS) $(MODULE_LIBRARY_FLAGS)
+endef
+
+define target-copy-debug-information
+$(OBJCOPY) --only-keep-debug $@ $(basename $@).dbg
+endef
+
+define host-strip-debug-information
+$(HOST_STRIP) --strip-unneeded $@
+endef
+
+define target-strip-debug-information
+$(STRIP) --strip-unneeded $@
+endef
+
+define target-add-debuglink
+$(if $(V),,@echo "  DBGLINK " $(call relative-to-top,$(basename $@).dbg))
+$(OBJCOPY) --add-gnu-debuglink=$(basename $@).dbg $@
+endef
+
+define host-static-library-from-o
+$(if $(V),,@echo "  HOST_AR " $(call relative-to-top,$@))
+$(HOST_AR) cru $@ $(sort $(MODULE_ALL_OBJECTS))
+endef
+
+define target-static-library-from-o
+$(if $(V),,@echo "  AR      " $(call relative-to-top,$@))
+$(AR) cru $@ $(sort $(MODULE_ALL_OBJECTS))
+endef
+
+define tab-c-from-y
+$(if $(V),,@echo "  BISON   " $(call relative-to-top,$<))
+$(BISON) $(MODULE_BISON_FLAGS) -o $@ -d $<
+endef
+
+define l-c-from-l
+$(if $(V),,@echo "  FLEX    " $(call relative-to-top,$<))
+$(FLEX) $(MODULE_FLEX_FLAGS) -o$@ $<
+endef
+
+define clean-dirs
+$(if $(V),,@echo "  RM      " $(call relative-to-top,$(MODULE_DIRS_TO_REMOVE)))
+$(RM) -rf $(MODULE_DIRS_TO_REMOVE)
+endef
+
+define make-directory
+$(MKDIR) -p $@
+endef
+
+define check-exports-from-file
+endef
+
+define check-exports
+$(call check-exports-from-file,$(if $1,$1,$(notdir $@).txt))
+endef
+
+# Programs used in recipes
+
+BISON ?= bison
+CC ?= gcc
+CC_SECONDARY ?= $(CC)
+CROSS_COMPILE_SECONDARY ?= $(CROSS_COMPILE)
+CXX ?= g++
+CXX_SECONDARY ?= $(CXX)
+HOST_CC ?= gcc
+HOST_CXX ?= g++
+JAR ?= jar
+JAVA ?= java
+JAVAC ?= javac
+ZIP ?= zip
+PKG_CONFIG ?= pkg-config
+
+ifeq ($(USE_CCACHE),1)
+CCACHE ?= ccache
+endif
+
+# Define CHMOD and CC_CHECK first so we can use cc-is-clang
+#
+override CHMOD         := $(if $(V),,@)chmod
+override CC_CHECK      := $(if $(V),,@)$(MAKE_TOP)/tools/cc-check.sh
+
+# If clang is detected, the compiler name is invariant but CROSS_COMPILE
+# is reflected in the use of -target. For GCC this is always encoded into
+# the binary. If CROSS_COMPILE is not set we can skip this.
+#
+# If we're doing a build with multiple target architectures, we might need
+# two separate compilers to build binaries for each architecture. In this
+# case, CROSS_COMPILE and CROSS_COMPILE_SECONDARY are the cross compiler
+# prefix for the two compilers - $(CC) and $(CC_SECONDARY).
+#
+# Set the secondary compiler first before we overwrite $(CC).
+#
+
+ifneq ($(CROSS_COMPILE_SECONDARY),)
+ ifeq ($(cc-is-clang),true)
+  override CC_SECONDARY   := \
+   $(CC_SECONDARY) \
+   -target $(patsubst %-,%,$(CROSS_COMPILE_SECONDARY)) \
+   -B$(dir $(shell which $(CROSS_COMPILE_SECONDARY)gcc))
+  override CXX_SECONDARY  := \
+   $(CXX_SECONDARY) \
+   -target $(patsubst %-,%,$(CROSS_COMPILE_SECONDARY)) \
+   -B$(dir $(shell which $(CROSS_COMPILE_SECONDARY)gcc))
+ else
+  ifeq ($(origin CC_SECONDARY),file)
+   override CC_SECONDARY  := $(CROSS_COMPILE_SECONDARY)$(CC_SECONDARY)
+  endif
+  ifeq ($(origin CXX_SECONDARY),file)
+   override CXX_SECONDARY := $(CROSS_COMPILE_SECONDARY)$(CXX_SECONDARY)
+  endif
+ endif
+endif
+
+# Apply compiler wrappers and V=1 handling
+override CC_SECONDARY     := $(if $(V),,@)$(CCACHE)$(DISTCC) $(CC_SECONDARY)
+override CXX_SECONDARY    := $(if $(V),,@)$(CCACHE)$(DISTCC) $(CXX_SECONDARY)
+
+ifneq ($(CROSS_COMPILE),)
+ ifeq ($(cc-is-clang),true)
+  override CC   := \
+   $(CC) \
+   -target $(patsubst %-,%,$(CROSS_COMPILE)) \
+   -B$(dir $(shell which $(CROSS_COMPILE)gcc))
+  override CXX  := \
+   $(CXX) \
+   -target $(patsubst %-,%,$(CROSS_COMPILE)) \
+   -B$(dir $(shell which $(CROSS_COMPILE)gcc))
+ else
+  ifeq ($(origin CC),file)
+   override CC  := $(CROSS_COMPILE)$(CC)
+  endif
+  ifeq ($(origin CXX),file)
+   override CXX := $(CROSS_COMPILE)$(CXX)
+  endif
+ endif
+else
+ $(if $(CROSS_COMPILE_SECONDARY),$(error CROSS_COMPILE_SECONDARY is set but CROSS_COMPILE is empty))
+endif
+
+# Apply compiler wrappers and V=1 handling
+override CC     := $(if $(V),,@)$(CCACHE)$(DISTCC) $(CC)
+override CXX    := $(if $(V),,@)$(CCACHE)$(DISTCC) $(CXX)
+
+override AR                    := $(if $(V),,@)$(CROSS_COMPILE)ar
+override BISON                 := $(if $(V),,@)$(BISON)
+override BZIP2                 := $(if $(V),,@)bzip2 -9
+override CAT                   := $(if $(V),,@)cat
+override CP                    := $(if $(V),,@)cp
+override ECHO                  := $(if $(V),,@)echo
+override FLEX                  := $(if $(V),,@)flex
+override GAWK                  := $(if $(V),,@)gawk
+override GREP                  := $(if $(V),,@)grep
+override HOST_AR               := $(if $(V),,@)ar
+override HOST_CC               := $(if $(V),,@)$(CCACHE) $(HOST_CC)
+override HOST_CXX              := $(if $(V),,@)$(CCACHE) $(HOST_CXX)
+override HOST_STRIP            := $(if $(V),,@)strip
+override INSTALL               := $(if $(V),,@)install
+override JAR                   := $(if $(V),,@)$(JAR)
+override JAVA                  := $(if $(V),,@)$(JAVA)
+override JAVAC                 := $(if $(V),,@)$(JAVAC)
+override LN                    := $(if $(V),,@)ln -f
+override M4                    := $(if $(V),,@)m4
+override MKDIR                 := $(if $(V),,@)mkdir
+override MV                    := $(if $(V),,@)mv
+override OBJCOPY               := $(if $(V),,@)$(CROSS_COMPILE)objcopy
+override PDSASM                        := $(if $(V),,@)$(HOST_OUT)/pdsasm
+override RANLIB                        := $(if $(V),,@)$(CROSS_COMPILE)ranlib
+override RM                    := $(if $(V),,@)rm -f
+override SED                   := $(if $(V),,@)sed
+override STRIP                 := $(if $(V),,@)$(CROSS_COMPILE)strip
+override TAR                   := $(if $(V),,@)tar
+override TOUCH                 := $(if $(V),,@)touch
+override USEASM                        := $(if $(V),,@)$(HOST_OUT)/useasm
+override USELINK               := $(if $(V),,@)$(HOST_OUT)/uselink
+override VHD2INC               := $(if $(V),,@)$(HOST_OUT)/vhd2inc
+override ZIP                   := $(if $(V),,@)$(ZIP)
diff --git a/sgx_km/eurasia_km/eurasiacon/build/linux2/common/android/arch.mk b/sgx_km/eurasia_km/eurasiacon/build/linux2/common/android/arch.mk
new file mode 100644 (file)
index 0000000..7b41576
--- /dev/null
@@ -0,0 +1,107 @@
+########################################################################### ###
+#@Copyright     Copyright (c) Imagination Technologies Ltd. All Rights Reserved
+#@License       Dual MIT/GPLv2
+# 
+# The contents of this file are subject to the MIT license as set out below.
+# 
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+# 
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+# 
+# Alternatively, the contents of this file may be used under the terms of
+# the GNU General Public License Version 2 ("GPL") in which case the provisions
+# of GPL are applicable instead of those above.
+# 
+# If you wish to allow use of your version of this file only under the terms of
+# GPL, and not to allow others to use your version of this file under the terms
+# of the MIT license, indicate your decision by deleting the provisions above
+# and replace them with the notice and other provisions required by GPL as set
+# out in the file called "GPL-COPYING" included in this distribution. If you do
+# not delete the provisions above, a recipient may use your version of this file
+# under the terms of either the MIT license or GPL.
+# 
+# This License is also included in this distribution in the file called
+# "MIT-COPYING".
+# 
+# EXCEPT AS OTHERWISE STATED IN A NEGOTIATED AGREEMENT: (A) THE SOFTWARE IS
+# PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
+# BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+# PURPOSE AND NONINFRINGEMENT; AND (B) IN NO EVENT SHALL THE AUTHORS OR
+# COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+### ###########################################################################
+
+include ../common/android/platform_version.mk
+
+# Now we have included the platform_version.mk file, we know we have a
+# correctly configured OUT_DIR and can probe it to figure out our
+# architecture.
+
+$(eval $(subst #,$(newline),$(shell cat $(BUILD_PROP) | \
+    grep '^ro.product.cpu.abilist=\|^ro.product.cpu.abilist32=' | \
+    sed -e 's,ro.product.cpu.abilist=,JNI_CPU_ABI=,' \
+       -e 's,ro.product.cpu.abilist32=,JNI_CPU_ABI_2ND=,' | \
+    tr ',' ' ' | tr '\n' '#')))
+
+# If ARCH is set, use that to remap to an "Android" ARCH..
+ANDROID_ARCH := $(filter arm arm64 x86 x86_64,$(ARCH))
+
+# x86 is special and has another legacy ARCH name which is remapped
+ifeq ($(ARCH),i386)
+TARGET_ARCH := x86
+endif
+
+ifeq ($(ANDROID_ARCH),)
+# ..otherwise, try to use the ABI list to figure it out.
+# We check 64-bit variants before 32, as a 64-build may be backwards compatible,
+# so the abilist contain both 64- and 32-bit variants
+ifneq ($(filter arm64-v8a,$(JNI_CPU_ABI)),)
+TARGET_ARCH=arm64
+else ifneq ($(filter armeabi-v7a armeabi,$(JNI_CPU_ABI)),)
+TARGET_ARCH=arm
+else ifneq ($(filter mips64,$(JNI_CPU_ABI)),)
+TARGET_ARCH=mips64
+else ifneq ($(filter mips,$(JNI_CPU_ABI)),)
+TARGET_ARCH=mips
+else ifneq ($(filter x86_64,$(JNI_CPU_ABI)),)
+TARGET_ARCH=x86_64
+else ifneq ($(filter x86,$(JNI_CPU_ABI)),)
+TARGET_ARCH=x86
+else
+$(error ARCH not set and JNI_CPU_ABI=$(JNI_CPU_ABI) was not remappable)
+endif
+else
+TARGET_ARCH := $(ANDROID_ARCH)
+endif
+
+JNI_CPU_ABI := $(word 1,$(JNI_CPU_ABI))
+JNI_CPU_ABI_2ND := $(word 1,$(JNI_CPU_ABI_2ND))
+
+include ../common/android/arch_common.mk
+
+ifneq ($(filter arm arm64 mips mips64,$(TARGET_ARCH)),)
+LDM_PLATFORM ?= 1
+endif
+
+ifneq ($(filter x86 x86_64,$(TARGET_ARCH)),)
+LDM_PCI ?= 1
+endif
+
+ifneq ($(filter x86 x86_64,$(TARGET_ARCH)),)
+KERNEL_CROSS_COMPILE ?= undef
+endif
+
+ifneq ($(filter arm64 mips64 x86_64,$(TARGET_ARCH)),)
+ifeq ($(MULTIARCH),)
+$(warning *** 64-bit architecture detected. Enabling MULTIARCH=1.)
+$(warning *** If you want a 64-bit only build, use MULTIARCH=64only.)
+export MULTIARCH := 1
+endif
+endif
diff --git a/sgx_km/eurasia_km/eurasiacon/build/linux2/common/android/arch_common.mk b/sgx_km/eurasia_km/eurasiacon/build/linux2/common/android/arch_common.mk
new file mode 100644 (file)
index 0000000..2cd272e
--- /dev/null
@@ -0,0 +1,158 @@
+########################################################################### ###
+#@Copyright     Copyright (c) Imagination Technologies Ltd. All Rights Reserved
+#@License       Dual MIT/GPLv2
+# 
+# The contents of this file are subject to the MIT license as set out below.
+# 
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+# 
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+# 
+# Alternatively, the contents of this file may be used under the terms of
+# the GNU General Public License Version 2 ("GPL") in which case the provisions
+# of GPL are applicable instead of those above.
+# 
+# If you wish to allow use of your version of this file only under the terms of
+# GPL, and not to allow others to use your version of this file under the terms
+# of the MIT license, indicate your decision by deleting the provisions above
+# and replace them with the notice and other provisions required by GPL as set
+# out in the file called "GPL-COPYING" included in this distribution. If you do
+# not delete the provisions above, a recipient may use your version of this file
+# under the terms of either the MIT license or GPL.
+# 
+# This License is also included in this distribution in the file called
+# "MIT-COPYING".
+# 
+# EXCEPT AS OTHERWISE STATED IN A NEGOTIATED AGREEMENT: (A) THE SOFTWARE IS
+# PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
+# BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+# PURPOSE AND NONINFRINGEMENT; AND (B) IN NO EVENT SHALL THE AUTHORS OR
+# COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+### ###########################################################################
+
+SYS_CFLAGS := \
+ -fno-short-enums \
+ -funwind-tables \
+ -D__linux__
+
+SYS_INCLUDES :=
+
+ifneq ($(TARGET_PLATFORM),)
+
+ # Support for building with the Android NDK >= r15b.
+ # The NDK provides only the most basic includes and libraries.
+
+ SYS_INCLUDES += \
+  -isystem $(NDK_PLATFORMS_ROOT)/$(TARGET_PLATFORM)/arch-$(TARGET_ARCH)/usr/include \
+  -isystem $(NDK_SYSROOT)/usr/include/drm \
+  -isystem $(NDK_SYSROOT)/usr/include
+
+else # !TARGET_PLATFORM
+
+ # These libraries are not coming from the NDK now, so we need to include them
+ # from the ANDROID_ROOT source tree.
+
+ SYS_INCLUDES += \
+  -isystem $(ANDROID_ROOT)/bionic/libc/include \
+  -isystem $(ANDROID_ROOT)/bionic/libc/kernel/android/uapi \
+  -isystem $(ANDROID_ROOT)/bionic/libc/kernel/uapi \
+  -isystem $(ANDROID_ROOT)/bionic/libm/include \
+  -isystem $(ANDROID_ROOT)/external/libdrm/include/drm \
+  -isystem $(ANDROID_ROOT)/external/zlib/src \
+  -isystem $(ANDROID_ROOT)/frameworks/native/include
+
+ ifeq ($(is_future_version),1)
+  SYS_INCLUDES += \
+   -isystem $(ANDROID_ROOT)/libnativehelper/include_jni
+ else ifeq ($(is_aosp_master),1)
+  SYS_INCLUDES += \
+   -isystem $(ANDROID_ROOT)/libnativehelper/include_jni
+ else
+  SYS_INCLUDES += \
+   -isystem $(ANDROID_ROOT)/libnativehelper/include/nativehelper
+ endif
+
+endif # !TARGET_PLATFORM
+
+ # These components aren't in the NDK. They *are* in the VNDK. If this is an
+ # NDK or non-NDK build, but not a VNDK build, include the needed bits from
+ # the ANDROID_ROOT source tree. We put libsync first because the NDK copy
+ # of the sync headers have been stripped in an unsupported way.
+
+ SYS_INCLUDES := \
+  -isystem $(ANDROID_ROOT)/system/core/libsync/include \
+  $(SYS_INCLUDES) \
+  -isystem $(ANDROID_ROOT)/external/libdrm \
+  -isystem $(ANDROID_ROOT)/external/libpng \
+  -isystem $(ANDROID_ROOT)/external/libunwind/include \
+  -isystem $(ANDROID_ROOT)/hardware/libhardware/include \
+  -isystem $(ANDROID_ROOT)/system/media/camera/include
+
+ # boringssl replaced openssl from Marshmallow
+ ifeq ($(is_at_least_marshmallow),1)
+  SYS_INCLUDES += \
+   -isystem $(ANDROID_ROOT)/external/boringssl/src/include
+ else
+  SYS_INCLUDES += \
+   -isystem $(ANDROID_ROOT)/external/openssl/include
+ endif
+
+ # libjpeg-turbo replaced libjpeg from Nougat
+ ifeq ($(is_at_least_nougat),1)
+  SYS_INCLUDES += \
+   -isystem $(ANDROID_ROOT)/external/libjpeg-turbo
+ else
+  SYS_INCLUDES += \
+   -isystem $(ANDROID_ROOT)/external/jpeg
+ endif
+
+ # Handle upstream includes refactoring
+ ifeq ($(is_at_least_oreo),1)
+  SYS_INCLUDES += \
+   -isystem $(ANDROID_ROOT)/frameworks/native/libs/nativewindow/include \
+   -isystem $(ANDROID_ROOT)/system/core/libbacktrace/include \
+   -isystem $(ANDROID_ROOT)/system/core/libsystem/include \
+   -isystem $(ANDROID_ROOT)/system/core/libutils/include
+  ifeq ($(NDK_ROOT),)
+   SYS_INCLUDES += \
+    -isystem $(ANDROID_ROOT)/frameworks/native/libs/arect/include \
+    -isystem $(ANDROID_ROOT)/system/core/liblog/include
+  endif
+ else
+  SYS_INCLUDES += \
+   -isystem $(ANDROID_ROOT)/frameworks/base/include \
+   -isystem $(ANDROID_ROOT)/system/core/include
+ endif
+
+# This is comparing PVR_BUILD_DIR to see if it is omap and adding 
+# includes required for it's HWC.
+ifeq ($(notdir $(abspath .)),omap_android)
+SYS_INCLUDES += \
+ -isystem $(ANDROID_ROOT)/hardware/ti/omap4xxx/kernel-headers \
+ -isystem $(ANDROID_ROOT)/hardware/ti/omap4xxx/ion
+endif
+
+# Always include the NDK compatibility directory, because it allows us to
+# compile in inline versions of simple functions to eliminate dependencies,
+# and we can also constrain the available APIs. Do this last, so we can
+# make sure it is always first on the include list.
+
+SYS_INCLUDES := -isystem eurasiacon/android/ndk $(SYS_INCLUDES)
+
+# Android enables build-id sections to allow mapping binaries to debug
+# information for symbol resolution
+SYS_LDFLAGS += -Wl,--build-id=md5
+
+SYS_EXE_LDFLAGS_CXX := -lstdc++
+
+SYS_LIB_LDFLAGS_CXX := $(SYS_EXE_LDFLAGS_CXX)
+
+OPTIM := -O2
diff --git a/sgx_km/eurasia_km/eurasiacon/build/linux2/common/android/extra_config.mk b/sgx_km/eurasia_km/eurasiacon/build/linux2/common/android/extra_config.mk
new file mode 100644 (file)
index 0000000..5cb8d84
--- /dev/null
@@ -0,0 +1,115 @@
+########################################################################### ###
+#@Copyright     Copyright (c) Imagination Technologies Ltd. All Rights Reserved
+#@License       Dual MIT/GPLv2
+# 
+# The contents of this file are subject to the MIT license as set out below.
+# 
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+# 
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+# 
+# Alternatively, the contents of this file may be used under the terms of
+# the GNU General Public License Version 2 ("GPL") in which case the provisions
+# of GPL are applicable instead of those above.
+# 
+# If you wish to allow use of your version of this file only under the terms of
+# GPL, and not to allow others to use your version of this file under the terms
+# of the MIT license, indicate your decision by deleting the provisions above
+# and replace them with the notice and other provisions required by GPL as set
+# out in the file called "GPL-COPYING" included in this distribution. If you do
+# not delete the provisions above, a recipient may use your version of this file
+# under the terms of either the MIT license or GPL.
+# 
+# This License is also included in this distribution in the file called
+# "MIT-COPYING".
+# 
+# EXCEPT AS OTHERWISE STATED IN A NEGOTIATED AGREEMENT: (A) THE SOFTWARE IS
+# PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
+# BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+# PURPOSE AND NONINFRINGEMENT; AND (B) IN NO EVENT SHALL THE AUTHORS OR
+# COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+### ###########################################################################
+
+
+
+$(eval $(call BothConfigC,ANDROID,))
+
+
+
+$(eval $(call TunableBothConfigC,SUPPORT_PVRSRV_ANDROID_SYSTRACE,))
+
+$(eval $(call TunableBothConfigMake,SUPPORT_ANDROID_PLATFORM,))
+$(eval $(call TunableBothConfigMake,SUPPORT_PVRSRV_ANDROID_SYSTRACE,))
+
+$(eval $(call TunableBothConfigMake,PVR_ANDROID_NATIVE_WINDOW_HAS_SYNC,))
+$(eval $(call TunableBothConfigC,PVR_ANDROID_NATIVE_WINDOW_HAS_SYNC,))
+
+$(eval $(call TunableBothConfigMake,PVR_ANDROID_NATIVE_WINDOW_HAS_FENCE,))
+$(eval $(call TunableBothConfigC,PVR_ANDROID_NATIVE_WINDOW_HAS_FENCE,))
+
+ifeq ($(NO_HARDWARE),1)
+ override PVR_ANDROID_COMPOSERHAL := null
+endif
+
+ifneq ($(PVR_ANDROID_COMPOSERHAL),drm)
+ ifneq ($(SUPPORT_PVRSRV_DEVICE_CLASS),1)
+  override PVR_ANDROID_COMPOSERHAL := null
+ endif
+endif
+
+
+# Most development systems will have at least one copy of java, but some may
+# have more. If the build system detected that a specific 'forced' version
+# of java should be used, and the user didn't override JAVAC, try to set it
+# up here. We'll use JAVA_HOME if it's set, falling back to PATH if it is
+# not.
+ifeq ($(JAVAC),)
+ # If JAVA_HOME is unset, implement some assumed paths taken from Android's
+ # build/envsetup.sh script (these are intentionally Ubuntu centric).
+ ifeq ($(JAVA_HOME),)
+  ifeq ($(LEGACY_USE_JAVA7),1)
+   JAVA_HOME ?= /usr/lib/jvm/java-7-openjdk-amd64
+  else
+   JAVA_HOME ?= /usr/lib/jvm/java-8-openjdk-amd64
+  endif
+  ifeq ($(wildcard $(JAVA_HOME)),)
+   JAVA_HOME :=
+  endif
+ endif
+
+ ifeq ($(JAVA_HOME),)
+  JAVA ?= java
+  JAVAC ?= javac
+ else
+  JAVA := $(JAVA_HOME)/bin/java
+  JAVAC := $(JAVA_HOME)/bin/javac
+  ifeq ($(wildcard $(JAVAC)),)
+   $(error JAVA_HOME does not point to a valid java installation)
+  endif
+ endif
+
+ # Test the configured JDK for validity
+ ifeq ($(LEGACY_USE_JAVA6),1)
+  ifeq ($(shell $(JAVA) -version 2>&1 | grep -qe 'Java(TM).*1\.6\.0' && echo 1 || echo 0),0)
+   $(error '$(JAVA) -version' was not for Oracle JDK 6)
+  endif
+ else ifeq ($(LEGACY_USE_JAVA7),1)
+  ifeq ($(shell $(JAVA) -version 2>&1 | grep -qe 'OpenJDK.*7u' && echo 1 || echo 0),0)
+   $(error '$(JAVA) -version' was not for OpenJDK 7)
+  endif
+ else
+  ifeq ($(shell $(JAVA) -version 2>&1 | grep -qe 'OpenJDK.*1\.8\.' && echo 1 || echo 0),0)
+   $(error '$(JAVA) -version' was not for OpenJDK 8)
+  endif
+ endif
+endif
+
+include ../common/ion.mk
diff --git a/sgx_km/eurasia_km/eurasiacon/build/linux2/common/android/features.mk b/sgx_km/eurasia_km/eurasiacon/build/linux2/common/android/features.mk
new file mode 100644 (file)
index 0000000..bc92a6f
--- /dev/null
@@ -0,0 +1,254 @@
+########################################################################### ###
+#@Copyright     Copyright (c) Imagination Technologies Ltd. All Rights Reserved
+#@License       Dual MIT/GPLv2
+# 
+# The contents of this file are subject to the MIT license as set out below.
+# 
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+# 
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+# 
+# Alternatively, the contents of this file may be used under the terms of
+# the GNU General Public License Version 2 ("GPL") in which case the provisions
+# of GPL are applicable instead of those above.
+# 
+# If you wish to allow use of your version of this file only under the terms of
+# GPL, and not to allow others to use your version of this file under the terms
+# of the MIT license, indicate your decision by deleting the provisions above
+# and replace them with the notice and other provisions required by GPL as set
+# out in the file called "GPL-COPYING" included in this distribution. If you do
+# not delete the provisions above, a recipient may use your version of this file
+# under the terms of either the MIT license or GPL.
+# 
+# This License is also included in this distribution in the file called
+# "MIT-COPYING".
+# 
+# EXCEPT AS OTHERWISE STATED IN A NEGOTIATED AGREEMENT: (A) THE SOFTWARE IS
+# PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
+# BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+# PURPOSE AND NONINFRINGEMENT; AND (B) IN NO EVENT SHALL THE AUTHORS OR
+# COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+### ###########################################################################
+
+# Basic support option tuning for Android
+#
+SUPPORT_ANDROID_PLATFORM := 1
+SUPPORT_OPENGLES1_V1_ONLY := 1
+DONT_USE_SONAMES := 1
+
+# Meminfo IDs are required for buffer stamps
+#
+SUPPORT_MEMINFO_IDS := 1
+
+# Enable services ion support by default
+#
+SUPPORT_ION ?= 0
+SUPPORT_DMABUF := 1
+
+# Need multi-process support in PDUMP
+#
+SUPPORT_PDUMP_MULTI_PROCESS := 1
+
+# Always print debugging after 5 seconds of no activity
+#
+CLIENT_DRIVER_DEFAULT_WAIT_RETRIES := 50
+
+# Android WSEGL is always the same
+#
+OPK_DEFAULT := libpvrANDROID_WSEGL.so
+
+# srvkm is always built, but bufferclass_example is only built
+# before EGL_image_external was generally available.
+#
+KERNEL_COMPONENTS := srvkm
+
+# Use the new PVR_DPF implementation to allow lower message levels
+# to be stripped from production drivers
+#
+PVRSRV_NEW_PVR_DPF := 1
+
+# Production Android builds don't want PVRSRVGetDCSystemBuffer
+#
+SUPPORT_PVRSRV_GET_DC_SYSTEM_BUFFER := 0
+
+# Prefer to limit the 3D parameters heap to <16MB and move the
+# extra 48MB to the general heap. This only affects cores with
+# 28bit MMUs (520, 530, 531, 540).
+#
+SUPPORT_LARGE_GENERAL_HEAP := 1
+
+# Enable a page pool for uncached memory allocations. This improves
+# the performance of such allocations because the pages are temporarily
+# not returned to Linux and therefore do not have to be re-invalidated
+# (fewer cache invalidates are needed).
+#
+# Default the cache size to a maximum of 5400 pages (~21MB). If using
+# newer Linux kernels (>=3.0) the cache may be reclaimed and become
+# smaller than this maximum during runtime.
+#
+PVR_LINUX_MEM_AREA_POOL_MAX_PAGES ?= 5400
+
+##############################################################################
+# Enable source fortification by default
+#
+FORTIFY ?= 1
+
+##############################################################################
+# Unless overridden by the user, assume the RenderScript Compute API level
+# matches that of the SDK API_LEVEL.
+#
+RSC_API_LEVEL ?= $(API_LEVEL)
+ifneq ($(findstring $(RSC_API_LEVEL),21 22),)
+RSC_API_LEVEL := 20
+endif
+
+##############################################################################
+# Framebuffer target extension is used to find configs compatible with
+# the framebuffer (added in JB MR1).
+#
+EGL_EXTENSION_ANDROID_FRAMEBUFFER_TARGET := 1
+
+##############################################################################
+# Handle various platform includes for unittests
+#
+UNITTEST_INCLUDES := \
+ eurasiacon/android \
+ $(ANDROID_ROOT)/frameworks/base/native/include \
+ $(ANDROID_ROOT)/frameworks/native/include \
+ $(ANDROID_ROOT)/frameworks/native/opengl/include \
+ $(ANDROID_ROOT)/libnativehelper/include/nativehelper
+
+UNITTEST_INCLUDES += eurasiacon/unittests/include
+
+##############################################################################
+# Future versions moved proprietary libraries to a vendor directory
+#
+ifeq ($(wildcard $(TARGET_ROOT)/product/$(TARGET_DEVICE)/vendor),)
+PVRSRV_MODULE_BASEDIR := /system/lib/modules/
+BIN_DESTDIR := /system/vendor/bin
+APP_DESTDIR := /data/app
+else
+PVR_ANDROID_FORCE_APP_NATIVE_UNPACKED := 1
+PVRSRV_MODULE_BASEDIR := /vendor/lib/modules/
+BIN_DESTDIR := /vendor/bin
+APP_DESTDIR := /vendor/app
+endif
+
+##############################################################################
+# Android doesn't use these install script variables. They're still in place
+# because the Linux install scripts use them.
+#
+SHLIB_DESTDIR := not-used
+EGL_DESTDIR := not-used
+
+# Must give our EGL/GLES libraries a globally unique name
+#
+EGL_BASENAME_SUFFIX := _POWERVR_SGX$(SGXCORE)_$(SGX_CORE_REV)
+
+SYS_CXXFLAGS := -fuse-cxa-atexit $(SYS_CFLAGS)
+SYS_INCLUDES += -isystem $(LIBCXX_INCLUDE_PATH)
+
+##############################################################################
+# Support the OES_EGL_image_external extensions in the client drivers.
+#
+GLES1_EXTENSION_EGL_IMAGE_EXTERNAL := 1
+GLES2_EXTENSION_EGL_IMAGE_EXTERNAL := 1
+
+##############################################################################
+# ICS requires that at least one driver EGLConfig advertises the
+# EGL_RECORDABLE_ANDROID attribute. The platform requires that surfaces
+# rendered with this config can be consumed by an OMX video encoder.
+#
+EGL_EXTENSION_ANDROID_RECORDABLE := 1
+
+##############################################################################
+# ICS added the EGL_ANDROID_blob_cache extension. Enable support for this
+# extension in EGL/GLESv2.
+#
+EGL_EXTENSION_ANDROID_BLOB_CACHE := 1
+
+##############################################################################
+# JB MR1 introduces cross-process syncs associated with a fd.
+# This requires a new enough kernel version to have the base/sync driver.
+#
+EGL_EXTENSION_ANDROID_NATIVE_FENCE_SYNC ?= 1
+
+##############################################################################
+# Kernel 4.9 introduces new sync framework for cross-process sync
+#
+ifneq ($(strip $(KERNELDIR)),)
+include ../kernel_version.mk
+ifeq ($(call kernel-version-at-least,4,9,27),true)
+PVR_ANDROID_NATIVE_WINDOW_HAS_FENCE ?= 1
+else
+PVR_ANDROID_NATIVE_WINDOW_HAS_SYNC ?= 1
+endif
+endif
+
+##############################################################################
+# Versions of Android prior to Nougat required Java 7 (OpenJDK).
+#
+ifeq ($(is_at_least_nougat),0)
+LEGACY_USE_JAVA7 ?= 1
+endif
+
+##############################################################################
+# Lollipop supports 64-bit. Configure BCC to emit both 32-bit and 64-bit LLVM
+# bitcode in the renderscript driver.
+#
+ifeq ($(is_at_least_lollipop),1)
+PVR_ANDROID_BCC_MULTIARCH_SUPPORT := 1
+endif
+
+##############################################################################
+# Versions of Android prior to Nougat required .apk files to be processed with
+# zipalign. Using this tool on Nougat or greater will corrupt the .apk file,
+# as alignment is already done by signapk.jar, so we must disable it.
+#
+ifeq ($(is_at_least_nougat),0)
+LEGACY_USE_ZIPALIGN ?= 1
+endif
+
+##############################################################################
+# Marshmallow needs --soname turned on
+#
+ifeq ($(is_at_least_marshmallow),1)
+PVR_ANDROID_NEEDS_SONAME ?= 1
+endif
+
+##############################################################################
+# Marshmallow replaces RAW_SENSOR with RAW10, RAW12 and RAW16
+#
+ifeq ($(is_at_least_marshmallow),1)
+PVR_ANDROID_HAS_HAL_PIXEL_FORMAT_RAWxx := 1
+endif
+
+##############################################################################
+# Marshmallow onwards DDK stopped render script acceleration using GPU.
+# This flag stops device allocation.
+#
+ifeq ($(is_at_least_marshmallow),1)
+PVR_ANDROID_HAS_GRALLOC_USAGE_RENDERSCRIPT := 1
+endif
+
+# On Android O, the <sync/sync.h> file was moved to <android/sync.h> for
+# DDK use. A symlink was left for legacy reasons, but it conflicts with
+# the NDK. Tell the driver to avoid using the symlink compatibility.
+#
+ifeq ($(is_at_least_oreo),1)
+override PVR_ANDROID_HAS_ANDROID_SYNC_H := 1
+endif
+
+# Placeholder for future version handling
+#
+ifeq ($(is_future_version),1)
+-include ../common/android/future_version.mk
+endif
diff --git a/sgx_km/eurasia_km/eurasiacon/build/linux2/common/android/install.sh.tpl b/sgx_km/eurasia_km/eurasiacon/build/linux2/common/android/install.sh.tpl
new file mode 100644 (file)
index 0000000..bc9fa24
--- /dev/null
@@ -0,0 +1,315 @@
+#!/bin/bash
+############################################################################ ###
+#@Copyright     Copyright (c) Imagination Technologies Ltd. All Rights Reserved
+#@License       Dual MIT/GPLv2
+# 
+# The contents of this file are subject to the MIT license as set out below.
+# 
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+# 
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+# 
+# Alternatively, the contents of this file may be used under the terms of
+# the GNU General Public License Version 2 ("GPL") in which case the provisions
+# of GPL are applicable instead of those above.
+# 
+# If you wish to allow use of your version of this file only under the terms of
+# GPL, and not to allow others to use your version of this file under the terms
+# of the MIT license, indicate your decision by deleting the provisions above
+# and replace them with the notice and other provisions required by GPL as set
+# out in the file called "GPL-COPYING" included in this distribution. If you do
+# not delete the provisions above, a recipient may use your version of this file
+# under the terms of either the MIT license or GPL.
+# 
+# This License is also included in this distribution in the file called
+# "MIT-COPYING".
+# 
+# EXCEPT AS OTHERWISE STATED IN A NEGOTIATED AGREEMENT: (A) THE SOFTWARE IS
+# PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
+# BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+# PURPOSE AND NONINFRINGEMENT; AND (B) IN NO EVENT SHALL THE AUTHORS OR
+# COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+#### ###########################################################################
+# Help on how to invoke
+#
+function usage {
+    echo "usage: $0 [options...]"
+    echo ""
+    echo "Options: -v            Verbose mode."
+    echo "         -n            Dry-run mode."
+    echo "         -u            Uninstall-only mode."
+    echo "         --root <path> Use <path> as the root of the install file system."
+    echo "                       (Overrides the DISCIMAGE environment variable.)"
+    exit 1
+}
+
+WD=`pwd`
+SCRIPT_ROOT=`dirname $0`
+cd $SCRIPT_ROOT
+
+PVRVERSION=[PVRVERSION]
+PVRBUILD=[PVRBUILD]
+PRIMARY_ARCH="[PRIMARY_ARCH]"
+ARCHITECTURES="[ARCHITECTURES]"
+
+APP_DESTDIR=[APP_DESTDIR]
+BIN_DESTDIR=[BIN_DESTDIR]
+DATA_DESTDIR=[BIN_DESTDIR]
+
+# Exit with an error messages.
+# $1=blurb
+#
+function bail {
+    if [ ! -z "$1" ]; then
+       echo "$1" >&2
+    fi
+
+    echo "" >&2
+    echo "Installation failed" >&2
+    exit 1
+}
+
+# Copy all the required files into their appropriate places on the local machine.
+function install_locally {
+    # Define functions required for local installs
+
+    # basic installation function
+    # $1=fromfile, $2=destfilename, $3=blurb, $4=chmod-flags, $5=chown-flags
+    #
+    function install_file {
+       if [ -z "$DDK_INSTALL_LOG" ]; then
+           bail "INTERNAL ERROR: Invoking install without setting logfile name"
+       fi
+       DESTFILE=${DISCIMAGE}$2
+       DESTDIR=`dirname $DESTFILE`
+
+       if [ ! -e $1 ]; then
+           [ -n "$VERBOSE" ] && echo "skipping file $1 -> $2"
+           return
+       fi
+
+       # Destination directory - make sure it's there and writable
+       #
+       if [ -d "${DESTDIR}" ]; then
+           if [ ! -w "${DESTDIR}" ]; then
+               bail "${DESTDIR} is not writable."
+           fi
+       else
+           $DOIT mkdir -p ${DESTDIR} || bail "Couldn't mkdir -p ${DESTDIR}"
+           [ -n "$VERBOSE" ] && echo "Created directory `dirname $2`"
+       fi
+
+       # Delete the original so that permissions don't persist.
+       #
+       $DOIT rm -f $DESTFILE
+
+       $DOIT cp -f $1 $DESTFILE || bail "Couldn't copy $1 to $DESTFILE"
+       $DOIT chmod $4 ${DESTFILE}
+
+       echo "$3 `basename $1` -> $2"
+       $DOIT echo "file $2" >> $DDK_INSTALL_LOG
+    }
+
+    # If we install to an empty $DISCIMAGE, then we need to create some
+    # dummy directories, even if they contain no files, otherwise 'adb
+    # sync' may fail. (It allows '/vendor' to not exist currently.)
+    [ ! -d ${DISCIMAGE}/data ]   && mkdir ${DISCIMAGE}/data
+    [ ! -d ${DISCIMAGE}/system ] && mkdir ${DISCIMAGE}/system
+
+    for arch in $ARCHITECTURES; do
+       if [ ! -d $arch ]; then
+           echo "Missing architecture $arch"
+               if [ "$arch" = "$PRIMARY_ARCH" ]; then
+                   echo "Primary architecture is missing, aborting!"
+                   exit 1
+               else
+                   continue
+               fi
+       fi
+
+       BASE_DESTDIR=`dirname ${BIN_DESTDIR}`
+       case $arch in
+           target*64*  )
+               SHLIB_DESTDIR=${BASE_DESTDIR}/lib64
+               ;;
+           *)
+               SHLIB_DESTDIR=${BASE_DESTDIR}/lib
+       esac
+       EGL_DESTDIR=${SHLIB_DESTDIR}/egl
+
+       pushd $arch > /dev/null
+       # Install UM components
+       if [ -f install_um.sh ]; then
+           DDK_INSTALL_LOG=$UMLOG
+           echo "Installing User components for architecture $arch"
+           $DOIT echo "version $PVRVERSION" > $DDK_INSTALL_LOG
+           source install_um.sh
+           echo
+       fi
+       popd > /dev/null
+    done
+
+    pushd $PRIMARY_ARCH > /dev/null
+    # Install KM components
+    if [ -f install_km.sh ]; then
+       DDK_INSTALL_LOG=$KMLOG
+       echo "Installing Kernel components for architecture $PRIMARY_ARCH"
+       $DOIT echo "version $PVRVERSION" > $DDK_INSTALL_LOG
+       source install_km.sh
+       echo
+    fi
+    popd > /dev/null
+
+    # Create an OLDLOG so old versions of the driver can uninstall.
+    $DOIT echo "version $PVRVERSION" > $OLDLOG
+    if [ -f $KMLOG ]; then
+       tail -n +2 $KMLOG >> $OLDLOG
+    fi
+    if [ -f $UMLOG ]; then
+       tail -n +2 $UMLOG >> $OLDLOG
+    fi
+
+    # Make sure new logs are newer than $OLDLOG
+    touch -m -d "last sunday" $OLDLOG
+}
+
+# Read the appropriate install log and delete anything therein.
+function uninstall_locally {
+    # Function to uninstall something.
+    function do_uninstall {
+       LOG=$1
+
+       if [ ! -f $LOG ]; then
+           echo "Nothing to un-install."
+           return;
+       fi
+
+       BAD=0
+       VERSION=""
+       while read type data; do
+           case $type in
+           version)
+               echo "Uninstalling existing version $data"
+               VERSION="$data"
+               ;;
+           link|file)
+               if [ -z "$VERSION" ]; then
+                   BAD=1;
+                   echo "No version record at head of $LOG"
+               elif ! $DOIT rm -f ${DISCIMAGE}${data}; then
+                   BAD=1;
+               else
+                   [ -n "$VERBOSE" ] && echo "Deleted $type $data"
+               fi
+               ;;
+           tree)
+               ;;
+           esac
+       done < $1;
+
+       if [ $BAD = 0 ]; then
+           echo "Uninstallation completed."
+           $DOIT rm -f $LOG
+       else
+           echo "Uninstallation failed!!!"
+       fi
+    }
+
+    if [ -z "$OLDLOG" -o -z "$KMLOG" -o -z "$UMLOG" ]; then
+       bail "INTERNAL ERROR: Invoking uninstall without setting logfile name"
+    fi
+
+    # Uninstall anything installed using the old-style install scripts.
+    LEGACY_LOG=0
+    if [ -f $OLDLOG ]; then
+       if [ -f $KMLOG -a $KMLOG -nt $OLDLOG ]; then
+           # Last install was new scheme.
+           rm $OLDLOG
+       elif [ -f $UMLOG -a $UMLOG -nt $OLDLOG ]; then
+           # Last install was new scheme.
+           rm $OLDLOG
+       else
+           echo "Uninstalling all components from legacy log."
+           do_uninstall $OLDLOG
+           LEGACY_LOG=1
+           echo
+       fi
+    fi
+
+    if [ $LEGACY_LOG = 0 ]; then
+       # Uninstall KM components if we are doing a KM install.
+       if [ -f install_km.sh -a -f $KMLOG ]; then
+           echo "Uninstalling Kernel components"
+           do_uninstall $KMLOG
+           echo
+       fi
+       # Uninstall UM components if we are doing a UM install.
+       if [ -f install_um.sh -a -f $UMLOG ]; then
+           echo "Uninstalling User components"
+           do_uninstall $UMLOG
+           echo
+       fi
+    fi
+}
+
+# Work out if there are any special instructions.
+#
+while [ "$1" ]; do
+    case "$1" in
+    -v|--verbose)
+       VERBOSE=v
+       ;;
+    -r|--root)
+       DISCIMAGE=$2
+       shift;
+       ;;
+    -u|--uninstall)
+       UNINSTALL_ONLY=y
+       ;;
+    -n)
+       DOIT=echo
+       ;;
+    -h | --help | *)
+       usage
+       ;;
+    esac
+    shift
+done
+
+if [ ! -z "$DISCIMAGE" ]; then
+
+    if [ ! -d "$DISCIMAGE" ]; then
+       bail "$0: $DISCIMAGE does not exist."
+    fi
+
+    echo
+    if [ $DISCIMAGE == "/" ]; then
+       echo "Installing PowerVR '$PVRVERSION ($PVRBUILD)' locally"
+    else
+       echo "Installing PowerVR '$PVRVERSION ($PVRBUILD)' on $DISCIMAGE"
+    fi
+    echo
+    echo "File system installation root is $DISCIMAGE"
+    echo
+
+    OLDLOG=$DISCIMAGE/powervr_ddk_install.log
+    KMLOG=$DISCIMAGE/powervr_ddk_install_km.log
+    UMLOG=$DISCIMAGE/powervr_ddk_install_um.log
+
+    uninstall_locally
+
+    if [ "$UNINSTALL_ONLY" != "y" ]; then
+       install_locally
+    fi
+
+else
+    bail "DISCIMAGE must be set for installation to be possible."
+fi
diff --git a/sgx_km/eurasia_km/eurasiacon/build/linux2/common/android/paths.mk b/sgx_km/eurasia_km/eurasiacon/build/linux2/common/android/paths.mk
new file mode 100644 (file)
index 0000000..fa91e86
--- /dev/null
@@ -0,0 +1,60 @@
+########################################################################### ###
+#@Copyright     Copyright (c) Imagination Technologies Ltd. All Rights Reserved
+#@License       Dual MIT/GPLv2
+# 
+# The contents of this file are subject to the MIT license as set out below.
+# 
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+# 
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+# 
+# Alternatively, the contents of this file may be used under the terms of
+# the GNU General Public License Version 2 ("GPL") in which case the provisions
+# of GPL are applicable instead of those above.
+# 
+# If you wish to allow use of your version of this file only under the terms of
+# GPL, and not to allow others to use your version of this file under the terms
+# of the MIT license, indicate your decision by deleting the provisions above
+# and replace them with the notice and other provisions required by GPL as set
+# out in the file called "GPL-COPYING" included in this distribution. If you do
+# not delete the provisions above, a recipient may use your version of this file
+# under the terms of either the MIT license or GPL.
+# 
+# This License is also included in this distribution in the file called
+# "MIT-COPYING".
+# 
+# EXCEPT AS OTHERWISE STATED IN A NEGOTIATED AGREEMENT: (A) THE SOFTWARE IS
+# PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
+# BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+# PURPOSE AND NONINFRINGEMENT; AND (B) IN NO EVENT SHALL THE AUTHORS OR
+# COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+### ###########################################################################
+
+TARGET_BUILD_TYPE ?= release
+
+HOST_OS ?= linux
+HOST_ARCH ?= x86
+
+ifeq ($(wildcard $(OUT_DIR)),)
+OUT_DIR = $(ANDROID_ROOT)/out
+endif
+
+ifeq ($(TARGET_BUILD_TYPE),debug)
+TARGET_ROOT := $(OUT_DIR)/debug/target
+else
+TARGET_ROOT := $(OUT_DIR)/target
+endif
+
+ifeq ($(NDK_ROOT),)
+LIBCXX_INCLUDE_PATH := $(ANDROID_ROOT)/external/libcxx/include
+else
+LIBCXX_INCLUDE_PATH := $(NDK_ROOT)/sources/cxx-stl/llvm-libc++/include
+endif
diff --git a/sgx_km/eurasia_km/eurasiacon/build/linux2/common/android/platform_version.mk b/sgx_km/eurasia_km/eurasiacon/build/linux2/common/android/platform_version.mk
new file mode 100644 (file)
index 0000000..0a91f6b
--- /dev/null
@@ -0,0 +1,192 @@
+########################################################################### ###
+#@Copyright     Copyright (c) Imagination Technologies Ltd. All Rights Reserved
+#@License       Dual MIT/GPLv2
+# 
+# The contents of this file are subject to the MIT license as set out below.
+# 
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+# 
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+# 
+# Alternatively, the contents of this file may be used under the terms of
+# the GNU General Public License Version 2 ("GPL") in which case the provisions
+# of GPL are applicable instead of those above.
+# 
+# If you wish to allow use of your version of this file only under the terms of
+# GPL, and not to allow others to use your version of this file under the terms
+# of the MIT license, indicate your decision by deleting the provisions above
+# and replace them with the notice and other provisions required by GPL as set
+# out in the file called "GPL-COPYING" included in this distribution. If you do
+# not delete the provisions above, a recipient may use your version of this file
+# under the terms of either the MIT license or GPL.
+# 
+# This License is also included in this distribution in the file called
+# "MIT-COPYING".
+# 
+# EXCEPT AS OTHERWISE STATED IN A NEGOTIATED AGREEMENT: (A) THE SOFTWARE IS
+# PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
+# BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+# PURPOSE AND NONINFRINGEMENT; AND (B) IN NO EVENT SHALL THE AUTHORS OR
+# COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+### ###########################################################################
+
+# If there's no build.prop file in the expected location, bail out. Tell the
+# user which file we were trying to read in case TARGET_DEVICE was not set.
+#
+BUILD_PROP := $(TARGET_ROOT)/product/$(TARGET_DEVICE)/vendor/build.prop
+ifeq ($(wildcard $(BUILD_PROP)),)
+$(warning *** Could not determine Android version.  Did you set ANDROID_ROOT,\
+OUT_DIR and TARGET_DEVICE in your environment correctly?)
+$(error Error reading $(BUILD_PROP))
+endif
+
+# Extract version.release and version.codename from the build.prop file.
+# If either of the values aren't in the build.prop, the Make variables won't
+# be defined, and fallback handling will take place.
+#
+define newline
+
+
+endef
+$(eval $(subst #,$(newline),$(shell cat $(BUILD_PROP) | \
+       grep '^ro.build.version.release=\|^ro.build.id=' | \
+       sed -e 's,ro.build.version.release=,PLATFORM_RELEASE=,' \
+           -e 's,ro.build.id=,PLATFORM_BUILDID=,' | tr '\n' '#')))
+
+define release-starts-with
+$(shell echo $(PLATFORM_RELEASE) | grep -q ^$(1); \
+       [ "$$?" = "0" ] && echo 1 || echo 0)
+endef
+
+# ro.build.version.release contains the version number for release builds, or
+# the version codename otherwise. In this case we need to assume that the
+# version of Android we're building against has the features that are in the
+# final release of that version, so we set PLATFORM_RELEASE to the
+# corresponding release number.
+#
+# NOTE: It's the _string_ ordering that matters here, not the version number
+# ordering. You need to make sure that strings that are sub-strings of other
+# checked strings appear _later_ in this list.
+#
+# e.g. 'LollipopMR1' starts with 'Lollipop', but it is not Lollipop.
+#
+# NOTE: The version codenames for Android stopped after KitKat, don't read
+# too much into the below names. They are mostly placeholders/reminders.
+#
+ifeq ($(call release-starts-with,LollipopMR1),1)
+override PLATFORM_RELEASE := 5.1
+else ifeq ($(call release-starts-with,Marshmallow),1)
+override PLATFORM_RELEASE := 6.0
+else ifeq ($(call release-starts-with,NougatMR),1)
+override PLATFORM_RELEASE := 7.1
+else ifeq ($(call release-starts-with,Nougat),1)
+override PLATFORM_RELEASE := 7.0
+else ifeq ($(call release-starts-with,Oreo),1)
+override PLATFORM_RELEASE := 8.0
+else ifeq ($(PLATFORM_BUILDID),OC)
+override PLATFORM_RELEASE := 8.0.80
+else ifeq ($(shell echo $(PLATFORM_RELEASE) | grep -qE "[A-Za-z]+"; echo $$?),0)
+override PLATFORM_RELEASE := 8.2
+endif
+
+# Workaround for master. Sometimes there is an AOSP version ahead of
+# the current master version number, but master still has more features.
+#
+ifeq ($(PLATFORM_RELEASE),8.0.80)
+override PLATFORM_RELEASE := 8.0
+is_aosp_master := 1
+endif
+
+PLATFORM_RELEASE_MAJ   := $(shell echo $(PLATFORM_RELEASE) | cut -f1 -d'.')
+PLATFORM_RELEASE_MIN   := $(shell echo $(PLATFORM_RELEASE) | cut -f2 -d'.')
+PLATFORM_RELEASE_PATCH := $(shell echo $(PLATFORM_RELEASE) | cut -f3 -d'.')
+
+# Not all versions have a patchlevel; fix that up here
+#
+ifeq ($(PLATFORM_RELEASE_PATCH),)
+PLATFORM_RELEASE_PATCH := 0
+endif
+
+# Macros to help categorize support for features and API_LEVEL for tests.
+#
+is_at_least_lollipop_mr1 := \
+       $(shell ( test $(PLATFORM_RELEASE_MAJ) -gt 5 || \
+                               ( test $(PLATFORM_RELEASE_MAJ) -eq 5 && \
+                                 test $(PLATFORM_RELEASE_MIN) -gt 0 ) ) && echo 1 || echo 0)
+is_at_least_marshmallow := \
+       $(shell ( test $(PLATFORM_RELEASE_MAJ) -ge 6 ) && echo 1 || echo 0)
+is_at_least_nougat := \
+       $(shell ( test $(PLATFORM_RELEASE_MAJ) -ge 7 ) && echo 1 || echo 0)
+is_at_least_nougat_mr1 := \
+       $(shell ( test $(PLATFORM_RELEASE_MAJ) -gt 7 || \
+                               ( test $(PLATFORM_RELEASE_MAJ) -eq 7 && \
+                                 test $(PLATFORM_RELEASE_MIN) -gt 0 ) ) && echo 1 || echo 0)
+is_at_least_oreo := \
+       $(shell ( test $(PLATFORM_RELEASE_MAJ) -ge 8 ) && echo 1 || echo 0)
+
+# Assume "future versions" are >7.1, but we don't really know
+is_future_version := \
+       $(shell ( test $(PLATFORM_RELEASE_MAJ) -gt 8 || \
+                               ( test $(PLATFORM_RELEASE_MAJ) -eq 8 && \
+                                 test $(PLATFORM_RELEASE_MIN) -gt 0 ) ) && echo 1 || echo 0)
+
+# Picking an exact match of API_LEVEL for the platform we're building
+# against can avoid compatibility theming and affords better integration.
+#
+# This is also a good place to select the right jack toolchain.
+#
+ifeq ($(is_future_version),1)
+JACK_VERSION ?= 4.32.CANDIDATE
+API_LEVEL := 26
+else ifeq ($(is_at_least_oreo),1)
+ifeq ($(is_aosp_master),1)
+override JACK_VERSION :=
+else
+JACK_VERSION ?= 4.31.CANDIDATE
+endif
+API_LEVEL := 26
+else ifeq ($(is_at_least_nougat_mr1),1)
+JACK_VERSION ?= 3.36.CANDIDATE
+API_LEVEL := 25
+else ifeq ($(is_at_least_nougat),1)
+JACK_VERSION ?= 3.36.CANDIDATE
+API_LEVEL := 24
+else ifeq ($(is_at_least_marshmallow),1)
+JACK_VERSION ?= 2.21.RELEASE
+API_LEVEL := 23
+else ifeq ($(is_at_least_lollipop_mr1),1)
+# This early version had no version-file.version.code; fake it
+JACK_VERSION ?= 1.0.RELEASE
+API_LEVEL := 22
+else
+$(error Must build against Android >= 5.1)
+endif
+
+# If the NDK is enabled, check it has API_LEVEL support for us
+ifneq ($(NDK_ROOT),)
+ NDK_PLATFORMS_ROOT ?= $(NDK_ROOT)/platforms
+ ifeq ($(strip $(wildcard $(NDK_PLATFORMS_ROOT)/android-*)),)
+  $(error NDK_PLATFORMS_ROOT does not point to a valid location)
+ endif
+ override TARGET_PLATFORM := android-$(API_LEVEL)
+ ifeq ($(strip $(wildcard $(NDK_PLATFORMS_ROOT)/$(TARGET_PLATFORM))),)
+  $(error NDK support for $(TARGET_PLATFORM) is missing)
+ endif
+endif
+
+# Each DDK is tested against only a single version of the platform.
+# Warn if a different platform version is used.
+#
+ifeq ($(is_future_version),1)
+$(info WARNING: Android version is newer than this DDK supports)
+else ifneq ($(is_at_least_marshmallow),1)
+$(info WARNING: Android version is older than this DDK supports)
+endif
diff --git a/sgx_km/eurasia_km/eurasiacon/build/linux2/common/dridrm.mk b/sgx_km/eurasia_km/eurasiacon/build/linux2/common/dridrm.mk
new file mode 100644 (file)
index 0000000..dfe3018
--- /dev/null
@@ -0,0 +1,63 @@
+########################################################################### ###
+#@Copyright     Copyright (c) Imagination Technologies Ltd. All Rights Reserved
+#@License       Dual MIT/GPLv2
+# 
+# The contents of this file are subject to the MIT license as set out below.
+# 
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+# 
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+# 
+# Alternatively, the contents of this file may be used under the terms of
+# the GNU General Public License Version 2 ("GPL") in which case the provisions
+# of GPL are applicable instead of those above.
+# 
+# If you wish to allow use of your version of this file only under the terms of
+# GPL, and not to allow others to use your version of this file under the terms
+# of the MIT license, indicate your decision by deleting the provisions above
+# and replace them with the notice and other provisions required by GPL as set
+# out in the file called "GPL-COPYING" included in this distribution. If you do
+# not delete the provisions above, a recipient may use your version of this file
+# under the terms of either the MIT license or GPL.
+# 
+# This License is also included in this distribution in the file called
+# "MIT-COPYING".
+# 
+# EXCEPT AS OTHERWISE STATED IN A NEGOTIATED AGREEMENT: (A) THE SOFTWARE IS
+# PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
+# BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+# PURPOSE AND NONINFRINGEMENT; AND (B) IN NO EVENT SHALL THE AUTHORS OR
+# COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+### ###########################################################################
+
+$(eval $(call TunableBothConfigC,SUPPORT_DRI_DRM,))
+$(eval $(call TunableBothConfigC,SUPPORT_DRI_DRM_EXT,))
+$(eval $(call TunableKernelConfigC,SUPPORT_DRI_DRM_PLUGIN,))
+
+
+$(eval $(call TunableBothConfigMake,SUPPORT_DRI_DRM,))
+
+ifeq ($(SUPPORT_DRI_DRM),1)
+ifeq ($(SUPPORT_DRI_DRM_NO_LIBDRM),1)
+endif
+$(eval $(call TunableKernelConfigC,PVR_SECURE_DRM_AUTH_EXPORT,))
+$(eval $(call TunableKernelConfigC,SUPPORT_DRM_MODESET,))
+endif
+
+$(eval $(call TunableKernelConfigC,PVR_DISPLAY_CONTROLLER_DRM_IOCTL,))
+
+$(eval $(call TunableBothConfigC,PVR_DRI_DRM_NOT_PCI))
+$(eval $(call TunableBothConfigMake,PVR_DRI_DRM_NOT_PCI))
+
+$(eval $(call TunableKernelConfigC,PVR_DRI_DRM_PLATFORM_DEV,))
+
+
+
diff --git a/sgx_km/eurasia_km/eurasiacon/build/linux2/common/ion.mk b/sgx_km/eurasia_km/eurasiacon/build/linux2/common/ion.mk
new file mode 100644 (file)
index 0000000..f3f3c46
--- /dev/null
@@ -0,0 +1,65 @@
+########################################################################### ###
+#@Copyright     Copyright (c) Imagination Technologies Ltd. All Rights Reserved
+#@License       Dual MIT/GPLv2
+# 
+# The contents of this file are subject to the MIT license as set out below.
+# 
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+# 
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+# 
+# Alternatively, the contents of this file may be used under the terms of
+# the GNU General Public License Version 2 ("GPL") in which case the provisions
+# of GPL are applicable instead of those above.
+# 
+# If you wish to allow use of your version of this file only under the terms of
+# GPL, and not to allow others to use your version of this file under the terms
+# of the MIT license, indicate your decision by deleting the provisions above
+# and replace them with the notice and other provisions required by GPL as set
+# out in the file called "GPL-COPYING" included in this distribution. If you do
+# not delete the provisions above, a recipient may use your version of this file
+# under the terms of either the MIT license or GPL.
+# 
+# This License is also included in this distribution in the file called
+# "MIT-COPYING".
+# 
+# EXCEPT AS OTHERWISE STATED IN A NEGOTIATED AGREEMENT: (A) THE SOFTWARE IS
+# PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
+# BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+# PURPOSE AND NONINFRINGEMENT; AND (B) IN NO EVENT SHALL THE AUTHORS OR
+# COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+### ###########################################################################
+
+ifneq ($(KERNELDIR),)
+ifneq ($(SUPPORT_ION),)
+
+# Support kernels built out-of-tree with O=/other/path
+# In those cases, KERNELDIR will be O, not the source tree.
+ifneq ($(wildcard $(KERNELDIR)/source),)
+KSRCDIR := $(KERNELDIR)/source
+else
+KSRCDIR := $(KERNELDIR)
+endif
+
+ifneq ($(wildcard $(KSRCDIR)/drivers/staging/android/ion/ion.h),)
+# The kernel has a more recent version of ion, located in drivers/staging.
+# Change the default header paths and the behaviour wrt sg_dma_len.
+SUPPORT_ION_HEADER := \"../drivers/staging/android/ion/ion.h\"
+SUPPORT_ION_PRIV_HEADER := \"../drivers/staging/android/ion/ion_priv.h\"
+SUPPORT_ION_USE_SG_LENGTH := 1
+endif
+
+$(eval $(call TunableKernelConfigC,SUPPORT_ION_HEADER,\"linux/ion.h\"))
+$(eval $(call TunableKernelConfigC,SUPPORT_ION_PRIV_HEADER,\"../drivers/gpu/ion/ion_priv.h\"))
+$(eval $(call TunableKernelConfigC,SUPPORT_ION_USE_SG_LENGTH,))
+
+endif
+endif
diff --git a/sgx_km/eurasia_km/eurasiacon/build/linux2/common/omap4.mk b/sgx_km/eurasia_km/eurasiacon/build/linux2/common/omap4.mk
new file mode 100644 (file)
index 0000000..9a2cdd5
--- /dev/null
@@ -0,0 +1,44 @@
+########################################################################### ###
+#@Copyright     Copyright (c) Imagination Technologies Ltd. All Rights Reserved
+#@License       Dual MIT/GPLv2
+# 
+# The contents of this file are subject to the MIT license as set out below.
+# 
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+# 
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+# 
+# Alternatively, the contents of this file may be used under the terms of
+# the GNU General Public License Version 2 ("GPL") in which case the provisions
+# of GPL are applicable instead of those above.
+# 
+# If you wish to allow use of your version of this file only under the terms of
+# GPL, and not to allow others to use your version of this file under the terms
+# of the MIT license, indicate your decision by deleting the provisions above
+# and replace them with the notice and other provisions required by GPL as set
+# out in the file called "GPL-COPYING" included in this distribution. If you do
+# not delete the provisions above, a recipient may use your version of this file
+# under the terms of either the MIT license or GPL.
+# 
+# This License is also included in this distribution in the file called
+# "MIT-COPYING".
+# 
+# EXCEPT AS OTHERWISE STATED IN A NEGOTIATED AGREEMENT: (A) THE SOFTWARE IS
+# PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
+# BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+# PURPOSE AND NONINFRINGEMENT; AND (B) IN NO EVENT SHALL THE AUTHORS OR
+# COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+### ###########################################################################
+
+$(eval $(call TunableKernelConfigC,PVR_NO_OMAP_TIMER,))
+$(eval $(call TunableKernelConfigC,PVR_OMAPLFB_DONT_USE_FB_PAN_DISPLAY,))
+$(eval $(call TunableKernelConfigC,PVR_OMAPLFB_DRM_FB,))
+$(eval $(call TunableKernelConfigC,VS_PRODUCT_VERSION,))
diff --git a/sgx_km/eurasia_km/eurasiacon/build/linux2/common/opencl.mk b/sgx_km/eurasia_km/eurasiacon/build/linux2/common/opencl.mk
new file mode 100644 (file)
index 0000000..b5f84d4
--- /dev/null
@@ -0,0 +1,40 @@
+########################################################################### ###
+#@Copyright     Copyright (c) Imagination Technologies Ltd. All Rights Reserved
+#@License       Dual MIT/GPLv2
+# 
+# The contents of this file are subject to the MIT license as set out below.
+# 
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+# 
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+# 
+# Alternatively, the contents of this file may be used under the terms of
+# the GNU General Public License Version 2 ("GPL") in which case the provisions
+# of GPL are applicable instead of those above.
+# 
+# If you wish to allow use of your version of this file only under the terms of
+# GPL, and not to allow others to use your version of this file under the terms
+# of the MIT license, indicate your decision by deleting the provisions above
+# and replace them with the notice and other provisions required by GPL as set
+# out in the file called "GPL-COPYING" included in this distribution. If you do
+# not delete the provisions above, a recipient may use your version of this file
+# under the terms of either the MIT license or GPL.
+# 
+# This License is also included in this distribution in the file called
+# "MIT-COPYING".
+# 
+# EXCEPT AS OTHERWISE STATED IN A NEGOTIATED AGREEMENT: (A) THE SOFTWARE IS
+# PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
+# BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+# PURPOSE AND NONINFRINGEMENT; AND (B) IN NO EVENT SHALL THE AUTHORS OR
+# COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+### ###########################################################################
+
diff --git a/sgx_km/eurasia_km/eurasiacon/build/linux2/config/compiler.mk b/sgx_km/eurasia_km/eurasiacon/build/linux2/config/compiler.mk
new file mode 100644 (file)
index 0000000..82c9d44
--- /dev/null
@@ -0,0 +1,240 @@
+########################################################################### ###
+#@File
+#@Copyright     Copyright (c) Imagination Technologies Ltd. All Rights Reserved
+#@License       Dual MIT/GPLv2
+# 
+# The contents of this file are subject to the MIT license as set out below.
+# 
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+# 
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+# 
+# Alternatively, the contents of this file may be used under the terms of
+# the GNU General Public License Version 2 ("GPL") in which case the provisions
+# of GPL are applicable instead of those above.
+# 
+# If you wish to allow use of your version of this file only under the terms of
+# GPL, and not to allow others to use your version of this file under the terms
+# of the MIT license, indicate your decision by deleting the provisions above
+# and replace them with the notice and other provisions required by GPL as set
+# out in the file called "GPL-COPYING" included in this distribution. If you do
+# not delete the provisions above, a recipient may use your version of this file
+# under the terms of either the MIT license or GPL.
+# 
+# This License is also included in this distribution in the file called
+# "MIT-COPYING".
+# 
+# EXCEPT AS OTHERWISE STATED IN A NEGOTIATED AGREEMENT: (A) THE SOFTWARE IS
+# PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
+# BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+# PURPOSE AND NONINFRINGEMENT; AND (B) IN NO EVENT SHALL THE AUTHORS OR
+# COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+### ###########################################################################
+
+# Check for valid values of $(MULTIARCH).
+ifeq ($(strip $(MULTIARCH)),0)
+$(error MULTIARCH must be empty to disable multiarch)
+endif
+
+define calculate-compiler-preferred-target
+ ifeq ($(2),qcc)
+  $(1)_compiler_preferred_target := qcc
+ else
+  $(1)_compiler_preferred_target := $$(subst --,-,$$(shell $(2) -dumpmachine))
+  ifeq ($$($(1)_compiler_preferred_target),)
+   $$(warning No output from '$(2) -dumpmachine')
+   $$(warning Check that the compiler is in your PATH and CROSS_COMPILE is)
+   $$(warning set correctly.)
+   $$(error Unable to run compiler '$(2)')
+  endif
+  ifneq ($$(filter x86_64-%,$$($(1)_compiler_preferred_target)),)
+   $(1)_compiler_preferred_target := x86_64-linux-gnu
+  endif
+  ifneq ($$(filter i386-% i486-% i586-% i686-%,$$($(1)_compiler_preferred_target)),)
+   $(1)_compiler_preferred_target := i386-linux-gnu
+  endif
+  ifneq ($$(filter arm-linux-android,$$($(1)_compiler_preferred_target)),)
+   $(1)_compiler_preferred_target := arm-linux-androideabi
+  endif
+ endif
+endef
+
+define cross-compiler-name
+ ifeq ($$(origin CC),file)
+  $(1) := $(2)$(3)
+ else
+  $(1) := $(3)
+  ifeq ($$(_CLANG),true)
+   ifneq ($(strip $(2)),)
+    $(1) := $(3) -target $$(patsubst %-,%,$(2)) -Qunused-arguments -fcolor-diagnostics
+   else
+    $(1) := $(3) -Qunused-arguments -fcolor-diagnostics
+   endif
+  endif
+ endif
+endef
+
+# Work out the host compiler architecture
+$(eval $(call calculate-compiler-preferred-target,host,$(HOST_CC)))
+
+ifeq ($(host_compiler_preferred_target),x86_64-linux-gnu)
+ ifeq ($(ARCH),i386)
+  HOST_PRIMARY_ARCH := host_i386
+  HOST_FORCE_32BIT  := -m32
+ else
+  HOST_PRIMARY_ARCH := host_x86_64
+  HOST_32BIT_ARCH   := host_i386
+  HOST_FORCE_32BIT  := -m32
+ endif
+else
+ifeq ($(host_compiler_preferred_target),i386-linux-gnu)
+ HOST_PRIMARY_ARCH := host_i386
+ HOST_32BIT_ARCH   := host_i386
+else
+ifeq ($(host_compiler_preferred_target),arm-linux-gnueabihf)
+ HOST_PRIMARY_ARCH := host_armhf
+ HOST_32BIT_ARCH   := host_armhf
+else
+ifeq ($(host_compiler_preferred_target),aarch64-linux-gnu)
+ HOST_PRIMARY_ARCH := host_aarch64
+ HOST_32BIT_ARCH   := host_armhf
+else
+ $(error Unknown host compiler target architecture $(host_compiler_preferred_target))
+endif
+endif
+endif
+endif
+
+# Workaround our lack of support for non-Linux HOST_CCs
+ifneq ($(HOST_CC_IS_LINUX),1)
+ $(warning $$(HOST_CC) is non-Linux. Trying to work around.)
+ override HOST_CC := $(HOST_CC) -D__linux__
+ $(eval $(call BothConfigMake,HOST_CC,$(HOST_CC)))
+endif
+
+$(eval $(call BothConfigMake,HOST_PRIMARY_ARCH,$(HOST_PRIMARY_ARCH)))
+$(eval $(call BothConfigMake,HOST_32BIT_ARCH,$(HOST_32BIT_ARCH)))
+$(eval $(call BothConfigMake,HOST_FORCE_32BIT,$(HOST_FORCE_32BIT)))
+
+TARGET_ALL_ARCH :=
+TARGET_PRIMARY_ARCH :=
+TARGET_SECONDARY_ARCH :=
+
+# Work out the target compiler cross triple, and include the corresponding
+# compilers/*.mk file, which sets TARGET_PRIMARY_ARCH and
+# TARGET_SECONDARY_ARCH for that compiler.
+#
+compilers := ../config/compilers
+define include-compiler-file
+ ifeq ($(strip $(1)),)
+  $$(error empty arg passed to include-compiler-file)
+ endif
+ ifeq ($$(wildcard $$(compilers)/$(1).mk),)
+  $$(warning ******************************************************)
+  $$(warning Compiler target '$(1)' not recognised)
+  $$(warning (missing $$(compilers)/$(1).mk file))
+  $$(warning ******************************************************)
+  $$(error Compiler '$(1)' not recognised)
+ endif
+ include $$(compilers)/$(1).mk
+endef
+
+# Check the kernel cross compiler to work out which architecture it targets.
+# We can then tell if CROSS_COMPILE targets a different architecture.
+ifneq ($(origin KERNEL_CROSS_COMPILE),undefined)
+ # First, calculate the value of KERNEL_CROSS_COMPILE as it would be seen by
+ # the main build, so we can check it here in the config stage.
+ $(call one-word-only,KERNEL_CROSS_COMPILE)
+ _kernel_cross_compile := $(if $(filter undef,$(KERNEL_CROSS_COMPILE)),,$(KERNEL_CROSS_COMPILE))
+ # We can take shortcuts with KERNEL_CROSS_COMPILE, as we don't want to
+ # respect CC and we don't support clang in that part currently.
+ _kernel_cross_compile := $(_kernel_cross_compile)gcc
+ # Then check the compiler.
+ $(eval $(call calculate-compiler-preferred-target,target,$(_kernel_cross_compile)))
+ $(eval $(call include-compiler-file,$(target_compiler_preferred_target)))
+ _kernel_primary_arch := $(TARGET_PRIMARY_ARCH)
+else
+ # We can take shortcuts with KERNEL_CROSS_COMPILE, as we don't want to
+ # respect CC and we don't support clang in that part currently.
+ _kernel_cross_compile := $(CROSS_COMPILE)gcc
+ # KERNEL_CROSS_COMPILE will be the same as CROSS_COMPILE, so we don't need
+ # to do the compatibility check.
+ _kernel_primary_arch :=
+endif
+
+$(eval $(call cross-compiler-name,_cc,$(CROSS_COMPILE),$(CC)))
+$(eval $(call cross-compiler-name,_cc_secondary,$(if $(CROSS_COMPILE_SECONDARY),$(CROSS_COMPILE_SECONDARY),$(CROSS_COMPILE)),$(CC_SECONDARY)))
+$(eval $(call calculate-compiler-preferred-target,target,$(_cc)))
+$(eval $(call include-compiler-file,$(target_compiler_preferred_target)))
+
+ifneq ($(SUPPORT_ANDROID_PLATFORM),1)
+ifeq ($(MULTIARCH),1)
+ ifneq ($(MAKECMDGOALS),kbuild)
+  ifneq ($(COMPONENTS),)
+   $(eval $(call calculate-compiler-preferred-target,target_secondary,$(_cc_secondary)))
+   ifneq ($(target_compiler_preferred_target),$(target_secondary_compiler_preferred_target))
+    $(eval $(call include-compiler-file,$(target_secondary_compiler_preferred_target)))
+
+    ifeq ($(TARGET_SECONDARY_ARCH),)
+     $(error $(CROSS_COMPILE_SECONDARY) not supported for MULTIARCH builds)
+    endif
+   endif
+  endif
+ endif
+endif
+endif
+
+define remap-arch
+$(if $(INTERNAL_ARCH_REMAP_$(1)),$(INTERNAL_ARCH_REMAP_$(1)),$(1))
+endef
+
+# Remap 'essentially compatible' architectures so the KM vs UM check
+# isn't too strict. These mixtures are widely supported.
+INTERNAL_ARCH_REMAP_target_armhf := target_armv7-a
+INTERNAL_ARCH_REMAP_target_armel := target_armv7-a
+INTERNAL_ARCH_REMAP_target_mips32r2el := target_mips32el
+INTERNAL_ARCH_REMAP_target_mips32r6el := target_mips32el
+
+# Sanity check: if KERNEL_CROSS_COMPILE was set, it has to target the same
+# architecture as CROSS_COMPILE.
+ifneq ($(_kernel_primary_arch),)
+ ifneq ($(call remap-arch,$(TARGET_PRIMARY_ARCH)),$(call remap-arch,$(_kernel_primary_arch)))
+  $(warning ********************************************************)
+  $(warning Error: Kernel and user-mode cross compilers build for)
+  $(warning different targets)
+  $(warning $(space)$(space)CROSS_COMPILE=$(CROSS_COMPILE))
+  $(warning $(space)$(space)$(space)builds for $(TARGET_PRIMARY_ARCH))
+  $(warning $(space)$(space)KERNEL_CROSS_COMPILE=$(KERNEL_CROSS_COMPILE))
+  $(warning $(space)$(space)$(space)builds for $(_kernel_primary_arch))
+  $(warning ********************************************************)
+  $(error Mismatching kernel and user-mode cross compilers)
+ endif
+endif
+
+ifneq ($(MULTIARCH),32only)
+TARGET_ALL_ARCH += $(TARGET_PRIMARY_ARCH)
+endif
+ifneq ($(MULTIARCH),64only)
+TARGET_ALL_ARCH += $(TARGET_SECONDARY_ARCH)
+endif
+
+$(eval $(call BothConfigMake,TARGET_PRIMARY_ARCH,$(TARGET_PRIMARY_ARCH)))
+$(eval $(call BothConfigMake,TARGET_SECONDARY_ARCH,$(TARGET_SECONDARY_ARCH)))
+$(eval $(call BothConfigMake,TARGET_ALL_ARCH,$(TARGET_ALL_ARCH)))
+$(eval $(call BothConfigMake,TARGET_FORCE_32BIT,$(TARGET_FORCE_32BIT)))
+
+$(info ******* Multiarch build: $(if $(MULTIARCH),yes,no))
+$(info ******* Primary arch:    $(if $(TARGET_PRIMARY_ARCH),$(TARGET_PRIMARY_ARCH),none))
+$(info ******* Secondary arch:  $(if $(TARGET_SECONDARY_ARCH),$(TARGET_SECONDARY_ARCH),none))
+
+# Find the paths to libgcc for the primary and secondary architectures.
+LIBGCC := $(shell $(_cc) -print-libgcc-file-name)
+LIBGCC_SECONDARY := $(shell $(_cc_secondary) $(TARGET_FORCE_32BIT) -print-libgcc-file-name)
diff --git a/sgx_km/eurasia_km/eurasiacon/build/linux2/config/compilers/arm-eabi.mk b/sgx_km/eurasia_km/eurasiacon/build/linux2/config/compilers/arm-eabi.mk
new file mode 100644 (file)
index 0000000..d671ba9
--- /dev/null
@@ -0,0 +1,2 @@
+# 32-bit ARM EABI compiler
+TARGET_PRIMARY_ARCH := target_armv7-a
diff --git a/sgx_km/eurasia_km/eurasiacon/build/linux2/config/compilers/arm-linux-androideabi.mk b/sgx_km/eurasia_km/eurasiacon/build/linux2/config/compilers/arm-linux-androideabi.mk
new file mode 100644 (file)
index 0000000..8aaeaad
--- /dev/null
@@ -0,0 +1,2 @@
+# 32-bit Android ARM compiler
+include $(compilers)/arm-eabi.mk
diff --git a/sgx_km/eurasia_km/eurasiacon/build/linux2/config/compilers/mips64el-linux-android.mk b/sgx_km/eurasia_km/eurasiacon/build/linux2/config/compilers/mips64el-linux-android.mk
new file mode 100644 (file)
index 0000000..8777b2a
--- /dev/null
@@ -0,0 +1,29 @@
+# 64-bit MIPS R6 little-endian compiler
+IS_KERNEL_32 := 0
+ifneq ($(KERNELDIR),)
+  IS_KERNEL_32 = ($(shell grep -q "CONFIG_MIPS=y" $(KERNELDIR)/.config && echo 1 || echo 0))
+ ifneq ($(ARCH),mips)
+  ifeq ($(IS_KERNEL_32),1)
+   $(warning ******************************************************)
+   $(warning Your kernel appears to be configured for 32-bit MIPS,)
+   $(warning but CROSS_COMPILE (or KERNEL_CROSS_COMPILE) points)
+   $(warning to a 64-bit compiler.)
+   $(warning If you want a 32-bit build, either set CROSS_COMPILE)
+   $(warning to point to a 32-bit compiler, or build with ARCH=mips)
+   $(warning to force 32-bit mode with your existing compiler.)
+   $(warning ******************************************************)
+   $(error Invalid CROSS_COMPILE / kernel architecture combination)
+  endif # CONFIG_X86_32
+ endif # ARCH=mips
+endif # KERNELDIR
+
+# If ARCH=mips is set, force a build for 32-bit only, even though we're
+# using a 64-bit compiler.
+ifeq ($(ARCH),mips)
+ TARGET_PRIMARY_ARCH := target_mips32r6el
+ ifeq ($(IS_KERNEL_32),0)
+       USE_64BIT_COMPAT := 1
+ endif
+else
+ $(error MIPS64 build is not supported)
+endif
diff --git a/sgx_km/eurasia_km/eurasiacon/build/linux2/config/core.mk b/sgx_km/eurasia_km/eurasiacon/build/linux2/config/core.mk
new file mode 100644 (file)
index 0000000..dc8c9e7
--- /dev/null
@@ -0,0 +1,790 @@
+########################################################################### ###
+#@Title         Root build configuration.
+#@Copyright     Copyright (c) Imagination Technologies Ltd. All Rights Reserved
+#@License       Dual MIT/GPLv2
+# 
+# The contents of this file are subject to the MIT license as set out below.
+# 
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+# 
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+# 
+# Alternatively, the contents of this file may be used under the terms of
+# the GNU General Public License Version 2 ("GPL") in which case the provisions
+# of GPL are applicable instead of those above.
+# 
+# If you wish to allow use of your version of this file only under the terms of
+# GPL, and not to allow others to use your version of this file under the terms
+# of the MIT license, indicate your decision by deleting the provisions above
+# and replace them with the notice and other provisions required by GPL as set
+# out in the file called "GPL-COPYING" included in this distribution. If you do
+# not delete the provisions above, a recipient may use your version of this file
+# under the terms of either the MIT license or GPL.
+# 
+# This License is also included in this distribution in the file called
+# "MIT-COPYING".
+# 
+# EXCEPT AS OTHERWISE STATED IN A NEGOTIATED AGREEMENT: (A) THE SOFTWARE IS
+# PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
+# BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+# PURPOSE AND NONINFRINGEMENT; AND (B) IN NO EVENT SHALL THE AUTHORS OR
+# COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+### ###########################################################################
+
+# Configuration wrapper for new build system. This file deals with
+# configuration of the build. Add to this file anything that deals
+# with switching driver options on/off and altering the defines or
+# objects the build uses.
+#
+# At the end of this file is an exhaustive list of all variables
+# that are passed between the platform/config stage and the generic
+# build. PLEASE refrain from adding more variables than necessary
+# to this stage -- almost all options can go through config.h.
+#
+
+################################# MACROS ####################################
+
+# Write out a kernel GNU make option.
+#
+define KernelConfigMake
+$$(shell echo "override $(1) := $(2)" >>$(CONFIG_KERNEL_MK).new)
+$(if $(filter config,$(D)),$(info KernelConfigMake $(1) := $(2)        # $(if $($(1)),$(origin $(1)),default)))
+endef
+
+# Write out a GNU make option for both user & kernel
+#
+define BothConfigMake
+$$(eval $$(call KernelConfigMake,$(1),$(2)))
+endef
+
+# Conditionally write out a kernel GNU make option
+#
+define TunableKernelConfigMake
+ifneq ($$($(1)),)
+ifneq ($$($(1)),0)
+$$(eval $$(call KernelConfigMake,$(1),$$($(1))))
+endif
+else
+ifneq ($(2),)
+$$(eval $$(call KernelConfigMake,$(1),$(2)))
+endif
+endif
+endef
+
+# Conditionally write out a GNU make option for both user & kernel
+#
+define TunableBothConfigMake
+$$(eval $$(call TunableKernelConfigMake,$(1),$(2)))
+endef
+
+# Write out a kernel-only option
+#
+define KernelConfigC
+$$(shell echo "#define $(1) $(2)" >>$(CONFIG_KERNEL_H).new)
+$(if $(filter config,$(D)),$(info KernelConfigC    #define $(1) $(2)   /* $(if $($(1)),$(origin $(1)),default) */),)
+endef
+
+# Write out an option for both user & kernel
+#
+define BothConfigC
+$$(eval $$(call KernelConfigC,$(1),$(2)))
+endef
+
+# Conditionally write out a kernel-only option
+#
+define TunableKernelConfigC
+ifneq ($$($(1)),)
+ifneq ($$($(1)),0)
+ifeq ($$($(1)),1)
+$$(eval $$(call KernelConfigC,$(1),))
+else
+$$(eval $$(call KernelConfigC,$(1),$$($(1))))
+endif
+endif
+else
+ifneq ($(2),)
+ifeq ($(2),1)
+$$(eval $$(call KernelConfigC,$(1),))
+else
+$$(eval $$(call KernelConfigC,$(1),$(2)))
+endif
+endif
+endif
+endef
+
+# Conditionally write out an option for both user & kernel
+#
+define TunableBothConfigC
+$$(eval $$(call TunableKernelConfigC,$(1),$(2)))
+endef
+
+############################### END MACROS ##################################
+
+# Check we have a new enough version of GNU make.
+#
+need := 3.81
+ifeq ($(filter $(need),$(firstword $(sort $(MAKE_VERSION) $(need)))),)
+$(error A version of GNU make >= $(need) is required - this is version $(MAKE_VERSION))
+endif
+
+# Try to guess EURASIAROOT if it wasn't set. Check this location.
+#
+_GUESSED_EURASIAROOT := $(abspath ../../../..)
+ifneq ($(strip $(EURASIAROOT)),)
+# We don't want to warn about EURASIAROOT if it's empty: this might mean that
+# it's not set at all anywhere, but it could also mean that it's set like
+# "export EURASIAROOT=" or "make EURASIAROOT= sometarget". If it is set but
+# empty, we'll act as if it's unset and not warn.
+ifneq ($(strip $(EURASIAROOT)),$(_GUESSED_EURASIAROOT))
+nothing :=
+space := $(nothing) $(nothing)
+$(warning EURASIAROOT is set (via: $(origin EURASIAROOT)), but its value does not)
+$(warning match the root of this source tree, so it is being ignored)
+$(warning EURASIAROOT is set to: $(EURASIAROOT))
+$(warning $(space)The detected root is: $(_GUESSED_EURASIAROOT))
+$(warning To suppress this message, unset EURASIAROOT or set it empty)
+endif
+# else, EURASIAROOT matched the actual root of the source tree: don't warn
+endif
+override EURASIAROOT := $(_GUESSED_EURASIAROOT)
+TOP := $(EURASIAROOT)
+
+ifneq ($(words $(TOP)),1)
+$(warning This source tree is located in a path which contains whitespace,)
+$(warning which is not supported.)
+$(warning $(space)The root is: $(TOP))
+$(error Whitespace found in $$(TOP))
+endif
+
+$(call directory-must-exist,$(TOP))
+
+include ../defs.mk
+
+# Infer PVR_BUILD_DIR from the directory configuration is launched from.
+# Check anyway that such a directory exists.
+#
+PVR_BUILD_DIR := $(notdir $(abspath .))
+$(call directory-must-exist,$(TOP)/eurasiacon/build/linux2/$(PVR_BUILD_DIR))
+
+# Output directory for configuration, object code,
+# final programs/libraries, and install/rc scripts.
+#
+BUILD  ?= release
+ifneq ($(WINDOW_SYSTEM),)
+OUT ?= $(TOP)/eurasiacon/binary_$(PVR_BUILD_DIR)_$(WINDOW_SYSTEM)_$(BUILD)
+else
+OUT ?= $(TOP)/eurasiacon/binary2_$(PVR_BUILD_DIR)_$(BUILD)
+endif
+override OUT := $(if $(filter /%,$(OUT)),$(OUT),$(TOP)/$(OUT))
+
+CONFIG_MK                      := $(OUT)/config.mk
+CONFIG_H                       := $(OUT)/config.h
+CONFIG_KERNEL_MK       := $(OUT)/config_kernel.mk
+CONFIG_KERNEL_H                := $(OUT)/config_kernel.h
+
+# Convert commas to spaces in $(D). This is so you can say "make
+# D=config-changes,freeze-config" and have $(filter config-changes,$(D))
+# still work.
+comma := ,
+empty :=
+space := $(empty) $(empty)
+override D := $(subst $(comma),$(space),$(D))
+
+# Create the OUT directory and delete any previous intermediary files
+#
+$(shell mkdir -p $(OUT))
+$(shell \
+       for file in $(CONFIG_MK).new $(CONFIG_H).new \
+                               $(CONFIG_KERNEL_MK).new $(CONFIG_KERNEL_H).new; do \
+               rm -f $$file; \
+       done)
+
+# Some targets don't need information about any modules. If we only specify
+# these targets on the make command line, set INTERNAL_CLOBBER_ONLY to
+# indicate that toplevel.mk shouldn't read any makefiles
+CLOBBER_ONLY_TARGETS := clean clobber help install
+INTERNAL_CLOBBER_ONLY :=
+ifneq ($(strip $(MAKECMDGOALS)),)
+INTERNAL_CLOBBER_ONLY := \
+$(if \
+ $(strip $(foreach _cmdgoal,$(MAKECMDGOALS),\
+          $(if $(filter $(_cmdgoal),$(CLOBBER_ONLY_TARGETS)),,x))),,true)
+endif
+
+# For a clobber-only build, we shouldn't regenerate any config files, or
+# require things like SGXCORE to be set
+ifneq ($(INTERNAL_CLOBBER_ONLY),true)
+
+# GNU Make has builtin values for CC/CXX which we don't want to trust. This
+# is because $(CROSS_COMPILE)$(CC) doesn't always expand to a cross compiler
+# toolchain binary name (e.g. most toolchains have 'gcc' but not 'cc').
+
+ifeq ($(origin CC),default)
+ _CC      := $(CROSS_COMPILE)gcc
+ CC       := gcc
+else
+ _CLANG   := $(shell $(TOP)/eurasiacon/build/linux2/tools/cc-check.sh --clang --cc $(CC))
+ _CC      := $(CC)
+ ifeq ($(_CLANG),true)
+  ifneq ($(strip $(CROSS_COMPILE)),)
+    _CC     := $(CC) -target $(patsubst %-,%,$(CROSS_COMPILE)) -Qunused-arguments -fcolor-diagnostics
+  else
+    _CC     := $(CC) -Qunused-arguments -fcolor-diagnostics
+  endif
+ endif
+endif
+
+ifeq ($(origin CXX),default)
+ _CXX     := $(CROSS_COMPILE)g++
+ CXX      := g++
+else
+ _CLANGXX := $(shell $(TOP)/eurasiacon/build/linux2/tools/cc-check.sh --clang --cc $(CXX))
+ _CXX    := $(CXX)
+ ifeq ($(_CLANGXX),true)
+   ifneq ($(strip $(CROSS_COMPILE)),)
+    _CXX    := $(CXX) -target $(patsubst %-,%,$(CROSS_COMPILE)) -Qunused-arguments -fcolor-diagnostics
+   else
+    _CXX    := $(CXX) -Qunused-arguments -fcolor-diagnostics
+   endif
+ endif
+endif
+
+CC_SECONDARY ?= $(CC)
+HOST_CC      ?= gcc
+
+# Work out if we are targeting ARM before we start tweaking _CC.
+TARGETING_AARCH64 := $(shell \
+ $(_CC) -dM -E - </dev/null | grep -q __aarch64__ && echo 1)
+
+TARGETING_ARM := $(shell \
+ $(_CC) -dM -E - </dev/null | grep __arm__ >/dev/null 2>&1 && echo 1)
+
+TARGETING_MIPS := $(shell \
+ $(_CC) -dM -E - </dev/null | grep __mips__ >/dev/null 2>&1 && echo 1)
+
+HOST_CC_IS_LINUX := $(shell \
+ $(HOST_CC) -dM -E - </dev/null | grep __linux__ >/dev/null 2>&1 && echo 1)
+
+-include ../config/user-defs.mk
+
+# FIXME: Backwards compatibility remaps.
+#
+ifeq ($(SUPPORT_SLC),1)
+SGX_FEATURE_SYSTEM_CACHE := 1
+endif
+ifeq ($(BYPASS_SLC),1)
+SGX_BYPASS_SYSTEM_CACHE := 1
+endif
+ifeq ($(BYPASS_DCU),1)
+SGX_BYPASS_DCU := 1
+endif
+ifneq ($(SGXCOREREV),)
+SGX_CORE_REV := $(SGXCOREREV)
+endif
+
+# Core handling
+#
+ifeq ($(SGXCORE),)
+$(error Must specify SGXCORE)
+endif
+ifeq ($(SGX_CORE_REV),)
+override USE_SGX_CORE_REV_HEAD := 1
+else ifeq ($(SGX_CORE_REV),000)
+override USE_SGX_CORE_REV_HEAD := 1
+override SGX_CORE_REV :=
+else
+override USE_SGX_CORE_REV_HEAD := 0
+endif
+
+# Enforced dependencies. Move this to an include.
+#
+ifeq ($(SUPPORT_LINUX_USING_WORKQUEUES),1)
+override PVR_LINUX_USING_WORKQUEUES := 1
+override PVR_LINUX_MISR_USING_PRIVATE_WORKQUEUE := 1
+override PVR_LINUX_TIMERS_USING_WORKQUEUES := 1
+ifneq ($(SUPPORT_ANDROID_FPGA),1)
+override SYS_CUSTOM_POWERLOCK_WRAP := 1
+endif
+else ifeq ($(SUPPORT_LINUX_USING_SHARED_WORKQUEUES),1)
+override PVR_LINUX_USING_WORKQUEUES := 1
+override PVR_LINUX_MISR_USING_WORKQUEUE := 1
+override PVR_LINUX_TIMERS_USING_SHARED_WORKQUEUE := 1
+override SYS_CUSTOM_POWERLOCK_WRAP := 1
+endif
+
+ifneq ($(PDUMP),1)
+override SUPPORT_PDUMP_MULTI_PROCESS := 0
+endif
+
+ifeq ($(SUPPORT_HYBRID_PB),1)
+override SUPPORT_SHARED_PB := 1
+override SUPPORT_PERCONTEXT_PB := 1
+else ifeq ($(SUPPORT_PERCONTEXT_PB),1)
+override SUPPORT_SHARED_PB := 0
+endif
+
+ifeq ($(NO_HARDWARE),1)
+override SYS_USING_INTERRUPTS := 0
+override SUPPORT_HW_RECOVERY := 0
+override SUPPORT_ACTIVE_POWER_MANAGEMENT := 0
+endif
+
+ifeq ($(SGX_FEATURE_36BIT_MMU),1)
+override IMG_ADDRSPACE_PHYSADDR_BITS := 64
+else
+override IMG_ADDRSPACE_PHYSADDR_BITS := 32
+endif
+
+ifeq ($(SGXCORE),535)
+ifeq ($(PVRSRV_USSE_EDM_STATUS_DEBUG),1)
+SUPPORT_SGX_HWPERF ?= not-overridden
+ifeq ($(SUPPORT_SGX_HWPERF),not-overridden)
+$(warning Setting SUPPORT_SGX_HWPERF=0 because PVRSRV_USSE_EDM_STATUS_DEBUG=1)
+SUPPORT_SGX_HWPERF := 0
+endif
+endif
+PVR2D_ALT_2DHW ?= 0
+endif
+
+# Multi-core handling must be done separately to other options
+# Also do some sanity checks
+#
+ifeq ($(SGX_FEATURE_MP),1)
+ifeq ($(SGX_FEATURE_MP_CORE_COUNT),)
+ifeq ($(SGX_FEATURE_MP_CORE_COUNT_TA),)
+$(error Must specify SGX_FEATURE_MP_CORE_COUNT or both SGX_FEATURE_MP_CORE_COUNT_TA and SGX_FEATURE_MP_CORE_COUNT_3D with SGX_FEATURE_MP)
+else
+$(eval $(call BothConfigC,SGX_FEATURE_MP_CORE_COUNT_TA,$(SGX_FEATURE_MP_CORE_COUNT_TA)))
+endif
+ifeq ($(SGX_FEATURE_MP_CORE_COUNT_3D),)
+$(error Must specify SGX_FEATURE_MP_CORE_COUNT or both SGX_FEATURE_MP_CORE_COUNT_TA and SGX_FEATURE_MP_CORE_COUNT_3D with SGX_FEATURE_MP)
+else
+$(eval $(call BothConfigC,SGX_FEATURE_MP_CORE_COUNT_3D,$(SGX_FEATURE_MP_CORE_COUNT_3D)))
+endif
+else
+$(eval $(call BothConfigC,SGX_FEATURE_MP_CORE_COUNT,$(SGX_FEATURE_MP_CORE_COUNT)))
+endif
+endif
+
+# Rather than requiring the user to have to define two variables (one quoted,
+# one not), make PVRSRV_MODNAME a non-tunable and give it an overridable
+# default here.
+#
+PVRSRV_MODNAME ?= pvrsrvkm
+
+# Normally builds don't touch this, but we use it to influence the components
+# list. Make sure it is defined early enough to make this possible.
+#
+SUPPORT_PVRSRV_DEVICE_CLASS ?= 1
+
+# Default place for binaries and shared libraries
+BIN_DESTDIR ?= /usr/local/bin
+SHARE_DESTDIR ?= /usr/local/share
+SHLIB_DESTDIR ?= /usr/lib
+
+# The user didn't set CROSS_COMPILE. There's probably nothing wrong
+# with that, but we'll let them know anyway.
+#
+ifeq ($(CROSS_COMPILE),)
+$(warning CROSS_COMPILE is not set. Target components will be built with the host compiler)
+endif
+
+# The user is trying to set one of the old SUPPORT_ options on the
+# command line or in the environment. This isn't supported any more
+# and will often break the build. The user is generally only trying
+# to remove a component from the list of targets to build, so we'll
+# point them at the new way of doing this.
+define sanity-check-support-option-origin
+ifeq ($$(filter undefined file,$$(origin $(1))),)
+$$(warning *** Setting $(1) via $$(origin $(1)) is deprecated)
+$$(error If you are trying to disable a component, use e.g. EXCLUDED_APIS="opengles1 opengl")
+endif
+endef
+$(foreach _o,SYS_CFLAGS SYS_CXXFLAGS SYS_INCLUDES SYS_COMMON_LDFLAGS SYS_EXE_LDFLAGS SYS_LIB_LDFLAGS SYS_EXE_LDFLAGS_CXX SYS_LIB_LDFLAGS_CXX SUPPORT_EWS SUPPORT_NULLWS SUPPORT_OPENGLES1 SUPPORT_OPENGLES2 SUPPORT_OPENCL SUPPORT_OPENGL SUPPORT_SURFACELESS SUPPORT_UNITTESTS SUPPORT_XORG SUPPORT_WAYLAND,$(eval $(call sanity-check-support-option-origin,$(_o))))
+
+# Check for words in EXCLUDED_APIS that aren't understood by the
+# common/apis/*.mk files. This should be kept in sync with all the tests on
+# EXCLUDED_APIS in those files
+_excludable_apis := opencl opengl opengles1 opengles2 unittests scripts composerhal camerahal memtrackhal sensorhal
+_excluded_apis := $(subst $(comma),$(space),$(EXCLUDED_APIS))
+_unrecognised := $(strip $(filter-out $(_excludable_apis),$(_excluded_apis)))
+ifneq ($(_unrecognised),)
+$(warning *** Unrecognised entries in EXCLUDED_APIS: $(_unrecognised))
+$(warning *** EXCLUDED_APIS was set via: $(origin EXCLUDED_APIS))
+$(error Excludable APIs are: $(_excludable_apis))
+endif
+
+override EXCLUDED_APIS := $(filter $(_excludable_apis), $(_excluded_apis))
+
+# Build's selected list of components
+#
+-include components.mk
+
+# Set up the host and target compiler.
+include ../config/compiler.mk
+
+# PDUMP needs extra components
+#
+ifeq ($(PDUMP),1)
+ifneq ($(COMPONENTS),)
+COMPONENTS += pdump
+endif
+ifeq ($(SUPPORT_DRI_DRM),1)
+EXTRA_PVRSRVKM_COMPONENTS += dbgdrv
+else
+KERNEL_COMPONENTS += dbgdrv
+endif
+endif
+
+ifneq ($(WINDOW_SYSTEM),)
+endif
+ifeq ($(MESA_EGL),1)
+ SUPPORT_OPENGLES1_V1_ONLY := 1
+ GLES1_EXTENSION_EGL_IMAGE_EXTERNAL := 1
+ GLES2_EXTENSION_EGL_IMAGE_EXTERNAL := 1
+else
+endif
+
+ifneq ($(SUPPORT_BUILD_LWS),)
+ ifneq ($(SYSROOT),)
+  $(info WARNING: You have specified a SYSROOT (or are using a buildroot compiler) and enabled SUPPORT_BUILD_LWS.)
+  $(info          We will ignore the sysroot and will build all required LWS components.)
+  $(info          Unset SUPPORT_BUILD_LWS if this is not what you want.)
+ endif
+ override SYSROOT:=
+endif
+
+
+$(if $(filter config,$(D)),$(info Build configuration:))
+
+################################# CONFIG ####################################
+
+# If KERNELDIR is set, write it out to the config.mk, with
+# KERNEL_COMPONENTS and KERNEL_ID
+#
+ifneq ($(strip $(KERNELDIR)),)
+include ../kernel_version.mk
+PVRSRV_MODULE_BASEDIR ?= /lib/modules/$(KERNEL_ID)/extra
+$(eval $(call BothConfigMake,KERNELDIR,$(KERNELDIR)))
+# Needed only by install script
+$(eval $(call BothConfigMake,KERNEL_ID,$(KERNEL_ID)))
+$(eval $(call KernelConfigMake,PVRSRV_MODULE_BASEDIR,$(PVRSRV_MODULE_BASEDIR)))
+$(eval $(call KernelConfigMake,KERNEL_COMPONENTS,$(KERNEL_COMPONENTS)))
+$(eval $(call TunableKernelConfigMake,EXTRA_PVRSRVKM_COMPONENTS,))
+$(eval $(call TunableKernelConfigMake,EXTRA_KBUILD_SOURCE,))
+
+# If KERNEL_CROSS_COMPILE is set to "undef", this is magically
+# equivalent to being unset. If it is unset, we use CROSS_COMPILE
+# (which might also be unset). If it is set, use it directly.
+ifneq ($(KERNEL_CROSS_COMPILE),undef)
+KERNEL_CROSS_COMPILE ?= $(CROSS_COMPILE)
+$(eval $(call TunableBothConfigMake,KERNEL_CROSS_COMPILE,))
+endif
+
+# Alternatively, allow the CC used for kbuild to be overridden
+# exactly, bypassing any KERNEL_CROSS_COMPILE configuration.
+$(eval $(call TunableBothConfigMake,KERNEL_CC,))
+
+# Check the KERNELDIR has a kernel built.
+VMLINUX := 
+#$(strip $(wildcard $(KERNELDIR)/vmlinux))
+
+ifneq ($(wildcard $(VMLINUX)),)
+ ifneq ($(shell file $(KERNELDIR)/vmlinux | grep 64-bit >/dev/null && echo 1),$(shell $(_CC) -dM -E - </dev/null | grep __x86_64__ >/dev/null && echo 1))
+  $(error Attempting to build 64-bit DDK against 32-bit kernel, or 32-bit DDK against 64-bit kernel. This is not allowed.)
+ endif
+ LINUXCFG := $(strip $(wildcard $(KERNELDIR)/.config))
+ VMLINUX_IS_64BIT := $(shell file $(VMLINUX) | grep 64-bit >/dev/null || echo false)
+ VMLINUX_HAS_PAE36 := $(shell cat $(LINUXCFG) | grep CONFIG_X86_PAE=y >/dev/null || echo false)
+ VMLINUX_HAS_PAE40 := $(shell cat $(LINUXCFG) | grep CONFIG_ARM_LPAE=y >/dev/null || echo false)
+ VMLINUX_HAS_DMA32 := $(shell cat $(LINUXCFG) | grep CONFIG_ZONE_DMA32=y >/dev/null || echo false)
+ ifneq ($(VMLINUX_IS_64BIT),false)
+  $(warning $$(KERNELDIR)/vmlinux: Note: vmlinux is 64-bit, which is supported but currently experimental.)
+ endif
+else
+ $(warning $$(KERNELDIR)/vmlinux does not exist. Kbuild may fail.)
+endif
+
+endif # KERNELDIR
+
+ifneq ($(VMLINUX_HAS_PAE40),false)
+ifeq ($(VMLINUX_HAS_DMA32),false)
+$(warning SGX MMUs are currently supported up to only 36 bits max. Your Kernel is built with 40-bit PAE but does not have CONFIG_ZONE_DMA32.)
+$(warning This means you must ensure the runtime system has <= 4GB of RAM, or there will be BIG problems...)
+endif 
+endif
+
+ifneq ($(SGX_FEATURE_36BIT_MMU),1)
+ifneq ($(VMLINUX_IS_64BIT),false)
+# Kernel is 64-bit
+ifeq ($(VMLINUX_HAS_DMA32),false)
+$(warning SGX is configured with 32-bit MMU. Your Kernel is 64-bit but does not have CONFIG_ZONE_DMA32.)
+$(warning This means you must ensure the runtime system has <= 4GB of RAM, or there will be BIG problems...)
+endif
+else
+ # Kernel is 32-bit
+ifneq ($(VMLINUX_HAS_PAE36),false)
+ifeq ($(VMLINUX_HAS_DMA32),false)
+$(warning SGX is configured with 32-bit MMU. Your Kernel is 32-bit PAE, but does not have CONFIG_ZONE_DMA32. )
+$(warning This means you must ensure the runtime system has <= 4GB of RAM, or there will be BIG problems...)
+endif
+endif
+endif
+endif
+
+
+# Ideally configured by platform Makefiles, as necessary
+#
+SHADER_DESTDIR := $(SHARE_DESTDIR)/pvr/shaders/
+
+# Invariant options for Linux
+#
+$(eval $(call BothConfigC,LINUX,))
+
+$(eval $(call BothConfigC,PVR_BUILD_DIR,"\"$(PVR_BUILD_DIR)\""))
+$(eval $(call BothConfigC,PVR_BUILD_TYPE,"\"$(BUILD)\""))
+$(eval $(call BothConfigC,PVRSRV_MODNAME,"\"$(PVRSRV_MODNAME)\""))
+$(eval $(call BothConfigMake,PVRSRV_MODNAME,$(PVRSRV_MODNAME)))
+$(eval $(call BothConfigMake,PVR_BUILD_DIR,$(PVR_BUILD_DIR)))
+$(eval $(call BothConfigMake,PVR_BUILD_TYPE,$(BUILD)))
+
+$(eval $(call TunableBothConfigC,USE_64BIT_COMPAT,))
+$(eval $(call TunableBothConfigC,SGXCORE,))
+$(eval $(call BothConfigC,SGX$(SGXCORE),))
+$(eval $(call BothConfigC,SUPPORT_SGX$(SGXCORE),))
+
+$(eval $(call TunableBothConfigC,SUPPORT_SGX,1))
+$(eval $(call TunableBothConfigC,SGX_CORE_REV,))
+$(eval $(call TunableBothConfigC,USE_SGX_CORE_REV_HEAD,))
+
+$(eval $(call BothConfigC,TRANSFER_QUEUE,))
+$(eval $(call BothConfigC,PVR_SECURE_HANDLES,))
+
+
+# Support syncing LISR & MISR. This is required for OS's where
+# on SPM platforms the LISR and MISR can run at the same time and
+# thus during powerdown we need to drain all pending LISRs before
+# proceeding to do the actual powerdown
+$(eval $(call KernelConfigC,SUPPORT_LISR_MISR_SYNC))
+
+ifneq ($(DISPLAY_CONTROLLER),)
+$(eval $(call BothConfigC,DISPLAY_CONTROLLER,$(DISPLAY_CONTROLLER)))
+$(eval $(call BothConfigMake,DISPLAY_CONTROLLER,$(DISPLAY_CONTROLLER)))
+endif
+
+ifneq ($(DRM_DISPLAY_CONTROLLER),)
+$(eval $(call KernelConfigMake,DRM_DISPLAY_CONTROLLER,$(DRM_DISPLAY_CONTROLLER)))
+endif
+
+ifneq ($(BUFFERCLASS_MODULE),)
+$(eval $(call BothConfigMake,BUFFERCLASS_MODULE,$(BUFFERCLASS_MODULE)))
+endif
+
+ifneq ($(strip $(KERNELDIR)),)
+PVR_LINUX_MEM_AREA_POOL_MAX_PAGES ?= 0
+ifneq ($(PVR_LINUX_MEM_AREA_POOL_MAX_PAGES),0)
+PVR_LINUX_MEM_AREA_USE_VMAP ?= 1
+include ../kernel_version.mk
+ifeq ($(call kernel-version-at-least,3,0),true)
+PVR_LINUX_MEM_AREA_POOL_ALLOW_SHRINK ?= 1
+endif
+endif
+$(eval $(call KernelConfigC,PVR_LINUX_MEM_AREA_POOL_MAX_PAGES,$(PVR_LINUX_MEM_AREA_POOL_MAX_PAGES)))
+$(eval $(call TunableKernelConfigC,PVR_LINUX_MEM_AREA_USE_VMAP,))
+$(eval $(call TunableKernelConfigC,PVR_LINUX_MEM_AREA_POOL_ALLOW_SHRINK,))
+endif
+
+
+$(eval $(call BothConfigMake,PVR_SYSTEM,$(PVR_SYSTEM)))
+
+
+# Build-type dependent options
+#
+$(eval $(call BothConfigMake,BUILD,$(BUILD)))
+
+ifeq ($(BUILD),debug)
+$(eval $(call BothConfigC,DEBUG,))
+$(eval $(call KernelConfigC,DEBUG_LINUX_MEMORY_ALLOCATIONS,))
+$(eval $(call KernelConfigC,DEBUG_LINUX_MEM_AREAS,))
+$(eval $(call KernelConfigC,DEBUG_LINUX_MMAP_AREAS,))
+$(eval $(call KernelConfigC,DEBUG_BRIDGE_KM,))
+else ifeq ($(BUILD),release)
+$(eval $(call BothConfigC,RELEASE,))
+$(eval $(call TunableBothConfigMake,DEBUGLINK,1))
+$(eval $(call TunableBothConfigC,PVR_DBGPRIV_LEVEL,))
+else ifeq ($(BUILD),timing)
+$(eval $(call BothConfigC,TIMING,))
+$(eval $(call TunableBothConfigMake,DEBUGLINK,1))
+else
+$(error BUILD= must be either debug, release or timing)
+endif
+
+# User-configurable options
+#
+$(eval $(call TunableBothConfigC,SUPPORT_PERCONTEXT_PB,1))
+$(eval $(call TunableBothConfigC,SUPPORT_SHARED_PB,))
+$(eval $(call TunableBothConfigC,SUPPORT_HYBRID_PB,))
+$(eval $(call TunableBothConfigC,SUPPORT_HW_RECOVERY,1))
+$(eval $(call TunableBothConfigC,SUPPORT_ACTIVE_POWER_MANAGEMENT,1))
+$(eval $(call TunableBothConfigC,SUPPORT_SGX_HWPERF,1))
+$(eval $(call TunableBothConfigC,SUPPORT_SGX_LOW_LATENCY_SCHEDULING,1))
+$(eval $(call TunableBothConfigC,SUPPORT_SGX_CONTEXT_PRIORITY_PER_THREAD,))
+
+$(eval $(call TunableBothConfigC,SUPPORT_MEMINFO_IDS,))
+$(eval $(call TunableBothConfigC,SUPPORT_SGX_NEW_STATUS_VALS,1))
+$(eval $(call TunableBothConfigC,SUPPORT_PDUMP_MULTI_PROCESS,))
+$(eval $(call TunableBothConfigC,SUPPORT_DBGDRV_EVENT_OBJECTS,1))
+$(eval $(call TunableBothConfigC,SGX_FEATURE_SYSTEM_CACHE,))
+$(eval $(call TunableBothConfigC,SGX_BYPASS_SYSTEM_CACHE,))
+$(eval $(call TunableBothConfigC,SGX_BYPASS_DCU,))
+$(eval $(call TunableBothConfigC,SGX_FAST_DPM_INIT,))
+$(eval $(call TunableBothConfigC,SGX_FEATURE_MP,))
+$(eval $(call TunableBothConfigC,SGX_FEATURE_MP_PLUS,))
+$(eval $(call TunableBothConfigC,FPGA,))
+$(eval $(call TunableBothConfigC,PDUMP,))
+$(eval $(call TunableBothConfigC,MEM_TRACK_INFO_DEBUG,))
+$(eval $(call TunableBothConfigC,PVRSRV_DEVMEM_TIME_STATS,))
+$(eval $(call TunableBothConfigC,NO_HARDWARE,))
+$(eval $(call TunableBothConfigC,PDUMP_DEBUG_OUTFILES,))
+$(eval $(call TunableBothConfigC,PVRSRV_USSE_EDM_STATUS_DEBUG,))
+$(eval $(call TunableBothConfigC,PVRSRV_RESET_ON_HWTIMEOUT,))
+$(eval $(call TunableBothConfigC,SYS_USING_INTERRUPTS,1))
+$(eval $(call TunableBothConfigC,SUPPORT_EXTERNAL_SYSTEM_CACHE,))
+$(eval $(call TunableBothConfigC,PVRSRV_NEW_PVR_DPF,))
+$(eval $(call TunableBothConfigC,PVRSRV_NEED_PVR_DPF,))
+$(eval $(call TunableBothConfigC,PVRSRV_NEED_PVR_ASSERT,))
+$(eval $(call TunableBothConfigC,PVRSRV_NEED_PVR_TRACE,))
+$(eval $(call TunableBothConfigC,SUPPORT_SECURE_33657_FIX,))
+$(eval $(call TunableBothConfigC,SUPPORT_ION,))
+$(eval $(call TunableBothConfigC,SUPPORT_DMABUF,))
+$(eval $(call TunableBothConfigC,SUPPORT_HWRECOVERY_TRACE_LIMIT,))
+$(eval $(call TunableBothConfigC,SUPPORT_PVRSRV_DEVICE_CLASS,))
+$(eval $(call TunableBothConfigC,SUPPORT_PVRSRV_GET_DC_SYSTEM_BUFFER,1))
+$(eval $(call TunableBothConfigC,SUPPORT_NV12_FROM_2_HWADDRS,))
+$(eval $(call TunableBothConfigC,SGX_FEATURE_36BIT_MMU,))
+$(eval $(call TunableBothConfigC,IMG_ADDRSPACE_PHYSADDR_BITS,))
+$(eval $(call TunableBothConfigC,PVRSRV_EXTRA_PB_DEBUG,))
+$(eval $(call TunableBothConfigC,PVRSRV_DEBUG_CCB_MAX,))
+
+$(eval $(call TunableKernelConfigC,SUPPORT_LINUX_X86_WRITECOMBINE,1))
+$(eval $(call TunableKernelConfigC,SUPPORT_LINUX_X86_PAT,1))
+$(eval $(call TunableKernelConfigC,SGX_DYNAMIC_TIMING_INFO,))
+$(eval $(call TunableKernelConfigC,SYS_SGX_ACTIVE_POWER_LATENCY_MS,))
+$(eval $(call TunableKernelConfigC,SYS_CUSTOM_POWERLOCK_WRAP,))
+$(eval $(call TunableKernelConfigC,PVR_LINUX_USING_WORKQUEUES,))
+$(eval $(call TunableKernelConfigC,PVR_LINUX_MISR_USING_WORKQUEUE,))
+$(eval $(call TunableKernelConfigC,PVR_LINUX_MISR_USING_PRIVATE_WORKQUEUE,))
+$(eval $(call TunableKernelConfigC,PVR_LINUX_TIMERS_USING_WORKQUEUES,))
+$(eval $(call TunableKernelConfigC,PVR_LINUX_TIMERS_USING_SHARED_WORKQUEUE,))
+$(eval $(call TunableKernelConfigC,LDM_PLATFORM,))
+$(eval $(call TunableKernelConfigC,PVR_LDM_DEVICE_TREE,))
+$(eval $(call TunableKernelConfigC,PVR_LDM_PLATFORM_PRE_REGISTERED,))
+$(eval $(call TunableKernelConfigC,PVR_LDM_PLATFORM_PRE_REGISTERED_DEV,))
+$(eval $(call TunableKernelConfigC,PVR_LDM_DRIVER_REGISTRATION_NAME,"\"$(PVRSRV_MODNAME)\""))
+$(eval $(call TunableKernelConfigC,LDM_PCI,))
+$(eval $(call TunableKernelConfigC,PVRSRV_DUMP_MK_TRACE,))
+$(eval $(call TunableKernelConfigC,PVRSRV_DUMP_KERNEL_CCB,))
+$(eval $(call TunableKernelConfigC,PVRSRV_REFCOUNT_DEBUG,))
+$(eval $(call TunableKernelConfigC,PVRSRV_MMU_MAKE_READWRITE_ON_DEMAND,))
+$(eval $(call TunableKernelConfigC,HYBRID_SHARED_PB_SIZE,))
+$(eval $(call TunableKernelConfigC,SUPPORT_LARGE_GENERAL_HEAP,))
+$(eval $(call TunableKernelConfigC,SUPPORT_OLD_ION_API,))
+$(eval $(call TunableKernelConfigC,TTRACE,))
+$(eval $(call TunableKernelConfigC,TTRACE_LARGE_BUFFER,))
+$(eval $(call TunableKernelConfigC,SUPPORT_PDUMP_SYNC_DEBUG,))
+$(eval $(call TunableKernelConfigC,SUPPORT_PER_SYNC_DEBUG,))
+$(eval $(call TunableKernelConfigC,SUPPORT_FORCE_SYNC_DUMP,))
+
+ifneq ($(filter opengl,$(COMPONENTS)),)
+SUPPORT_OPENGL = 1
+endif
+ifneq ($(filter opengles1,$(COMPONENTS)),)
+endif
+ifneq ($(filter opengles2,$(COMPONENTS)),)
+endif
+ifneq ($(filter opencl,$(COMPONENTS)),)
+endif
+
+
+$(eval $(call TunableBothConfigMake,OPTIM,))
+$(eval $(call TunableBothConfigMake,SUPPORT_ION,))
+$(eval $(call TunableBothConfigMake,SUPPORT_DMABUF,))
+$(eval $(call TunableBothConfigMake,SUPPORT_PVRSRV_DEVICE_CLASS,))
+
+
+$(eval $(call TunableKernelConfigMake,TTRACE,))
+
+
+$(if $(USE_CCACHE),$(if $(USE_DISTCC),$(error\
+Enabling both USE_CCACHE and USE_DISTCC at the same time is not supported)))
+
+SUPPORT_SGX_LOW_LATENCY_SCHEDULING ?= 1
+SUPPORT_SGX_CONTEXT_PRIORITY_PER_THREAD ?= 0
+
+ifeq ($(SUPPORT_SGX_CONTEXT_PRIORITY_PER_THREAD),1)
+ifeq ($(SUPPORT_OPENGL),)
+ifeq ($(SUPPORT_SGX_LOW_LATENCY_SCHEDULING),1)
+$(eval $(call BothConfigC,SGX_FEATURE_CONTEXT_PRIORITY_PER_THREAD,))
+else
+$(info SGX_CONTEXT_PRIORITY_PER_THREAD requires Low latency scheduling to be enabled)
+endif
+else
+$(info SGX_CONTEXT_PRIORITY_PER_THREAD requires OpenGL support to be disabled)
+endif
+endif
+
+endif # INTERNAL_CLOBBER_ONLY
+
+export INTERNAL_CLOBBER_ONLY
+export TOP
+export OUT
+
+MAKE_ETC := -Rr --no-print-directory -C $(TOP) TOP=$(TOP) OUT=$(OUT) \
+               -f eurasiacon/build/linux2/toplevel.mk
+
+# This must match the default value of MAKECMDGOALS below, and the default
+# goal in toplevel.mk
+.DEFAULT_GOAL := build
+
+ifeq ($(MAKECMDGOALS),)
+MAKECMDGOALS := build
+else
+# We can't pass autogen to toplevel.mk
+MAKECMDGOALS := $(filter-out autogen,$(MAKECMDGOALS))
+endif
+
+.PHONY: autogen
+autogen:
+ifeq ($(INTERNAL_CLOBBER_ONLY),)
+       @$(MAKE) -s --no-print-directory -C $(EURASIAROOT) \
+               -f eurasiacon/build/linux2/prepare_tree.mk \
+               LDM_PCI=$(LDM_PCI) LDM_PLATFORM=$(LDM_PLATFORM)
+else
+       @:
+endif
+
+# This deletes built-in suffix rules. Otherwise the submake isn't run when
+# saying e.g. "make thingy.a"
+.SUFFIXES:
+
+# Because we have a match-anything rule below, we'll run the main build when
+# we're actually trying to remake various makefiles after they're read in.
+# These rules try to prevent that
+%.mk: ;
+Makefile%: ;
+Makefile: ;
+
+.PHONY: build kbuild install
+build kbuild install: autogen
+       @$(if $(MAKECMDGOALS),$(MAKE) $(MAKE_ETC) $(MAKECMDGOALS) $(eval MAKECMDGOALS :=),:)
+
+%: autogen
+       @$(if $(MAKECMDGOALS),$(MAKE) $(MAKE_ETC) $(MAKECMDGOALS) $(eval MAKECMDGOALS :=),:)
diff --git a/sgx_km/eurasia_km/eurasiacon/build/linux2/defs.mk b/sgx_km/eurasia_km/eurasiacon/build/linux2/defs.mk
new file mode 100644 (file)
index 0000000..29fc365
--- /dev/null
@@ -0,0 +1,198 @@
+########################################################################### ###
+#@Copyright     Copyright (c) Imagination Technologies Ltd. All Rights Reserved
+#@License       Dual MIT/GPLv2
+# 
+# The contents of this file are subject to the MIT license as set out below.
+# 
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+# 
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+# 
+# Alternatively, the contents of this file may be used under the terms of
+# the GNU General Public License Version 2 ("GPL") in which case the provisions
+# of GPL are applicable instead of those above.
+# 
+# If you wish to allow use of your version of this file only under the terms of
+# GPL, and not to allow others to use your version of this file under the terms
+# of the MIT license, indicate your decision by deleting the provisions above
+# and replace them with the notice and other provisions required by GPL as set
+# out in the file called "GPL-COPYING" included in this distribution. If you do
+# not delete the provisions above, a recipient may use your version of this file
+# under the terms of either the MIT license or GPL.
+# 
+# This License is also included in this distribution in the file called
+# "MIT-COPYING".
+# 
+# EXCEPT AS OTHERWISE STATED IN A NEGOTIATED AGREEMENT: (A) THE SOFTWARE IS
+# PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
+# BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+# PURPOSE AND NONINFRINGEMENT; AND (B) IN NO EVENT SHALL THE AUTHORS OR
+# COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+### ###########################################################################
+
+define must-be-defined
+$(if $(filter undefined,$(origin $(1))),$(error In makefile $(THIS_MAKEFILE): $$($(1)) must be defined),)
+endef
+
+define must-be-nonempty
+$(if $(strip $($(1))),,$(error In makefile $(THIS_MAKEFILE): $$($(1)) must contain a value))
+endef
+
+define directory-must-exist
+$(if $(wildcard $(abspath $(1)/)),,$(error Directory $(1) must exist))
+endef
+
+define one-word-only
+$(if $(filter-out $(firstword $($(1))),$($(1))),$(error In makefile $(THIS_MAKEFILE): $$($(1)) must contain only one word),)
+endef
+
+define module-library
+$(patsubst lib%.so,%,$(if $($(1)_target),$($(1)_target),$(1).so))
+endef
+
+# This is done to allow module type makefiles to use $(THIS_MAKEFILE)
+define register-module
+INTERNAL_MAKEFILE_FOR_MODULE_$(1) := $(THIS_MAKEFILE)
+endef
+
+define process-module-arch
+MODULE_ARCH := $$(strip $(2))
+include $$(MAKE_TOP)/moduledefs_common.mk
+include $$(MAKE_TOP)/moduledefs/$$(MODULE_ARCH).mk
+include $$(MAKE_TOP)/$$(strip $$($$(THIS_MODULE)_type)).mk
+.SECONDARY: $$(MODULE_INTERMEDIATES_DIR)
+$$(MODULE_INTERMEDIATES_DIR):
+       $$(make-directory)
+MODULE_CLEAN_TARGETS += $$(MODULE_INTERMEDIATES_DIR)
+INTERNAL_TARGETS_FOR_$(1) += $$(MODULE_TARGETS)
+INTERNAL_CLEAN_TARGETS_FOR_$(1) += $$(MODULE_CLEAN_TARGETS)
+INTERNAL_CLOBBER_TARGETS_FOR_$(1) += $$(MODULE_CLEAN_TARGETS) $$(MODULE_CLOBBER_TARGETS) $$(MODULE_TARGETS)
+endef
+
+target_neutral_types := \
+ apk \
+ bison_parser \
+ copy_files \
+ custom \
+ flex_lexer \
+ dex \
+ gen_dispatch \
+ image_header \
+ inline_shaders \
+ java_archive \
+ module_group \
+ pds_header \
+ use_header
+
+doc_types := doc
+
+define calculate-arch-list
+# Work out the target platforms for this module
+MODULE_ARCH_LIST := $(2)
+ifeq ($$(MODULE_ARCH_LIST),)
+ifneq ($$(filter $(1),$(doc_types)),)
+MODULE_ARCH_LIST := doc
+else
+ifneq ($$(filter $(1),$(target_neutral_types)),)
+MODULE_ARCH_LIST := target_neutral
+else
+ifneq ($$(filter $(1),kernel_module),)
+MODULE_ARCH_LIST := $(TARGET_PRIMARY_ARCH)
+else
+MODULE_ARCH_LIST := $(TARGET_ALL_ARCH)
+endif
+endif
+endif
+endif
+endef
+
+define process-module
+THIS_MODULE := $(1)
+THIS_MAKEFILE := $(INTERNAL_MAKEFILE_FOR_MODULE_$(1))
+INTERNAL_TARGETS_FOR_$(1) :=
+INTERNAL_CLEAN_TARGETS_FOR_$(1) :=
+INTERNAL_CLOBBER_TARGETS_FOR_$(1) :=
+include $$(MAKE_TOP)/this_makefile.mk
+$$(call must-be-nonempty,THIS_MAKEFILE)
+$$(call must-be-nonempty,$(1)_type)
+$$(eval $$(call calculate-arch-list,$$($(1)_type),$$($(1)_arch)))
+INTERNAL_ARCH_LIST_FOR_$(1) := $$(MODULE_ARCH_LIST)
+$$(foreach _m,$$(MODULE_ARCH_LIST),$$(eval $$(call process-module-arch,$(1),$$(_m))))
+endef
+
+# This can be used by module_type.mk files to indicate that they can't be
+# built as host_module_type
+define target-build-only
+$(if $(filter true,$(MODULE_HOST_BUILD)),$(error In makefile $(THIS_MAKEFILE): Module $(THIS_MODULE) attempted to build a host $(1), which is not supported))
+endef
+
+define relative-to-top
+$(patsubst $(TOP)/%,%,$(1))
+endef
+
+define cc-check
+$(shell \
+       CC_CHECK=$(patsubst @%,%,$(CC_CHECK)) && \
+       $(patsubst @%,%,$(CHMOD)) +x $$CC_CHECK && \
+       $$CC_CHECK --cc "$(1)" --out "$(2)" $(3))
+endef
+
+define cc-is-clang
+$(call cc-check,$(patsubst @%,%,$(CC)),$(OUT),--clang)
+endef
+
+define cc-option
+$(call cc-check,$(patsubst @%,%,$(CC)),$(OUT),$(1))
+endef
+
+define cxx-option
+$(call cc-check,$(patsubst @%,%,$(CXX)),$(OUT),$(1))
+endef
+
+define host-cc-option
+$(call cc-check,$(patsubst @%,%,$(HOST_CC)),$(OUT),$(1))
+endef
+
+define host-cxx-option
+$(call cc-check,$(patsubst @%,%,$(HOST_CXX)),$(OUT),$(1))
+endef
+
+define kernel-cc-option
+$(call cc-check,$(KERNEL_CROSS_COMPILE)gcc,$(OUT),$(1))
+endef
+
+# Turn a particular warning on, or explicitly turn it off, depending on
+# the value of W. The "-W" or "-Wno-" part of the warning need not be
+# specified.
+define cc-optional-warning
+$(call cc-option,-W$(if $(W),,no-)$(patsubst -W%,%,$(patsubst -Wno-%,%,$(1))))
+endef
+
+define host-cc-optional-warning
+$(call host-cc-option,-W$(if $(W),,no-)$(patsubst -W%,%,$(patsubst -Wno-%,%,$(1))))
+endef
+
+define kernel-cc-optional-warning
+$(call kernel-cc-option,-W$(if $(W),,no-)$(patsubst -W%,%,$(patsubst -Wno-%,%,$(1))))
+endef
+
+define module-info-line
+$(if $(filter modules,$(D)),$(info [$(THIS_MODULE)] <$(MODULE_ARCH)> $(1)),)
+endef
+
+# $(call if-exists,A,B) => A if A is a file which exists, otherwise B
+define if-exists
+$(if $(wildcard $(1)),$(1),$(2))
+endef
+
+define unsupported-module-var
+$(if $(strip $($(THIS_MODULE)_$(1))),$(error In makefile $(THIS_MAKEFILE): Setting '$(THIS_MODULE)_$(1)' has no effect, because $(THIS_MODULE) has type $($(THIS_MODULE)_type)))
+endef
diff --git a/sgx_km/eurasia_km/eurasiacon/build/linux2/kbuild/Makefile.template b/sgx_km/eurasia_km/eurasiacon/build/linux2/kbuild/Makefile.template
new file mode 100644 (file)
index 0000000..822c3df
--- /dev/null
@@ -0,0 +1,91 @@
+########################################################################### ###
+#@Title         Root kernel makefile
+#@Copyright     Copyright (c) Imagination Technologies Ltd. All Rights Reserved
+#@License       Dual MIT/GPLv2
+# 
+# The contents of this file are subject to the MIT license as set out below.
+# 
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+# 
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+# 
+# Alternatively, the contents of this file may be used under the terms of
+# the GNU General Public License Version 2 ("GPL") in which case the provisions
+# of GPL are applicable instead of those above.
+# 
+# If you wish to allow use of your version of this file only under the terms of
+# GPL, and not to allow others to use your version of this file under the terms
+# of the MIT license, indicate your decision by deleting the provisions above
+# and replace them with the notice and other provisions required by GPL as set
+# out in the file called "GPL-COPYING" included in this distribution. If you do
+# not delete the provisions above, a recipient may use your version of this file
+# under the terms of either the MIT license or GPL.
+# 
+# This License is also included in this distribution in the file called
+# "MIT-COPYING".
+# 
+# EXCEPT AS OTHERWISE STATED IN A NEGOTIATED AGREEMENT: (A) THE SOFTWARE IS
+# PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
+# BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+# PURPOSE AND NONINFRINGEMENT; AND (B) IN NO EVENT SHALL THE AUTHORS OR
+# COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+### ###########################################################################
+
+# This top-level kbuild makefile builds all the Linux kernel modules in the
+# DDK. To run kbuild, this makefile is copied to $(TARGET_PRIMARY_OUT)/kbuild/Makefile
+# and make is invoked in $(TARGET_PRIMARY_OUT)/kbuild.
+
+# This makefile doesn't define any kbuild special variables apart from
+# ccflags-y and obj-m. The variables for objects are picked up by including
+# the kbuild makefile fragments named in $(INTERNAL_KBUILD_MAKEFILES). The
+# list of objects that these fragments make is collected in
+# $(INTERNAL_KBUILD_OBJECTS) and $(INTERNAL_EXTRA_KBUILD_OBJECTS). These
+# variables are set according to the build's $(KERNEL_COMPONENTS) and
+# $(EXTRA_PVRSRVKM_COMPONENTS). To add a new kernel module to the build, edit
+# these variables in the per-build Makefile.
+
+include $(OUT)/config_kernel.mk
+
+.SECONDARY:
+
+$(OUT)/$(TARGET_PRIMARY_ARCH)/kbuild/external/%.c: $(EXTRA_KBUILD_SOURCE)/%.c
+       @if [ ! -e $(dir $@) ]; then mkdir -p $(dir $@); fi
+       @if [ ! -h $@ ]; then ln -sf $< $@; fi
+
+$(OUT)/$(TARGET_PRIMARY_ARCH)/kbuild/%.c: $(TOP)/%.c
+       @if [ ! -e $(dir $@) ]; then mkdir -p $(dir $@); fi
+       @if [ ! -h $@ ]; then ln -sf $< $@; fi
+
+ccflags-y += -D__linux__ -include $(OUT)/config_kernel.h \
+ -I$(OUT)/include \
+ -I$(TOP)/include4 \
+ -I$(TOP)/services4/include \
+ -I$(TOP)/services4/system/$(PVR_SYSTEM) \
+ -I$(TOP)/services4/system/include \
+ -I$(TOP)/services4/srvkm/bridged \
+ -I$(TOP)/services4/srvkm/bridged/sgx \
+ -I$(TOP)/services4/srvkm/common \
+ -I$(TOP)/services4/srvkm/devices/sgx \
+ -I$(TOP)/services4/srvkm/env/linux \
+ -I$(TOP)/services4/srvkm/include
+
+ifeq ($(PVR_LOCAL_HWDEFS),)
+ccflags-y += -I$(TOP)/services4/srvkm/hwdefs
+else
+ccflags-y += -I$(TOP)/hwdefs
+endif
+
+include $(INTERNAL_KBUILD_MAKEFILES)
+
+$(if $(pvrsrvkm-y),,$(error pvrsrvkm-y was empty, which could mean that srvkm is missing from $$(KERNEL_COMPONENTS)))
+pvrsrvkm-y += $(foreach _m,$(INTERNAL_EXTRA_KBUILD_OBJECTS:.o=),$($(_m)-y))
+
+obj-m += $(INTERNAL_KBUILD_OBJECTS)
diff --git a/sgx_km/eurasia_km/eurasiacon/build/linux2/kbuild/kbuild.mk b/sgx_km/eurasia_km/eurasiacon/build/linux2/kbuild/kbuild.mk
new file mode 100644 (file)
index 0000000..e289a25
--- /dev/null
@@ -0,0 +1,87 @@
+########################################################################### ###
+#@Copyright     Copyright (c) Imagination Technologies Ltd. All Rights Reserved
+#@License       Dual MIT/GPLv2
+# 
+# The contents of this file are subject to the MIT license as set out below.
+# 
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+# 
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+# 
+# Alternatively, the contents of this file may be used under the terms of
+# the GNU General Public License Version 2 ("GPL") in which case the provisions
+# of GPL are applicable instead of those above.
+# 
+# If you wish to allow use of your version of this file only under the terms of
+# GPL, and not to allow others to use your version of this file under the terms
+# of the MIT license, indicate your decision by deleting the provisions above
+# and replace them with the notice and other provisions required by GPL as set
+# out in the file called "GPL-COPYING" included in this distribution. If you do
+# not delete the provisions above, a recipient may use your version of this file
+# under the terms of either the MIT license or GPL.
+# 
+# This License is also included in this distribution in the file called
+# "MIT-COPYING".
+# 
+# EXCEPT AS OTHERWISE STATED IN A NEGOTIATED AGREEMENT: (A) THE SOFTWARE IS
+# PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
+# BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+# PURPOSE AND NONINFRINGEMENT; AND (B) IN NO EVENT SHALL THE AUTHORS OR
+# COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+### ###########################################################################
+
+$(if $(strip $(KERNELDIR)),,$(error KERNELDIR must be set))
+$(call directory-must-exist,$(KERNELDIR))
+
+$(TARGET_PRIMARY_OUT)/kbuild/Makefile: $(MAKE_TOP)/kbuild/Makefile.template
+       @[ ! -e $(dir $@) ] && mkdir -p $(dir $@) || true
+       $(CP) -f $< $@
+
+# We need to make INTERNAL_KBUILD_MAKEFILES absolute because the files will be
+# read while chdir'd into $(KERNELDIR)
+INTERNAL_KBUILD_MAKEFILES := $(abspath $(foreach _m,$(KERNEL_COMPONENTS) $(EXTRA_PVRSRVKM_COMPONENTS),$(if $(INTERNAL_KBUILD_MAKEFILE_FOR_$(_m)),$(INTERNAL_KBUILD_MAKEFILE_FOR_$(_m)),$(error Unknown kbuild module "$(_m)"))))
+INTERNAL_KBUILD_OBJECTS := $(foreach _m,$(KERNEL_COMPONENTS),$(if $(INTERNAL_KBUILD_OBJECTS_FOR_$(_m)),$(INTERNAL_KBUILD_OBJECTS_FOR_$(_m)),$(error BUG: Unknown kbuild module "$(_m)" should have been caught earlier)))
+INTERNAL_EXTRA_KBUILD_OBJECTS := $(foreach _m,$(EXTRA_PVRSRVKM_COMPONENTS),$(if $(INTERNAL_KBUILD_OBJECTS_FOR_$(_m)),$(INTERNAL_KBUILD_OBJECTS_FOR_$(_m)),$(error BUG: Unknown kbuild module "$(_m)" should have been caught earlier)))
+.PHONY: kbuild kbuild_clean
+
+kbuild: $(TARGET_PRIMARY_OUT)/kbuild/Makefile
+       $(if $(V),,@)$(MAKE) -Rr --no-print-directory -C $(KERNELDIR) \
+               M=$(abspath $(TARGET_PRIMARY_OUT)/kbuild) \
+               INTERNAL_KBUILD_MAKEFILES="$(INTERNAL_KBUILD_MAKEFILES)" \
+               INTERNAL_KBUILD_OBJECTS="$(INTERNAL_KBUILD_OBJECTS)" \
+               INTERNAL_EXTRA_KBUILD_OBJECTS="$(INTERNAL_EXTRA_KBUILD_OBJECTS)" \
+               EXTRA_KBUILD_SOURCE="$(EXTRA_KBUILD_SOURCE)" \
+               TARGET_PRIMARY_ARCH=$(TARGET_PRIMARY_ARCH) \
+               CROSS_COMPILE="$(CCACHE) $(KERNEL_CROSS_COMPILE)" \
+               EXTRA_CFLAGS="$(ALL_KBUILD_CFLAGS)" \
+               CC=$(if $(KERNEL_CC),$(KERNEL_CC),$(KERNEL_CROSS_COMPILE)gcc) \
+               V=$(V) W=$(W) \
+               TOP=$(TOP)
+       @for kernel_module in $(addprefix $(TARGET_PRIMARY_OUT)/kbuild/,$(INTERNAL_KBUILD_OBJECTS:.o=.ko)); do \
+               cp $$kernel_module $(TARGET_PRIMARY_OUT); \
+       done
+
+kbuild_clean: $(TARGET_PRIMARY_OUT)/kbuild/Makefile
+       $(if $(V),,@)$(MAKE) -Rr --no-print-directory -C $(KERNELDIR) \
+               M=$(abspath $(TARGET_PRIMARY_OUT)/kbuild) \
+               INTERNAL_KBUILD_MAKEFILES="$(INTERNAL_KBUILD_MAKEFILES)" \
+               INTERNAL_KBUILD_OBJECTS="$(INTERNAL_KBUILD_OBJECTS)" \
+               INTERNAL_EXTRA_KBUILD_OBJECTS="$(INTERNAL_EXTRA_KBUILD_OBJECTS)" \
+               EXTRA_KBUILD_SOURCE="$(EXTRA_KBUILD_SOURCE)" \
+               TARGET_PRIMARY_ARCH=$(TARGET_PRIMARY_ARCH) \
+               CROSS_COMPILE="$(CCACHE) $(KERNEL_CROSS_COMPILE)" \
+               EXTRA_CFLAGS="$(ALL_KBUILD_CFLAGS)" \
+               CC=$(if $(KERNEL_CC),$(KERNEL_CC),$(KERNEL_CROSS_COMPILE)gcc) \
+               V=$(V) W=$(W) \
+               TOP=$(TOP) clean
+
+kbuild_install: install
+kbuild: install_script_km
diff --git a/sgx_km/eurasia_km/eurasiacon/build/linux2/kernel_module.mk b/sgx_km/eurasia_km/eurasiacon/build/linux2/kernel_module.mk
new file mode 100644 (file)
index 0000000..095fb02
--- /dev/null
@@ -0,0 +1,93 @@
+########################################################################### ###
+#@Copyright     Copyright (c) Imagination Technologies Ltd. All Rights Reserved
+#@License       Dual MIT/GPLv2
+# 
+# The contents of this file are subject to the MIT license as set out below.
+# 
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+# 
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+# 
+# Alternatively, the contents of this file may be used under the terms of
+# the GNU General Public License Version 2 ("GPL") in which case the provisions
+# of GPL are applicable instead of those above.
+# 
+# If you wish to allow use of your version of this file only under the terms of
+# GPL, and not to allow others to use your version of this file under the terms
+# of the MIT license, indicate your decision by deleting the provisions above
+# and replace them with the notice and other provisions required by GPL as set
+# out in the file called "GPL-COPYING" included in this distribution. If you do
+# not delete the provisions above, a recipient may use your version of this file
+# under the terms of either the MIT license or GPL.
+# 
+# This License is also included in this distribution in the file called
+# "MIT-COPYING".
+# 
+# EXCEPT AS OTHERWISE STATED IN A NEGOTIATED AGREEMENT: (A) THE SOFTWARE IS
+# PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
+# BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+# PURPOSE AND NONINFRINGEMENT; AND (B) IN NO EVENT SHALL THE AUTHORS OR
+# COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+### ###########################################################################
+
+# Rules for making kernel modules with kbuild. This makefile doesn't define
+# any rules that build the modules, it only copies the kbuild Makefile into
+# the right place and then invokes kbuild to do the actual build
+
+$(call target-build-only,kernel module)
+
+MODULE_KBUILD_DIR := $(MODULE_OUT)/kbuild
+
+# $(THIS_MODULE)_makefile names the kbuild makefile fragment used to build
+# this module's objects
+$(call must-be-nonempty,$(THIS_MODULE)_makefile)
+MODULE_KBUILD_MAKEFILE := $($(THIS_MODULE)_makefile)
+$(if $(wildcard $(abspath $(MODULE_KBUILD_MAKEFILE))),,$(error In makefile $(THIS_MAKEFILE): Module $(THIS_MODULE) requires kbuild makefile $(MODULE_KBUILD_MAKEFILE), which is missing))
+
+# $(THIS_MODULE)_target specifies the name of the kernel module
+$(call must-be-nonempty,$(THIS_MODULE)_target)
+MODULE_TARGETS := $($(THIS_MODULE)_target)
+MODULE_KBUILD_OBJECTS := $($(THIS_MODULE)_target:.ko=.o)
+
+$(call module-info-line,kernel module: $(MODULE_TARGETS))
+
+# Unusually, we define $(THIS_MODULE)_install_path if the user didn't, as we
+# can't use MODULE_INSTALL_PATH in the scripts.mk logic.
+ifeq ($($(THIS_MODULE)_install_path),)
+$(THIS_MODULE)_install_path := \
+ $${MOD_DESTDIR}/$(patsubst $(MODULE_OUT)/%,%,$(MODULE_TARGETS))
+endif
+
+MODULE_INSTALL_PATH := $($(THIS_MODULE)_install_path)
+
+# Here we could maybe include $(MODULE_KBUILD_MAKEFILE) and look at
+# $(MODULE_KBUILD_OBJECTS)-y to see which source files might be built
+
+.PHONY: $(THIS_MODULE)
+$(THIS_MODULE): MODULE_KBUILD_MAKEFILE := $(MODULE_KBUILD_MAKEFILE)
+$(THIS_MODULE): MODULE_KBUILD_OBJECTS := $(MODULE_KBUILD_OBJECTS)
+$(THIS_MODULE):
+       @echo "kbuild module '$@'"
+       @echo " MODULE_KBUILD_MAKEFILE := $(MODULE_KBUILD_MAKEFILE)"
+       @echo " MODULE_KBUILD_OBJECTS := $(MODULE_KBUILD_OBJECTS)"
+       @echo ' Being built:' $(if $(filter $@,$(KERNEL_COMPONENTS)),"yes (separate module)",$(if $(filter $@,$(EXTRA_PVRSRVKM_COMPONENTS)),"yes (into pvrsrvkm)","no"))
+       @echo "Module $@ is a kbuild module. Run 'make kbuild' to make it"
+       @false
+
+$(MODULE_INTERMEDIATES_DIR)/.install: MODULE_TYPE := $($(THIS_MODULE)_type)
+$(MODULE_INTERMEDIATES_DIR)/.install: MODULE_INSTALL_PATH := $(MODULE_INSTALL_PATH)
+$(MODULE_INTERMEDIATES_DIR)/.install: MODULE_TARGETS := $(patsubst $(MODULE_OUT)/%,%,$(MODULE_TARGETS))
+$(MODULE_INTERMEDIATES_DIR)/.install: $(THIS_MAKEFILE) | $(MODULE_INTERMEDIATES_DIR)
+       @echo 'install_file $(MODULE_TARGETS) $(MODULE_INSTALL_PATH) "$(MODULE_TYPE)" 0644 0:0' >$@
+
+ALL_KBUILD_MODULES += $(THIS_MODULE)
+INTERNAL_KBUILD_MAKEFILE_FOR_$(THIS_MODULE) := $(MODULE_KBUILD_MAKEFILE)
+INTERNAL_KBUILD_OBJECTS_FOR_$(THIS_MODULE) := $(MODULE_KBUILD_OBJECTS)
diff --git a/sgx_km/eurasia_km/eurasiacon/build/linux2/kernel_version.mk b/sgx_km/eurasia_km/eurasiacon/build/linux2/kernel_version.mk
new file mode 100644 (file)
index 0000000..35ecceb
--- /dev/null
@@ -0,0 +1,100 @@
+########################################################################### ###
+#@Copyright     Copyright (c) Imagination Technologies Ltd. All Rights Reserved
+#@License       Dual MIT/GPLv2
+# 
+# The contents of this file are subject to the MIT license as set out below.
+# 
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+# 
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+# 
+# Alternatively, the contents of this file may be used under the terms of
+# the GNU General Public License Version 2 ("GPL") in which case the provisions
+# of GPL are applicable instead of those above.
+# 
+# If you wish to allow use of your version of this file only under the terms of
+# GPL, and not to allow others to use your version of this file under the terms
+# of the MIT license, indicate your decision by deleting the provisions above
+# and replace them with the notice and other provisions required by GPL as set
+# out in the file called "GPL-COPYING" included in this distribution. If you do
+# not delete the provisions above, a recipient may use your version of this file
+# under the terms of either the MIT license or GPL.
+# 
+# This License is also included in this distribution in the file called
+# "MIT-COPYING".
+# 
+# EXCEPT AS OTHERWISE STATED IN A NEGOTIATED AGREEMENT: (A) THE SOFTWARE IS
+# PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
+# BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+# PURPOSE AND NONINFRINGEMENT; AND (B) IN NO EVENT SHALL THE AUTHORS OR
+# COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+### ###########################################################################
+
+$(if $(KERNELDIR),,$(error KERNELDIR must be set to obtain a version))
+
+override KERNEL_VERSION := \
+ $(shell grep "^VERSION = " $(KERNELDIR)/Makefile | cut -f3 -d' ')
+override KERNEL_PATCHLEVEL := \
+ $(shell grep "^PATCHLEVEL = " $(KERNELDIR)/Makefile | cut -f3 -d' ')
+override KERNEL_SUBLEVEL := \
+ $(shell grep "^SUBLEVEL = " $(KERNELDIR)/Makefile | cut -f3 -d' ')
+override KERNEL_EXTRAVERSION := \
+ $(shell grep "^EXTRAVERSION = " $(KERNELDIR)/Makefile | cut -f3 -d' ')
+
+# Break the kernel version up into a space separated list
+kernel_version_as_list := $(KERNEL_VERSION) \
+                               $(KERNEL_PATCHLEVEL) \
+                               $(KERNEL_SUBLEVEL) \
+                               $(patsubst .%,%,$(KERNEL_EXTRAVERSION))
+
+# The base ID doesn't have to be accurate; we only use it for
+# feature checks which will not care about extraversion bits
+#
+override KERNEL_BASE_ID := \
+ $(KERNEL_VERSION).$(KERNEL_PATCHLEVEL).$(KERNEL_SUBLEVEL)
+
+# Try to get the kernel ID from the kernel.release file.
+# 
+KERNEL_ID ?= \
+ $(shell cat $(KERNELDIR)/include/config/kernel.release 2>/dev/null)
+
+# If the kernel ID isn't set yet, try to set it from the UTS_RELEASE
+# macro.
+#
+ifeq ($(strip $(KERNEL_ID)),)
+KERNEL_ID := \
+ $(shell grep -h '\#define UTS_RELEASE' \
+       $(KERNELDIR)/include/linux/* | cut -f3 -d' ' | sed s/\"//g)
+endif
+
+ifeq ($(strip $(KERNEL_ID)),)
+KERNEL_ID := \
+ $(KERNEL_VERSION).$(KERNEL_PATCHLEVEL).$(KERNEL_SUBLEVEL)$(KERNEL_EXTRAVERSION)
+endif
+
+# Return 1 if the kernel version is at least the value passed to the
+# function, else return nothing.
+# Examples
+#      $(call kernel-version-at-least,2,6,35)
+#      $(call kernel-version-at-least,2,6,35,7)
+#
+define kernel-version-at-least
+$(shell set -- $(kernel_version_as_list) 0 0 0 0; \
+       Y=true; \
+       for D in $1 $2 $3 $4; \
+       do \
+               [ $$1 ] || break; \
+               [ $$1 -eq $$D ] && { shift; continue; };\
+               [ $$1 -lt $$D ] && Y=; \
+               break; \
+       done; \
+       echo $$Y)
+endef
diff --git a/sgx_km/eurasia_km/eurasiacon/build/linux2/moduledefs/host_x86_64.mk b/sgx_km/eurasia_km/eurasiacon/build/linux2/moduledefs/host_x86_64.mk
new file mode 100644 (file)
index 0000000..1130045
--- /dev/null
@@ -0,0 +1,57 @@
+########################################################################### ###
+#@File
+#@Copyright     Copyright (c) Imagination Technologies Ltd. All Rights Reserved
+#@License       Dual MIT/GPLv2
+# 
+# The contents of this file are subject to the MIT license as set out below.
+# 
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+# 
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+# 
+# Alternatively, the contents of this file may be used under the terms of
+# the GNU General Public License Version 2 ("GPL") in which case the provisions
+# of GPL are applicable instead of those above.
+# 
+# If you wish to allow use of your version of this file only under the terms of
+# GPL, and not to allow others to use your version of this file under the terms
+# of the MIT license, indicate your decision by deleting the provisions above
+# and replace them with the notice and other provisions required by GPL as set
+# out in the file called "GPL-COPYING" included in this distribution. If you do
+# not delete the provisions above, a recipient may use your version of this file
+# under the terms of either the MIT license or GPL.
+# 
+# This License is also included in this distribution in the file called
+# "MIT-COPYING".
+# 
+# EXCEPT AS OTHERWISE STATED IN A NEGOTIATED AGREEMENT: (A) THE SOFTWARE IS
+# PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
+# BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+# PURPOSE AND NONINFRINGEMENT; AND (B) IN NO EVENT SHALL THE AUTHORS OR
+# COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+### ###########################################################################
+
+MODULE_HOST_BUILD := true
+
+MODULE_CC := $(HOST_CC)
+MODULE_CXX := $(HOST_CXX)
+
+MODULE_HOST_CFLAGS := $(ALL_HOST_CFLAGS) $($(THIS_MODULE)_cflags)
+MODULE_HOST_CXXFLAGS := $(ALL_HOST_CXXFLAGS) $($(THIS_MODULE)_cxxflags)
+MODULE_HOST_LDFLAGS := $(ALL_HOST_LDFLAGS) -L$(MODULE_OUT) $($(THIS_MODULE)_ldflags)
+
+ifneq ($(BUILD),debug)
+ ifeq ($(USE_LTO),1)
+  MODULE_HOST_LDFLAGS := \
+   $(sort $(filter-out -W% -D%,$(ALL_HOST_CFLAGS) $(ALL_HOST_CXXFLAGS))) \
+   $(MODULE_HOST_LDFLAGS)
+ endif
+endif
diff --git a/sgx_km/eurasia_km/eurasiacon/build/linux2/moduledefs/target_armv7-a.mk b/sgx_km/eurasia_km/eurasiacon/build/linux2/moduledefs/target_armv7-a.mk
new file mode 100644 (file)
index 0000000..bf0979e
--- /dev/null
@@ -0,0 +1,130 @@
+########################################################################### ###
+#@File
+#@Copyright     Copyright (c) Imagination Technologies Ltd. All Rights Reserved
+#@License       Dual MIT/GPLv2
+# 
+# The contents of this file are subject to the MIT license as set out below.
+# 
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+# 
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+# 
+# Alternatively, the contents of this file may be used under the terms of
+# the GNU General Public License Version 2 ("GPL") in which case the provisions
+# of GPL are applicable instead of those above.
+# 
+# If you wish to allow use of your version of this file only under the terms of
+# GPL, and not to allow others to use your version of this file under the terms
+# of the MIT license, indicate your decision by deleting the provisions above
+# and replace them with the notice and other provisions required by GPL as set
+# out in the file called "GPL-COPYING" included in this distribution. If you do
+# not delete the provisions above, a recipient may use your version of this file
+# under the terms of either the MIT license or GPL.
+# 
+# This License is also included in this distribution in the file called
+# "MIT-COPYING".
+# 
+# EXCEPT AS OTHERWISE STATED IN A NEGOTIATED AGREEMENT: (A) THE SOFTWARE IS
+# PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
+# BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+# PURPOSE AND NONINFRINGEMENT; AND (B) IN NO EVENT SHALL THE AUTHORS OR
+# COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+### ###########################################################################
+
+MODULE_HOST_BUILD :=
+
+MODULE_CC := $(CC_SECONDARY) -march=armv7-a -mfloat-abi=softfp
+MODULE_CXX := $(CXX_SECONDARY) -march=armv7-a -mfloat-abi=softfp
+
+ifneq ($(BUILD),debug)
+MODULE_CC := $(MODULE_CC) -mthumb
+MODULE_CXX := $(MODULE_CXX) -mthumb
+endif
+
+MODULE_CFLAGS := $(ALL_CFLAGS) $($(THIS_MODULE)_cflags)
+MODULE_CXXFLAGS := $(ALL_CXXFLAGS) $($(THIS_MODULE)_cxxflags)
+MODULE_LDFLAGS := $($(THIS_MODULE)_ldflags) -L$(MODULE_OUT) -Xlinker -rpath-link=$(MODULE_OUT) $(ALL_LDFLAGS)
+
+# Since this is a target module, add system-specific include flags.
+MODULE_INCLUDE_FLAGS := \
+ $(SYS_INCLUDES_RESIDUAL) \
+ $(addprefix -isystem ,$(filter-out $(patsubst -I%,%,$(filter -I%,$(MODULE_INCLUDE_FLAGS))),$(SYS_INCLUDES_ISYSTEM))) \
+ $(MODULE_INCLUDE_FLAGS)
+
+ifneq ($(SUPPORT_ANDROID_PLATFORM),)
+
+_obj := $(TARGET_ROOT)/product/$(TARGET_DEVICE)/obj$(if $(MULTIARCH),_arm,)
+
+# Linker flags used to find system libraries.
+MODULE_SYSTEM_LIBRARY_DIR_FLAGS += \
+ -L$(_obj)/lib \
+ -Xlinker -rpath-link=$(_obj)/lib \
+ -L$(TARGET_ROOT)/product/$(TARGET_DEVICE)/system/lib \
+ -Xlinker -rpath-link=$(TARGET_ROOT)/product/$(TARGET_DEVICE)/system/lib
+ifneq ($(wildcard $(TARGET_ROOT)/product/$(TARGET_DEVICE)/vendor),)
+MODULE_SYSTEM_LIBRARY_DIR_FLAGS += \
+ -L$(TARGET_ROOT)/product/$(TARGET_DEVICE)/vendor/lib \
+ -Xlinker -rpath-link=$(TARGET_ROOT)/product/$(TARGET_DEVICE)/vendor/lib
+else
+MODULE_SYSTEM_LIBRARY_DIR_FLAGS += \
+ -L$(TARGET_ROOT)/product/$(TARGET_DEVICE)/system/vendor/lib \
+ -Xlinker -rpath-link=$(TARGET_ROOT)/product/$(TARGET_DEVICE)/system/vendor/lib
+endif
+
+ifeq ($(NDK_ROOT),)
+
+MODULE_INCLUDE_FLAGS := \
+ -isystem $(ANDROID_ROOT)/bionic/libc/arch-arm/include \
+ -isystem $(ANDROID_ROOT)/bionic/libc/kernel/uapi/asm-arm \
+ -isystem $(ANDROID_ROOT)/bionic/libm/include/arm \
+ $(MODULE_INCLUDE_FLAGS)
+
+else # NDK_ROOT
+
+_obj := $(NDK_ROOT)/platforms/$(TARGET_PLATFORM)/arch-arm/usr
+
+MODULE_SYSTEM_LIBRARY_DIR_FLAGS := \
+ -L$(NDK_ROOT)/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a \
+ $(MODULE_SYSTEM_LIBRARY_DIR_FLAGS)
+
+endif # NDK_ROOT
+
+MODULE_LDFLAGS += $(MODULE_SYSTEM_LIBRARY_DIR_FLAGS)
+
+MODULE_EXE_LDFLAGS := \
+ -Bdynamic -nostdlib -Wl,-dynamic-linker,/system/bin/linker -lc
+
+MODULE_LIB_LDFLAGS := $(MODULE_EXE_LDFLAGS)
+
+# Keeping it same as C for now
+MODULE_LIB_LDFLAGS_CXX := $(MODULE_EXE_LDFLAGS)
+
+MODULE_EXE_CRTBEGIN := $(_obj)/lib/crtbegin_dynamic.o
+MODULE_EXE_CRTEND := $(_obj)/lib/crtend_android.o
+
+MODULE_LIB_CRTBEGIN := $(_obj)/lib/crtbegin_so.o
+MODULE_LIB_CRTEND := $(_obj)/lib/crtend_so.o
+
+MODULE_LIBGCC := -Wl,--version-script,$(MAKE_TOP)/common/libgcc.lds $(LIBGCC_SECONDARY)
+
+MODULE_ARCH_TAG := $(_obj)
+
+endif # SUPPORT_ANDROID_PLATFORM
+
+ifneq ($(BUILD),debug)
+ifeq ($(USE_LTO),1)
+MODULE_LDFLAGS := \
+ $(sort $(filter-out -W% -D%,$(ALL_CFLAGS) $(ALL_CXXFLAGS))) \
+ $(MODULE_LDFLAGS)
+endif
+endif
+
+MODULE_ARCH_BITNESS := 32
diff --git a/sgx_km/eurasia_km/eurasiacon/build/linux2/moduledefs/target_mips32r6el.mk b/sgx_km/eurasia_km/eurasiacon/build/linux2/moduledefs/target_mips32r6el.mk
new file mode 100644 (file)
index 0000000..0891966
--- /dev/null
@@ -0,0 +1,134 @@
+########################################################################### ###
+#@File
+#@Copyright     Copyright (c) Imagination Technologies Ltd. All Rights Reserved
+#@License       Dual MIT/GPLv2
+# 
+# The contents of this file are subject to the MIT license as set out below.
+# 
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+# 
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+# 
+# Alternatively, the contents of this file may be used under the terms of
+# the GNU General Public License Version 2 ("GPL") in which case the provisions
+# of GPL are applicable instead of those above.
+# 
+# If you wish to allow use of your version of this file only under the terms of
+# GPL, and not to allow others to use your version of this file under the terms
+# of the MIT license, indicate your decision by deleting the provisions above
+# and replace them with the notice and other provisions required by GPL as set
+# out in the file called "GPL-COPYING" included in this distribution. If you do
+# not delete the provisions above, a recipient may use your version of this file
+# under the terms of either the MIT license or GPL.
+# 
+# This License is also included in this distribution in the file called
+# "MIT-COPYING".
+# 
+# EXCEPT AS OTHERWISE STATED IN A NEGOTIATED AGREEMENT: (A) THE SOFTWARE IS
+# PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
+# BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+# PURPOSE AND NONINFRINGEMENT; AND (B) IN NO EVENT SHALL THE AUTHORS OR
+# COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+### ###########################################################################
+
+MIPS_ABI_FLAGS := -EL -march=mips32r2 -mabi=32 -mfp32 -modd-spreg -mno-fused-madd -Wa,-mmxu
+
+MODULE_CC := $(CC) $(MIPS_ABI_FLAGS)
+MODULE_CXX := $(CXX) $(MIPS_ABI_FLAGS)
+
+MODULE_CFLAGS := $(ALL_CFLAGS) $($(THIS_MODULE)_cflags) $(MIPS_ABI_FLAGS)
+MODULE_CXXFLAGS := $(ALL_CXXFLAGS) $($(THIS_MODULE)_cxxflags) $(MIPS_ABI_FLAGS)
+MODULE_LDFLAGS := $($(THIS_MODULE)_ldflags) -L$(MODULE_OUT) -Xlinker -rpath-link=$(MODULE_OUT) $(ALL_LDFLAGS) $(MIPS_ABI_FLAGS)
+
+# Since this is a target module, add system-specific include flags.
+MODULE_INCLUDE_FLAGS := \
+ $(SYS_INCLUDES_RESIDUAL) \
+ $(addprefix -isystem ,$(filter-out $(patsubst -I%,%,$(filter -I%,$(MODULE_INCLUDE_FLAGS))),$(SYS_INCLUDES_ISYSTEM))) \
+ $(MODULE_INCLUDE_FLAGS)
+
+ifneq ($(SUPPORT_ANDROID_PLATFORM),)
+
+_obj := $(TARGET_ROOT)/product/$(TARGET_DEVICE)/obj$(if $(MULTIARCH),_mips,)
+
+# Linker flags used to find system libraries.
+MODULE_SYSTEM_LIBRARY_DIR_FLAGS += \
+ -L$(_obj)/lib \
+ -Xlinker -rpath-link=$(_obj)/lib \
+ -L$(TARGET_ROOT)/product/$(TARGET_DEVICE)/system/lib \
+ -Xlinker -rpath-link=$(TARGET_ROOT)/product/$(TARGET_DEVICE)/system/lib
+ifneq ($(wildcard $(TARGET_ROOT)/product/$(TARGET_DEVICE)/vendor),)
+MODULE_SYSTEM_LIBRARY_DIR_FLAGS += \
+ -L$(TARGET_ROOT)/product/$(TARGET_DEVICE)/vendor/lib \
+ -Xlinker -rpath-link=$(TARGET_ROOT)/product/$(TARGET_DEVICE)/vendor/lib
+else
+MODULE_SYSTEM_LIBRARY_DIR_FLAGS += \
+ -L$(TARGET_ROOT)/product/$(TARGET_DEVICE)/system/vendor/lib \
+ -Xlinker -rpath-link=$(TARGET_ROOT)/product/$(TARGET_DEVICE)/system/vendor/lib
+endif
+
+ifeq ($(NDK_ROOT),)
+
+MODULE_INCLUDE_FLAGS := \
+ -isystem $(ANDROID_ROOT)/bionic/libc/arch-mips/include \
+ -isystem $(ANDROID_ROOT)/bionic/libc/kernel/uapi/asm-mips \
+ -isystem $(ANDROID_ROOT)/bionic/libm/include/mips \
+ $(MODULE_INCLUDE_FLAGS)
+
+else # NDK_ROOT
+
+_obj := $(NDK_ROOT)/platforms/$(TARGET_PLATFORM)/arch-mips/usr
+
+MODULE_SYSTEM_LIBRARY_DIR_FLAGS := \
+ -L$(NDK_ROOT)/sources/cxx-stl/llvm-libc++/libs/mips \
+ $(MODULE_SYSTEM_LIBRARY_DIR_FLAGS)
+
+endif # NDK_ROOT
+
+MODULE_LDFLAGS += $(MODULE_SYSTEM_LIBRARY_DIR_FLAGS)
+
+MODULE_EXE_LDFLAGS := \
+ -Bdynamic -nostdlib -Wl,-dynamic-linker,/system/bin/linker -lc \
+ -Wl,-melf32ltsmip
+
+MODULE_LIB_LDFLAGS := $(MODULE_EXE_LDFLAGS)
+# Keeping it same as C for now
+MODULE_LIB_LDFLAGS_CXX := $(MODULE_EXE_LDFLAGS)
+
+MODULE_EXE_CRTBEGIN := $(_obj)/lib/crtbegin_dynamic.o
+MODULE_EXE_CRTEND := $(_obj)/lib/crtend_android.o
+
+MODULE_LIB_CRTBEGIN := $(_obj)/lib/crtbegin_so.o
+MODULE_LIB_CRTEND := $(_obj)/lib/crtend_so.o
+
+MODULE_LIBGCC := $(shell $(patsubst @%,%,$(MODULE_CC)) -print-libgcc-file-name)
+MODULE_LIBGCC := -Wl,--version-script,$(MAKE_TOP)/common/libgcc.lds $(MODULE_LIBGCC)
+
+MODULE_ARCH_TAG := $(_obj)
+
+else
+
+# On Linux, we currently don't need to specify any flags to find the system
+# libraries.
+MODULE_SYSTEM_LIBRARY_DIR_FLAGS :=
+
+MODULE_ARCH_TAG := mipsel
+
+endif # SUPPORT_ANDROID_PLATFORM
+
+ifneq ($(BUILD),debug)
+ifeq ($(USE_LTO),1)
+MODULE_LDFLAGS := \
+ $(sort $(filter-out -W% -D%,$(ALL_CFLAGS) $(ALL_CXXFLAGS))) \
+ $(MODULE_LDFLAGS)
+endif
+endif
+
+MODULE_ARCH_BITNESS := 32
diff --git a/sgx_km/eurasia_km/eurasiacon/build/linux2/moduledefs/target_neutral.mk b/sgx_km/eurasia_km/eurasiacon/build/linux2/moduledefs/target_neutral.mk
new file mode 100644 (file)
index 0000000..b51b614
--- /dev/null
@@ -0,0 +1,45 @@
+########################################################################### ###
+#@File
+#@Copyright     Copyright (c) Imagination Technologies Ltd. All Rights Reserved
+#@License       Dual MIT/GPLv2
+# 
+# The contents of this file are subject to the MIT license as set out below.
+# 
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+# 
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+# 
+# Alternatively, the contents of this file may be used under the terms of
+# the GNU General Public License Version 2 ("GPL") in which case the provisions
+# of GPL are applicable instead of those above.
+# 
+# If you wish to allow use of your version of this file only under the terms of
+# GPL, and not to allow others to use your version of this file under the terms
+# of the MIT license, indicate your decision by deleting the provisions above
+# and replace them with the notice and other provisions required by GPL as set
+# out in the file called "GPL-COPYING" included in this distribution. If you do
+# not delete the provisions above, a recipient may use your version of this file
+# under the terms of either the MIT license or GPL.
+# 
+# This License is also included in this distribution in the file called
+# "MIT-COPYING".
+# 
+# EXCEPT AS OTHERWISE STATED IN A NEGOTIATED AGREEMENT: (A) THE SOFTWARE IS
+# PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
+# BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+# PURPOSE AND NONINFRINGEMENT; AND (B) IN NO EVENT SHALL THE AUTHORS OR
+# COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+### ###########################################################################
+
+MODULE_HOST_BUILD :=
+
+MODULE_BISON_FLAGS := $(ALL_BISON_FLAGS) $($(THIS_MODULE)_bisonflags)
+MODULE_FLEX_FLAGS := $(ALL_FLEX_FLAGS) $($(THIS_MODULE)_flexflags)
diff --git a/sgx_km/eurasia_km/eurasiacon/build/linux2/moduledefs_common.mk b/sgx_km/eurasia_km/eurasiacon/build/linux2/moduledefs_common.mk
new file mode 100644 (file)
index 0000000..55007cf
--- /dev/null
@@ -0,0 +1,164 @@
+########################################################################### ###
+#@Copyright     Copyright (c) Imagination Technologies Ltd. All Rights Reserved
+#@License       Dual MIT/GPLv2
+# 
+# The contents of this file are subject to the MIT license as set out below.
+# 
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+# 
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+# 
+# Alternatively, the contents of this file may be used under the terms of
+# the GNU General Public License Version 2 ("GPL") in which case the provisions
+# of GPL are applicable instead of those above.
+# 
+# If you wish to allow use of your version of this file only under the terms of
+# GPL, and not to allow others to use your version of this file under the terms
+# of the MIT license, indicate your decision by deleting the provisions above
+# and replace them with the notice and other provisions required by GPL as set
+# out in the file called "GPL-COPYING" included in this distribution. If you do
+# not delete the provisions above, a recipient may use your version of this file
+# under the terms of either the MIT license or GPL.
+# 
+# This License is also included in this distribution in the file called
+# "MIT-COPYING".
+# 
+# EXCEPT AS OTHERWISE STATED IN A NEGOTIATED AGREEMENT: (A) THE SOFTWARE IS
+# PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
+# BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+# PURPOSE AND NONINFRINGEMENT; AND (B) IN NO EVENT SHALL THE AUTHORS OR
+# COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+### ###########################################################################
+
+MODULE_OUT := $(RELATIVE_OUT)/$(MODULE_ARCH)
+MODULE_INTERMEDIATES_DIR := $(MODULE_OUT)/intermediates/$(THIS_MODULE)
+
+MODULE_TARGETS :=
+MODULE_CLEAN_TARGETS :=
+MODULE_CLOBBER_TARGETS :=
+
+MODULE_HOST_BUILD :=
+MODULE_CLEAN_TARGETS :=
+MODULE_CLOBBER_TARGETS :=
+
+MODULE_CFLAGS :=
+MODULE_CXXFLAGS :=
+MODULE_LDFLAGS :=
+MODULE_BISON_FLAGS :=
+MODULE_FLEX_FLAGS :=
+MODULE_FLEXXX_FLAGS :=
+
+MODULE_HOST_CFLAGS :=
+MODULE_HOST_CXXFLAGS :=
+MODULE_HOST_LDFLAGS :=
+
+MODULE_ARCH_TAG := $(patsubst i%86,i686,$(subst host_,,$(subst target_,,$(MODULE_ARCH))))
+MODULE_ARCH_BITNESS :=
+
+# Only allow cflags that do not affect code generation. This is to ensure
+# proper binary compatibility when LTO (Link-Time Optimization) is enabled.
+# We make exceptions for the below flags which will all fail linkage in
+# non-LTO mode if incorrectly specified.
+#
+# NOTE: Only used by static_library and objects right now. Other module
+# types should not be affected by complex code generation flags w/ LTO.
+# Set MODULE_CHECK_CFLAGS in the module makefile to enable this check.
+MODULE_CHECK_CFLAGS :=
+MODULE_ALLOWED_CFLAGS := -W% -D% -std=% -fPIC -fPIE -pie -m32
+
+# -L flags for library search dirs: these are relative to $(TOP), unless
+# they're absolute paths
+MODULE_LIBRARY_DIR_FLAGS := $(foreach _path,$($(THIS_MODULE)_libpaths),$(if $(filter /%,$(_path)),-L$(call relative-to-top,$(_path)),-L$(_path)))
+# -L options to find system libraries (may be arch-specific)
+MODULE_SYSTEM_LIBRARY_DIR_FLAGS :=
+# -I flags for header search dirs (same rules as for -L)
+MODULE_INCLUDE_FLAGS := $(foreach _path,$($(THIS_MODULE)_includes),$(if $(filter /%,$(_path)),-I$(call relative-to-top,$(_path)),-I$(_path)))
+
+# These define the rules for finding source files.
+#
+# - If a name begins with a slash, we strip $(TOP) off the front if it
+#   begins with $(TOP). This is so that we don't get really long error
+#   messages from the compiler if the source tree is in a deeply nested
+#   directory, but we still do get absolute paths if you say "make
+#   OUT=/tmp/somewhere"
+#
+# - Otherwise, if a name contains a slash and begins with $(OUT), we leave
+#   it as it is. This is so you can say "module_src :=
+#   $(TARGET_INTERMEDIATES)/something/generated.c"
+#
+# - Otherwise, we assume it's a path referring to somewhere under the
+#   directory containing Linux.mk, and add $(THIS_DIR) to it
+_SOURCES_WITHOUT_SLASH := \
+ $(strip $(foreach _s,$($(THIS_MODULE)_src),$(if $(findstring /,$(_s)),,$(_s))))
+_SOURCES_WITH_SLASH := \
+ $(strip $(foreach _s,$($(THIS_MODULE)_src),$(if $(findstring /,$(_s)),$(_s),)))
+MODULE_SOURCES := $(addprefix $(THIS_DIR)/,$(_SOURCES_WITHOUT_SLASH))
+MODULE_SOURCES += $(call relative-to-top,$(filter /%,$(_SOURCES_WITH_SLASH)))
+
+_RELATIVE_SOURCES_WITH_SLASH := \
+ $(filter-out /%,$(_SOURCES_WITH_SLASH))
+_OUTDIR_RELATIVE_SOURCES_WITH_SLASH := \
+ $(filter $(RELATIVE_OUT)/%,$(_RELATIVE_SOURCES_WITH_SLASH))
+_THISDIR_RELATIVE_SOURCES_WITH_SLASH := \
+ $(filter-out $(RELATIVE_OUT)/%,$(_RELATIVE_SOURCES_WITH_SLASH))
+MODULE_SOURCES += $(_OUTDIR_RELATIVE_SOURCES_WITH_SLASH)
+MODULE_SOURCES += $(addprefix $(THIS_DIR)/,$(_THISDIR_RELATIVE_SOURCES_WITH_SLASH))
+
+# Add generated sources
+MODULE_SOURCES += $(addprefix $(MODULE_OUT)/,$($(THIS_MODULE)_src_relative))
+
+# MODULE_LIBRARY_FLAGS contains the flags to link each library. The rules
+# are:
+#
+#  module_staticlibs := mylib
+#  module_libs := mylib
+#    Use -lmylib
+#
+#  module_extlibs := mylib
+#    Use $(libmylib_ldflags) if that variable is defined (empty counts as
+#    defined). Otherwise use -lmylib
+#
+#  module_libs := :mylib
+#    Use -l:mylib.so
+
+MODULE_LIBRARY_FLAGS := \
+ $(addprefix -l, $($(THIS_MODULE)_staticlibs)) \
+ $(addprefix -l,$($(THIS_MODULE)_libs)) \
+ $(foreach _lib,$($(THIS_MODULE)_extlibs),$(if $(filter undefined,$(origin lib$(_lib)_ldflags)),-l$(_lib),$(lib$(_lib)_ldflags)))
+
+ifeq ($(MODULE_HOST_BUILD),)
+ ifneq ($(SYSROOT),)
+  ifneq ($(SYSROOT),/)
+   ifeq (${MODULE_ARCH_TAG},armhf)
+     MULTIARCH_DIR := arm-linux-gnueabihf
+   else ifeq (${MODULE_ARCH_TAG},i686)
+     MULTIARCH_DIR := i386-linux-gnu
+   else
+     MULTIARCH_DIR := ${MODULE_ARCH_TAG}-linux-gnu
+   endif
+
+   # Restrict pkg-config to looking only in the SYSROOT
+   PKG_CONFIG_LIBDIR := ${SYSROOT}/usr/local/lib/pkgconfig:${SYSROOT}/usr/lib/${MULTIARCH_DIR}/pkgconfig:${SYSROOT}/usr/lib/pkgconfig:${SYSROOT}/usr/share/pkgconfig
+
+   # SYSROOT doesn't always do the right thing.  So explicitly add necessary paths to the link path
+   MODULE_LDFLAGS += -Xlinker -rpath-link=${SYSROOT}/usr/lib/${MULTIARCH_DIR} -Xlinker -rpath-link=${SYSROOT}/lib/${MULTIARCH_DIR} -Xlinker -rpath-link=${SYSROOT}/usr/lib/
+  endif
+ endif
+endif
+
+# pkg-config integration;
+# FIXME: We don't support arbitrary CFLAGS yet (just includes)
+ifneq ($(PKG_CONFIG),)
+$(foreach _package,$($(THIS_MODULE)_packages),\
+ $(eval MODULE_INCLUDE_FLAGS     += `$(PKG_CONFIG) --cflags-only-I $(_package)`)\
+ $(eval MODULE_LIBRARY_FLAGS     += `$(PKG_CONFIG) --libs-only-l $(_package)`)\
+ $(eval MODULE_LIBRARY_DIR_FLAGS += `$(PKG_CONFIG) --libs-only-L $(_package)`))
+endif
diff --git a/sgx_km/eurasia_km/eurasiacon/build/linux2/modules.mk b/sgx_km/eurasia_km/eurasiacon/build/linux2/modules.mk
new file mode 100644 (file)
index 0000000..971f21a
--- /dev/null
@@ -0,0 +1,48 @@
+########################################################################### ###
+#@Title         Module processing
+#@Copyright     Copyright (c) Imagination Technologies Ltd. All Rights Reserved
+#@License       Dual MIT/GPLv2
+# 
+# The contents of this file are subject to the MIT license as set out below.
+# 
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+# 
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+# 
+# Alternatively, the contents of this file may be used under the terms of
+# the GNU General Public License Version 2 ("GPL") in which case the provisions
+# of GPL are applicable instead of those above.
+# 
+# If you wish to allow use of your version of this file only under the terms of
+# GPL, and not to allow others to use your version of this file under the terms
+# of the MIT license, indicate your decision by deleting the provisions above
+# and replace them with the notice and other provisions required by GPL as set
+# out in the file called "GPL-COPYING" included in this distribution. If you do
+# not delete the provisions above, a recipient may use your version of this file
+# under the terms of either the MIT license or GPL.
+# 
+# This License is also included in this distribution in the file called
+# "MIT-COPYING".
+# 
+# EXCEPT AS OTHERWISE STATED IN A NEGOTIATED AGREEMENT: (A) THE SOFTWARE IS
+# PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
+# BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+# PURPOSE AND NONINFRINGEMENT; AND (B) IN NO EVENT SHALL THE AUTHORS OR
+# COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+### ###########################################################################
+
+# Bits for processing $(modules) after reading in each Linux.mk
+
+#$(info ---- $(modules) ----)
+
+$(foreach _m,$(modules),$(if $(filter $(_m),$(ALL_MODULES)),$(error In makefile $(THIS_MAKEFILE): Duplicate module $(_m) (first seen in $(INTERNAL_MAKEFILE_FOR_MODULE_$(_m))) listed in $$(modules)),$(eval $(call register-module,$(_m)))))
+
+ALL_MODULES += $(modules)
diff --git a/sgx_km/eurasia_km/eurasiacon/build/linux2/omap_android/Makefile b/sgx_km/eurasia_km/eurasiacon/build/linux2/omap_android/Makefile
new file mode 100644 (file)
index 0000000..295ec95
--- /dev/null
@@ -0,0 +1,263 @@
+########################################################################### ###
+#@Title         Root makefile for omap4430 Android.  Builds everything else.
+#@Copyright     Copyright (c) Imagination Technologies Ltd. All Rights Reserved
+#@License       Dual MIT/GPLv2
+# 
+# The contents of this file are subject to the MIT license as set out below.
+# 
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+# 
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+# 
+# Alternatively, the contents of this file may be used under the terms of
+# the GNU General Public License Version 2 ("GPL") in which case the provisions
+# of GPL are applicable instead of those above.
+# 
+# If you wish to allow use of your version of this file only under the terms of
+# GPL, and not to allow others to use your version of this file under the terms
+# of the MIT license, indicate your decision by deleting the provisions above
+# and replace them with the notice and other provisions required by GPL as set
+# out in the file called "GPL-COPYING" included in this distribution. If you do
+# not delete the provisions above, a recipient may use your version of this file
+# under the terms of either the MIT license or GPL.
+# 
+# This License is also included in this distribution in the file called
+# "MIT-COPYING".
+# 
+# EXCEPT AS OTHERWISE STATED IN A NEGOTIATED AGREEMENT: (A) THE SOFTWARE IS
+# PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
+# BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+# PURPOSE AND NONINFRINGEMENT; AND (B) IN NO EVENT SHALL THE AUTHORS OR
+# COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+### ###########################################################################
+
+# If a TARGET_PRODUCT is specified but not a TARGET_DEVICE, try to
+# derive the TARGET_DEVICE from TARGET_PRODUCT.
+#
+ifeq ($(TARGET_DEVICE),)
+override TARGET_DEVICE := \
+ $(patsubst mini_%,%,$(patsubst %_full,%,$(TARGET_PRODUCT)))
+endif
+
+ifeq ($(TARGET_DEVICE),)
+override TARGET_DEVICE := jacinto6evm
+endif
+
+# Customize this build as per the TARGET_DEVICE setting
+#
+ifneq ($(filter blaze blaze_tablet panda tuna maguro toro mysid yakju,$(TARGET_DEVICE)),)
+SGXCORE                                                := 540
+SGX_CORE_REV                           := 120
+HAL_VARIANT                                    := omap4
+endif
+ifneq ($(filter blaze.4470 blaze_tablet.4470,$(TARGET_DEVICE)),)
+SGXCORE                                                := 544
+SGX_CORE_REV                           := 112
+HAL_VARIANT                                    := omap4
+endif
+ifneq ($(filter omap5sevm panda5,$(TARGET_DEVICE)),)
+SGXCORE                                                := 544
+SGX_CORE_REV                           := 105
+SGX_FEATURE_MP                         := 1
+SGX_FEATURE_SYSTEM_CACHE       := 1
+SGX_FEATURE_MP_CORE_COUNT      := 2
+HAL_VARIANT                                    := omap5
+
+# OMAP Product Version
+VS_PRODUCT_VERSION                     := 5
+
+# FIXME: Re-enable this ASAP
+SUPPORT_ACTIVE_POWER_MANAGEMENT := 0
+endif
+ifneq ($(filter jacinto6evm am57xevm,$(TARGET_DEVICE)),)
+SGXCORE                                                := 544
+SGX_CORE_REV                           := 116
+SGX_FEATURE_MP                         := 1
+SGX_FEATURE_SYSTEM_CACHE       := 1
+SGX_FEATURE_MP_CORE_COUNT      := 2
+HAL_VARIANT                                    := jacinto6
+
+# OMAP Product Version
+# FIXME: Get rid of this
+VS_PRODUCT_VERSION                     := 5
+
+# FIXME: Re-enable this ASAP
+SUPPORT_ACTIVE_POWER_MANAGEMENT := 0
+
+SUPPORT_PVRSRV_DEVICE_CLASS := 0
+
+endif
+
+ifneq ($(filter am57xevm,$(TARGET_DEVICE)),)
+HAL_VARIANT                                     := am57xevm
+endif
+
+# Handle any TARGET_DEVICE remapping. Not all DDK TARGET_DEVICEs
+# require new Android TARGET_DEVICE builds.
+#
+ifeq ($(TARGET_DEVICE),blaze.4470)
+override TARGET_DEVICE := blaze
+endif
+ifeq ($(TARGET_DEVICE),blaze_tablet.4470)
+override TARGET_DEVICE := blaze_tablet
+endif
+
+SGX_DYNAMIC_TIMING_INFO := 1
+
+SUPPORT_LINUX_USING_WORKQUEUES := 1
+
+SUPPORT_PVRSRV_ANDROID_SYSTRACE := 1
+
+SUPPORT_DMABUF := 1
+
+# Enable PVR_DPF prints for fatal/error
+PVRSRV_NEED_PVR_DPF := 1
+PVRSRV_NEW_PVR_DPF := 1
+
+# TODO: Set SUPPORT_PVRSVR_DEVICE_CLASS to 0
+#DISPLAY_CONTROLLER should not be used for DRM based display controller
+#ifneq ($(SUPPORT_PVRSRV_DEVICE_CLASS),0)
+#DISPLAY_CONTROLLER := omaplfb
+#endif
+SUPPORT_PVRSRV_DEVICE_CLASS := 0
+
+PVR_SYSTEM := omap
+
+KERNEL_CROSS_COMPILE ?= arm-eabi-
+
+# We have more memory on OMAP platforms, so we can spare to make the
+# pool larger, and have higher resolutions which benefit from it.
+#
+PVR_LINUX_MEM_AREA_POOL_MAX_PAGES ?= 10800
+
+SUPPORT_TI_VERSION_STRING := 1
+
+include ../common/android/paths.mk
+include ../common/android/arch.mk
+include ../common/android/features.mk
+
+ifneq ($(strip $(KERNELDIR)),)
+ include ../kernel_version.mk
+ ifeq ($(call kernel-version-at-least,2,6,35),true)
+  PVR_NO_OMAP_TIMER := 1
+ endif
+ ifeq ($(call kernel-version-at-least,2,6,39),true)
+  ifeq ($(LDM_PLATFORM),1)
+   PVR_LDM_PLATFORM_PRE_REGISTERED := 1
+   PVR_LDM_PLATFORM_PRE_REGISTERED_DEV := "\"pvrsrvkm\""
+  endif
+ endif
+ ifeq ($(call kernel-version-at-least,3,0),true)
+  SUPPORT_DC_CMDCOMPLETE_WHEN_NO_LONGER_DISPLAYED := 1
+  SYS_OMAP_HAS_DVFS_FRAMEWORK := 0
+ endif
+ ifeq ($(call kernel-version-at-least,3,8,13),true)
+  PVR_LDM_DEVICE_TREE := 1
+ endif
+else
+ $(warning "KERNELDIR is not set, so can't feature check DVFS or dsscomp.")
+ $(warning "Assuming we want DVFS and dsscomp support.")
+ SUPPORT_DC_CMDCOMPLETE_WHEN_NO_LONGER_DISPLAYED := 1
+ SYS_OMAP_HAS_DVFS_FRAMEWORK := 0
+endif
+
+ifneq ($(LDM_PLATFORM),1)
+SUPPORT_LINUX_USING_WORKQUEUES := 0
+SUPPORT_LINUX_USING_SHARED_WORKQUEUES := 1
+SUPPORT_ACTIVE_POWER_MANAGEMENT := 0
+ifneq ($(SUPPORT_PVRSRV_DEVICE_CLASS),0)
+DISPLAY_CONTROLLER := pvrlfb
+OMAP_NON_FLIP_DISPLAY := 1
+endif
+else # LDM_PLATFORM != 1
+ifneq ($(SUPPORT_PVRSRV_DEVICE_CLASS),0)
+DISPLAY_CONTROLLER := omaplfb
+endif
+endif # LDM_PLATFORM != 1
+
+ifeq ($(SUPPORT_DRI_DRM),1)
+ifeq ($(PVR_LDM_PLATFORM_PRE_REGISTERED),1)
+PVR_DRI_DRM_PLATFORM_DEV := 1
+PVR_DRI_DRM_STATIC_BUS_ID := 1
+PVR_DRI_DRM_DEV_BUS_ID := "\"platform:pvrsrvkm"\"
+else
+PVR_DRI_DRM_NOT_PCI := 1
+KERNEL_COMPONENTS += linux_drm
+endif
+ifneq ($(SUPPORT_PVRSRV_DEVICE_CLASS),0)
+EXTRA_PVRSRVKM_COMPONENTS += $(DISPLAY_CONTROLLER)
+endif
+EXTRA_KBUILD_SOURCE := $(KERNELDIR)
+# FIXME: Only required for comparison with X's KM
+PVR_SECURE_DRM_AUTH_EXPORT := 1
+ifneq ($(OMAP_NON_FLIP_DISPLAY),1)
+PVR_DISPLAY_CONTROLLER_DRM_IOCTL := 1
+endif
+else # SUPPORT_DRI_DRM == 1
+ifneq ($(SUPPORT_PVRSRV_DEVICE_CLASS),0)
+KERNEL_COMPONENTS += $(DISPLAY_CONTROLLER)
+endif
+endif # SUPPORT_DRI_DRM == 1
+
+SUPPORT_ANDROID_OMAP_NV12 := 1
+
+PVR_ANDROID_USE_WINDOW_TRANSFORM_HINT := 1
+
+PVR_ANDROID_PLATFORM_HAS_LINUX_FBDEV := 1
+
+# Handle Google's OMAP-based products
+#
+ifneq ($(filter tuna maguro toro mysid yakju,$(TARGET_DEVICE)),)
+# These default on in tuna_defconfig
+PVRSRV_USSE_EDM_STATUS_DEBUG ?= 1
+PVRSRV_DUMP_MK_TRACE ?= 1
+# Go back to the old compiler for tuna kernel modules
+KERNEL_CROSS_COMPILE := arm-eabi-
+endif
+
+ifeq ($(NO_HARDWARE),1)
+ifeq ($(SUPPORT_DC_CMDCOMPLETE_WHEN_NO_LONGER_DISPLAYED),1)
+$(info WARNING: SUPPORT_DC_CMDCOMPLETE_WHEN_NO_LONGER_DISPLAYED=1 is incompatible with NO_HARDWARE=1)
+$(info WARNING: Setting SUPPORT_DC_CMDCOMPLETE_WHEN_NO_LONGER_DISPLAYED=0 and switching to dc_nohw)
+override SUPPORT_DC_CMDCOMPLETE_WHEN_NO_LONGER_DISPLAYED := 0
+ifneq ($(SUPPORT_PVRSRV_DEVICE_CLASS),0)
+override DISPLAY_CONTROLLER := dc_nohw
+KERNEL_COMPONENTS += dc_nohw
+endif
+endif # SUPPORT_DC_CMDCOMPLETE_WHEN_NO_LONGER_DISPLAYED == 1
+endif # NO_HARDWARE == 1
+
+# we are not using PVR composerhal
+#PVR_ANDROID_COMPOSERHAL ?= omap
+
+include ../config/core.mk
+include ../common/android/extra_config.mk
+include ../common/dridrm.mk
+include ../common/opencl.mk
+include ../common/omap4.mk
+
+# Not all OMAP kernels have a compatible DVFS framework
+#
+$(eval $(call TunableKernelConfigC,SYS_OMAP_HAS_DVFS_FRAMEWORK,))
+
+# If set, services allows two flips to enter the processing queue,
+# and does not add read dependencies to the set of buffers last
+# flipped to. This is necessary for DSS composition on OMAP.
+# 
+$(eval $(call TunableKernelConfigC,SUPPORT_DC_CMDCOMPLETE_WHEN_NO_LONGER_DISPLAYED,))
+
+# On OMAP a TILER-specific NV12 format is supported.
+#
+$(eval $(call TunableUserConfigMake,SUPPORT_ANDROID_OMAP_NV12,))
+
+$(eval $(call TunableUserConfigC,PVR_MUTEXES_COND_USING_PTHREAD_CONDVARS,1))
+
+$(eval $(call TunableKernelConfigC,SUPPORT_TI_VERSION_STRING,))
diff --git a/sgx_km/eurasia_km/eurasiacon/build/linux2/prepare_tree.mk b/sgx_km/eurasia_km/eurasiacon/build/linux2/prepare_tree.mk
new file mode 100644 (file)
index 0000000..75dcca6
--- /dev/null
@@ -0,0 +1,56 @@
+########################################################################### ###
+#@Copyright     Copyright (c) Imagination Technologies Ltd. All Rights Reserved
+#@License       Dual MIT/GPLv2
+# 
+# The contents of this file are subject to the MIT license as set out below.
+# 
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+# 
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+# 
+# Alternatively, the contents of this file may be used under the terms of
+# the GNU General Public License Version 2 ("GPL") in which case the provisions
+# of GPL are applicable instead of those above.
+# 
+# If you wish to allow use of your version of this file only under the terms of
+# GPL, and not to allow others to use your version of this file under the terms
+# of the MIT license, indicate your decision by deleting the provisions above
+# and replace them with the notice and other provisions required by GPL as set
+# out in the file called "GPL-COPYING" included in this distribution. If you do
+# not delete the provisions above, a recipient may use your version of this file
+# under the terms of either the MIT license or GPL.
+# 
+# This License is also included in this distribution in the file called
+# "MIT-COPYING".
+# 
+# EXCEPT AS OTHERWISE STATED IN A NEGOTIATED AGREEMENT: (A) THE SOFTWARE IS
+# PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
+# BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+# PURPOSE AND NONINFRINGEMENT; AND (B) IN NO EVENT SHALL THE AUTHORS OR
+# COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+### ###########################################################################
+
+.PHONY: prepare_tree
+
+prepare_tree:
+
+INTERNAL_INCLUDED_PREPARE_HEADERS :=
+-include eurasiacon/build/linux2/prepare_headers.mk
+ifneq ($(INTERNAL_INCLUDED_PREPARE_HEADERS),true)
+missing_headers := $(strip $(shell test ! -e include4/pvrversion.h && echo true))
+ifdef missing_headers
+$(info )
+$(info ** include4/pvrversion.h is missing, and cannot be rebuilt.)
+$(info ** Cannot continue.)
+$(info )
+$(error Missing headers)
+endif
+endif
diff --git a/sgx_km/eurasia_km/eurasiacon/build/linux2/pvrversion.mk b/sgx_km/eurasia_km/eurasiacon/build/linux2/pvrversion.mk
new file mode 100644 (file)
index 0000000..c56bba7
--- /dev/null
@@ -0,0 +1,53 @@
+########################################################################### ###
+#@Title         Extract info from pvrversion.h
+#@Copyright     Copyright (c) Imagination Technologies Ltd. All Rights Reserved
+#@License       Dual MIT/GPLv2
+# 
+# The contents of this file are subject to the MIT license as set out below.
+# 
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+# 
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+# 
+# Alternatively, the contents of this file may be used under the terms of
+# the GNU General Public License Version 2 ("GPL") in which case the provisions
+# of GPL are applicable instead of those above.
+# 
+# If you wish to allow use of your version of this file only under the terms of
+# GPL, and not to allow others to use your version of this file under the terms
+# of the MIT license, indicate your decision by deleting the provisions above
+# and replace them with the notice and other provisions required by GPL as set
+# out in the file called "GPL-COPYING" included in this distribution. If you do
+# not delete the provisions above, a recipient may use your version of this file
+# under the terms of either the MIT license or GPL.
+# 
+# This License is also included in this distribution in the file called
+# "MIT-COPYING".
+# 
+# EXCEPT AS OTHERWISE STATED IN A NEGOTIATED AGREEMENT: (A) THE SOFTWARE IS
+# PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
+# BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+# PURPOSE AND NONINFRINGEMENT; AND (B) IN NO EVENT SHALL THE AUTHORS OR
+# COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+### ###########################################################################
+
+# Version information
+PVRVERSION_H   := $(TOP)/include4/pvrversion.h
+
+# scripts.mk uses these to set the install script's version suffix
+PVRVERSION_MAJ        := $(shell perl -ne '/\sPVRVERSION_MAJ\s+(\w+)/          and print $$1' $(PVRVERSION_H))
+PVRVERSION_MIN        := $(shell perl -ne '/\sPVRVERSION_MIN\s+(\w+)/          and print $$1' $(PVRVERSION_H))
+PVRVERSION_FAMILY     := $(shell perl -ne '/\sPVRVERSION_FAMILY\s+"(\S+)"/     and print $$1' $(PVRVERSION_H))
+PVRVERSION_BRANCHNAME := $(shell perl -ne '/\sPVRVERSION_BRANCHNAME\s+"(\S+)"/ and print $$1' $(PVRVERSION_H))
+PVRVERSION_BUILD      := $(shell perl -ne '/\sPVRVERSION_BUILD\s+(\w+)/        and print $$1' $(PVRVERSION_H))
+
+PVRVERSION_NUM := $(PVRVERSION_MAJ).$(PVRVERSION_MIN).$(PVRVERSION_BUILD)
+PVRVERSION := "$(PVRVERSION_FAMILY)_$(PVRVERSION_BRANCHNAME)\@$(PVRVERSION_BUILD)"
diff --git a/sgx_km/eurasia_km/eurasiacon/build/linux2/scripts.mk b/sgx_km/eurasia_km/eurasiacon/build/linux2/scripts.mk
new file mode 100644 (file)
index 0000000..9293bd5
--- /dev/null
@@ -0,0 +1,364 @@
+########################################################################### ###
+#@Copyright     Copyright (c) Imagination Technologies Ltd. All Rights Reserved
+#@License       Dual MIT/GPLv2
+# 
+# The contents of this file are subject to the MIT license as set out below.
+# 
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+# 
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+# 
+# Alternatively, the contents of this file may be used under the terms of
+# the GNU General Public License Version 2 ("GPL") in which case the provisions
+# of GPL are applicable instead of those above.
+# 
+# If you wish to allow use of your version of this file only under the terms of
+# GPL, and not to allow others to use your version of this file under the terms
+# of the MIT license, indicate your decision by deleting the provisions above
+# and replace them with the notice and other provisions required by GPL as set
+# out in the file called "GPL-COPYING" included in this distribution. If you do
+# not delete the provisions above, a recipient may use your version of this file
+# under the terms of either the MIT license or GPL.
+# 
+# This License is also included in this distribution in the file called
+# "MIT-COPYING".
+# 
+# EXCEPT AS OTHERWISE STATED IN A NEGOTIATED AGREEMENT: (A) THE SOFTWARE IS
+# PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
+# BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+# PURPOSE AND NONINFRINGEMENT; AND (B) IN NO EVENT SHALL THE AUTHORS OR
+# COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+### ###########################################################################
+
+ifeq ($(SUPPORT_ANDROID_PLATFORM),)
+
+define if-component
+ifneq ($$(filter $(1),$$(COMPONENTS)),)
+M4DEFS += $(2)
+endif
+endef
+
+define if-kernel-component
+ifneq ($$(filter $(1),$$(KERNEL_COMPONENTS)),)
+M4DEFS_K += $(2)
+endif
+endef
+
+# common.m4 lives here
+#
+M4FLAGS := -I$(MAKE_TOP)/scripts
+
+# The driver version is required to rename libraries
+#
+include $(MAKE_TOP)/pvrversion.mk
+
+# These defs are required for both KM and UM install script.
+M4DEFS_K := \
+ -DKM_SUFFIX=ko \
+ -DPVRVERSION="$(PVRVERSION)" \
+ -DPVR_BUILD_DIR=$(PVR_BUILD_DIR) \
+ -DPVRSRV_MODNAME=$(PVRSRV_MODNAME)
+
+ifneq ($(BUFFERCLASS_MODULE),)
+$(eval $(call if-kernel-component,$(BUFFERCLASS_MODULE),\
+ -DBUFFER_CLASS_DEVICE=$(BUFFERCLASS_MODULE)))
+endif
+
+ifneq ($(DISPLAY_CONTROLLER),)
+$(eval $(call if-kernel-component,$(DISPLAY_CONTROLLER),\
+ -DDISPLAY_CONTROLLER=$(DISPLAY_CONTROLLER)))
+endif
+
+ifeq ($(PDUMP),1)
+M4DEFS_K += -DPDUMP=1
+endif
+
+ifeq ($(SUPPORT_DRM),1)
+M4DEFS_K += -DSUPPORT_DRM=1
+ifeq ($(SUPPORT_DRM_DC_MODULE),1)
+M4DEFS_K += -DSUPPORT_DRM_DC_MODULE=1
+endif
+endif
+
+# These defs are either obsolete features, or not derived from
+# user variables
+#
+M4DEFS := \
+ -DLIB_SUFFIX=so \
+ -DSUPPORT_SRVINIT=1 \
+ -DSOLIB_VERSION=$(PVRVERSION_MAJ).$(PVRVERSION_MIN).$(PVRVERSION_BUILD) \
+ -DSUPPORT_UNITTESTS=1
+
+ifeq ($(MESA_EGL),1)
+ M4DEFS += -DSUPPORT_MESA=1
+else
+ ifneq ($(filter xorg,$(COMPONENTS)),)
+  ifneq ($(filter opengl,$(COMPONENTS)),)
+   M4DEFS += -DSUPPORT_MESA=1
+  endif
+ endif
+endif
+
+ifeq ($(SUPPORT_BUILD_LWS),1)
+  M4DEFS += -DLWS_INSTALL_TREE=1
+endif
+
+ifneq ($(DRM_DISPLAY_CONTROLLER),)
+ M4DEFS_K += \
+       -DHAVE_DRM_DISPLAY_MODULE=1 \
+       -DDISPLAY_KERNEL_MODULE=$(DRM_DISPLAY_CONTROLLER) \
+       -DDISPLAY_CONTROLLER=$(DRM_DISPLAY_CONTROLLER)
+else
+ M4DEFS_K += -DDISPLAY_KERNEL_MODULE=$(DISPLAY_CONTROLLER)
+endif
+
+ifeq ($(PVR_LWS_NOBC),1)
+ M4DEFS += -DNO_BUFFER_CLASS_MODULE=1
+endif
+
+# Map COMPONENTS on to SUPPORT_ defs
+#
+$(eval $(call if-component,opengles1,\
+ -DSUPPORT_OPENGLES1=1 -DOGLES1_MODULE=$(opengles1_target) \
+ -DSUPPORT_OPENGLES1_V1_ONLY=$(if $(SUPPORT_OPENGLES1_V1_ONLY),1,0)))
+$(eval $(call if-component,opengles2,\
+ -DSUPPORT_OPENGLES2=1 -DOGLES2_MODULE=$(opengles2_target)))
+$(eval $(call if-component,egl,\
+ -DSUPPORT_LIBEGL=1 -DEGL_MODULE=$(egl_target)))
+$(eval $(call if-component,pvr2d,\
+ -DSUPPORT_LIBPVR2D=1))
+$(eval $(call if-component,glslcompiler,\
+ -DSUPPORT_SOURCE_SHADER=1))
+$(eval $(call if-component,opencl,\
+ -DSUPPORT_OPENCL=1))
+$(eval $(call if-component,opengl,\
+ -DSUPPORT_OPENGL=1))
+$(eval $(call if-component,null_pvr2d_flip,\
+ -DSUPPORT_NULL_PVR2D_FLIP=1))
+$(eval $(call if-component,null_pvr2d_blit,\
+ -DSUPPORT_NULL_PVR2D_BLIT=1))
+$(eval $(call if-component,null_pvr2d_front,\
+ -DSUPPORT_NULL_PVR2D_FRONT=1))
+$(eval $(call if-component,null_pvr2d_linuxfb,\
+ -DSUPPORT_NULL_PVR2D_LINUXFB=1))
+$(eval $(call if-component,null_drm_ws,\
+ -DSUPPORT_NULL_DRM_WS=1))
+$(eval $(call if-component,ews_ws,\
+ -DSUPPORT_EWS=1))
+$(eval $(call if-component,imgtcl,\
+ -DSUPPORT_IMGTCL=1))
+$(eval $(call if-component,ews_wm,\
+ -DSUPPORT_LUA=1))
+$(eval $(call if-component,xmultiegltest,\
+ -DSUPPORT_XUNITTESTS=1))
+$(eval $(call if-component,pvr_conf,\
+ -DSUPPORT_XORG_CONF=1))
+$(eval $(call if-component,graphicshal,\
+ -DSUPPORT_GRAPHICS_HAL=1))
+$(eval $(call if-component,xorg,\
+ -DSUPPORT_XORG=1 \
+ -DXORG_DIR=$(LWS_PREFIX) \
+ -DXORG_EXPLICIT_PVR_SERVICES_LOAD=$(XORG_EXPLICIT_PVR_SERVICES_LOAD)))
+$(eval $(call if-component,surfaceless,\
+ -DSUPPORT_SURFACELESS=1))
+$(eval $(call if-component,wl,\
+ -DSUPPORT_WAYLAND=1))
+
+# These defs are common to all driver builds, and inherited from config.mk
+#
+M4DEFS += \
+ -DPROFILE_COMMON=1 \
+ -DFFGEN_UNIFLEX=1 \
+ -DSUPPORT_SGX_HWPERF=$(SUPPORT_SGX_HWPERF) \
+
+# These are common to some builds, and inherited from config.mk
+#
+ifeq ($(SUPPORT_DRI_DRM),1)
+M4DEFS_K += -DSUPPORT_DRI_DRM=1 -DSUPPORT_DRI_DRM_NOT_PCI=$(PVR_DRI_DRM_NOT_PCI)
+ifeq ($(PVR_DRI_DRM_NOT_PCI),1)
+M4DEFS_K += -DDRM_MODNAME=drm
+endif
+endif
+
+ifeq ($(PVR_REMVIEW),1)
+M4DEFS += -DPVR_REMVIEW=1
+endif
+
+# Build UM script using old scheme using M4
+define create-install-um-script-m4
+$(RELATIVE_OUT)/$(1)/install_um.sh: $(PVRVERSION_H) $(CONFIG_MK)\
+ $(MAKE_TOP)/scripts/common.m4 \
+ $(MAKE_TOP)/$(PVR_BUILD_DIR)/install_um.sh.m4 \
+ | $(RELATIVE_OUT)/$(1)
+       $$(if $(V),,@echo "  GEN     " $$(call relative-to-top,$$@))
+       $(M4) $(M4FLAGS) $(M4DEFS) $(M4DEFS_K) \
+         $(MAKE_TOP)/scripts/common.m4 \
+         $(MAKE_TOP)/$(PVR_BUILD_DIR)/install_um.sh.m4 > $$@
+install_script: $(RELATIVE_OUT)/$(1)/install_um.sh
+endef
+
+$(foreach _t,$(TARGET_ALL_ARCH),$(eval $(call create-install-um-script-m4,$(_t))))
+
+$(TARGET_PRIMARY_OUT)/rc.pvr: \
+ $(PVRVERSION_H) $(CONFIG_MK) $(CONFIG_KERNEL_MK) \
+ $(MAKE_TOP)/scripts/rc.pvr.m4 $(MAKE_TOP)/$(PVR_BUILD_DIR)/rc.pvr.m4 \
+ | $(TARGET_PRIMARY_OUT)
+       $(if $(V),,@echo "  GEN     " $(call relative-to-top,$@))
+       $(M4) $(M4FLAGS) $(M4DEFS) $(M4DEFS_K) $(MAKE_TOP)/scripts/rc.pvr.m4 \
+               $(MAKE_TOP)/$(PVR_BUILD_DIR)/rc.pvr.m4 > $@
+       $(CHMOD) +x $@
+
+init_script: $(TARGET_PRIMARY_OUT)/rc.pvr
+
+endif # ifneq ($(SUPPORT_ANDROID_PLATFORM),)
+
+# This code mimics the way Make processes our implicit/explicit goal list.
+# It tries to build up a list of components that were actually built, from
+# whence an install script is generated.
+#
+ifneq ($(MAKECMDGOALS),)
+BUILT_UM := $(MAKECMDGOALS)
+ifneq ($(filter build components,$(MAKECMDGOALS)),)
+BUILT_UM += $(COMPONENTS)
+endif
+BUILT_UM := $(sort $(filter $(ALL_MODULES) xorg wl surfaceless,$(BUILT_UM)))
+else
+BUILT_UM := $(sort $(COMPONENTS))
+endif
+
+ifneq ($(MAKECMDGOALS),)
+BUILT_KM := $(MAKECMDGOALS)
+ifneq ($(filter build kbuild,$(MAKECMDGOALS)),)
+BUILT_KM += $(KERNEL_COMPONENTS)
+endif
+BUILT_KM := $(sort $(filter $(ALL_MODULES),$(BUILT_KM)))
+else
+BUILT_KM := $(sort $(KERNEL_COMPONENTS))
+endif
+
+INSTALL_UM_MODULES := \
+ $(strip $(foreach _m,$(BUILT_UM),\
+  $(if $(filter doc,$($(_m)_type)),,\
+   $(if $(filter host_%,$($(_m)_arch)),,\
+      $(if $($(_m)_install_path),$(_m),\
+       $(warning WARNING: UM $(_m)_install_path not defined))))))
+
+# Build up a list of installable shared libraries. The shared_library module
+# type is specially guaranteed to define $(_m)_target, even if the Linux.mk
+# itself didn't. The list is formatted with <module>:<target> pairs e.g.
+# "moduleA:libmoduleA.so moduleB:libcustom.so" for later processing.
+ALL_SHARED_INSTALLABLE := \
+ $(sort $(foreach _a,$(ALL_MODULES),\
+  $(if $(filter shared_library,$($(_a)_type)),$(_a):$($(_a)_target),)))
+
+# Handle implicit install dependencies. Executables and shared libraries may
+# be linked against other shared libraries. Avoid requiring the user to
+# specify the program's binary dependencies explicitly with $(m)_install_extra
+INSTALL_UM_MODULES := \
+ $(sort $(INSTALL_UM_MODULES) \
+  $(foreach _a,$(ALL_SHARED_INSTALLABLE),\
+   $(foreach _m,$(INSTALL_UM_MODULES),\
+    $(foreach _l,$($(_m)_libs),\
+     $(if $(filter lib$(_l).so,$(word 2,$(subst :, ,$(_a)))),\
+                              $(word 1,$(subst :, ,$(_a))))))))
+
+# Add explicit dependencies that must be installed
+INSTALL_UM_MODULES := \
+ $(sort $(INSTALL_UM_MODULES) \
+  $(foreach _m,$(INSTALL_UM_MODULES),\
+   $($(_m)_install_dependencies)))
+
+define calculate-um-fragments
+# Work out which modules are required for this arch.
+INSTALL_UM_MODULES_$(1) := \
+ $$(strip $$(foreach _m,$(INSTALL_UM_MODULES),\
+  $$(if $$(filter $(1),$$(INTERNAL_ARCH_LIST_FOR_$$(_m))),$$(_m))))
+
+INSTALL_UM_FRAGMENTS_$(1) := $$(foreach _m,$$(INSTALL_UM_MODULES_$(1)),$(RELATIVE_OUT)/$(1)/intermediates/$$(_m)/.install)
+
+.PHONY: install_um_$(1)_debug
+install_um_$(1)_debug: $$(INSTALL_UM_FRAGMENTS_$(1))
+       $(CAT) $$^
+endef
+
+$(foreach _t,$(TARGET_ALL_ARCH) target_neutral,$(eval $(call calculate-um-fragments,$(_t))))
+
+INSTALL_KM_FRAGMENTS := \
+ $(strip $(foreach _m,$(BUILT_KM),\
+  $(if $(filter-out kernel_module,$($(_m)_type)),,\
+   $(if $($(_m)_install_path),\
+    $(TARGET_PRIMARY_OUT)/intermediates/$(_m)/.install,\
+     $(warning WARNING: $(_m)_install_path not defined)))))
+
+.PHONY: install_um_debug
+install_um_debug: $(INSTALL_UM_FRAGMENTS)
+       $(CAT) $^
+
+.PHONY: install_km_debug
+install_km_debug: $(INSTALL_KM_FRAGMENTS)
+       $(CAT) $^
+
+ifneq ($(INSTALL_KM_FRAGMENTS),)
+$(TARGET_PRIMARY_OUT)/install_km.sh: $(INSTALL_KM_FRAGMENTS) $(CONFIG_KERNEL_MK) | $(TARGET_PRIMARY_OUT)
+       $(if $(V),,@echo "  GEN     " $(call relative-to-top,$@))
+       $(ECHO) KERNELVERSION=$(KERNEL_ID)                            >  $@
+       $(ECHO) MOD_DESTDIR=$(patsubst %/,%,$(PVRSRV_MODULE_BASEDIR)) >> $@
+ifeq ($(SUPPORT_ANDROID_PLATFORM),)
+       $(ECHO) check_module_directory /lib/modules/$(KERNEL_ID)      >> $@
+endif
+       $(CAT) $(INSTALL_KM_FRAGMENTS)                                >> $@
+install_script_km: $(TARGET_PRIMARY_OUT)/install_km.sh
+endif
+
+# Build UM script using new scheme which does not use M4 for anything
+# (Only works for Android and target_neutral right now.)
+define create-install-um-script
+ifneq ($$(INSTALL_UM_FRAGMENTS_$(1)),)
+$(RELATIVE_OUT)/$(1)/install_um.sh: $$(INSTALL_UM_FRAGMENTS_$(1)) | $(RELATIVE_OUT)/$(1)
+       $(if $(V),,@echo "  GEN     " $$(call relative-to-top,$$@))
+       $(CAT) $$(INSTALL_UM_FRAGMENTS_$(1)) > $$@
+install_script: $(RELATIVE_OUT)/$(1)/install_um.sh
+endif
+endef
+$(eval $(call create-install-um-script,target_neutral))
+
+ifneq ($(SUPPORT_ANDROID_PLATFORM),)
+$(foreach _t,$(TARGET_ALL_ARCH),$(eval $(call create-install-um-script,$(_t))))
+endif
+
+# Build the top-level install script that drives the install.
+ifneq ($(SUPPORT_ANDROID_PLATFORM),)
+install_sh_template := $(MAKE_TOP)/common/android/install.sh.tpl
+else
+install_sh_template := $(MAKE_TOP)/scripts/install.sh.tpl
+endif
+
+$(RELATIVE_OUT)/install.sh: $(PVRVERSION_H) | $(RELATIVE_OUT)
+# In customer packages only one of config.mk or config_kernel.mk will exist.
+# We can depend on either one, as long as we rebuild the install script when
+# the config options it uses change.
+$(RELATIVE_OUT)/install.sh: $(call if-exists,$(CONFIG_MK),$(CONFIG_KERNEL_MK))
+$(RELATIVE_OUT)/install.sh: $(install_sh_template)
+       $(if $(V),,@echo "  GEN     " $(call relative-to-top,$@))
+       $(ECHO) 's/\[PVRVERSION\]/$(subst /,\/,$(PVRVERSION))/g;'           > $(RELATIVE_OUT)/install.sh.sed
+       $(ECHO) 's/\[PVRBUILD\]/$(BUILD)/g;'                               >> $(RELATIVE_OUT)/install.sh.sed
+       $(ECHO) 's/\[PRIMARY_ARCH\]/$(TARGET_PRIMARY_ARCH)/g;'             >> $(RELATIVE_OUT)/install.sh.sed
+       $(ECHO) 's/\[ARCHITECTURES\]/$(TARGET_ALL_ARCH) target_neutral/g;' >> $(RELATIVE_OUT)/install.sh.sed
+       $(ECHO) 's/\[LWS_PREFIX\]/$(subst /,\/,$(LWS_PREFIX))/g;'          >> $(RELATIVE_OUT)/install.sh.sed
+       $(ECHO) 's/\[APP_DESTDIR\]/$(subst /,\/,$(APP_DESTDIR))/g;'        >> $(RELATIVE_OUT)/install.sh.sed
+       $(ECHO) 's/\[BIN_DESTDIR\]/$(subst /,\/,$(BIN_DESTDIR))/g;'        >> $(RELATIVE_OUT)/install.sh.sed
+       $(ECHO) 's/\[SHADER_DESTDIR\]/$(subst /,\/,$(SHADER_DESTDIR))/g;'  >> $(RELATIVE_OUT)/install.sh.sed
+       $(ECHO) 's/\[SHLIB_DESTDIR\]/$(subst /,\/,$(SHLIB_DESTDIR))/g;'    >> $(RELATIVE_OUT)/install.sh.sed
+       @sed -f $(RELATIVE_OUT)/install.sh.sed $< > $@
+       $(CHMOD) +x $@
+       $(RM) $(RELATIVE_OUT)/install.sh.sed
+install_script: $(RELATIVE_OUT)/install.sh
+install_script_km: $(RELATIVE_OUT)/install.sh
diff --git a/sgx_km/eurasia_km/eurasiacon/build/linux2/shared_library.mk b/sgx_km/eurasia_km/eurasiacon/build/linux2/shared_library.mk
new file mode 100644 (file)
index 0000000..43e708d
--- /dev/null
@@ -0,0 +1,210 @@
+########################################################################### ###
+#@Copyright     Copyright (c) Imagination Technologies Ltd. All Rights Reserved
+#@License       Dual MIT/GPLv2
+# 
+# The contents of this file are subject to the MIT license as set out below.
+# 
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+# 
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+# 
+# Alternatively, the contents of this file may be used under the terms of
+# the GNU General Public License Version 2 ("GPL") in which case the provisions
+# of GPL are applicable instead of those above.
+# 
+# If you wish to allow use of your version of this file only under the terms of
+# GPL, and not to allow others to use your version of this file under the terms
+# of the MIT license, indicate your decision by deleting the provisions above
+# and replace them with the notice and other provisions required by GPL as set
+# out in the file called "GPL-COPYING" included in this distribution. If you do
+# not delete the provisions above, a recipient may use your version of this file
+# under the terms of either the MIT license or GPL.
+# 
+# This License is also included in this distribution in the file called
+# "MIT-COPYING".
+# 
+# EXCEPT AS OTHERWISE STATED IN A NEGOTIATED AGREEMENT: (A) THE SOFTWARE IS
+# PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
+# BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+# PURPOSE AND NONINFRINGEMENT; AND (B) IN NO EVENT SHALL THE AUTHORS OR
+# COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+### ###########################################################################
+
+ifeq ($($(THIS_MODULE)_target),)
+$(THIS_MODULE)_target := $(THIS_MODULE).so
+endif
+
+MODULE_TARGETS := $(addprefix $(MODULE_OUT)/,$(if $($(THIS_MODULE)_target),$($(THIS_MODULE)_target),$(THIS_MODULE).so))
+$(call module-info-line,shared library: $(MODULE_TARGETS))
+
+include eurasiacon/build/linux2/_objects.mk
+
+# Objects built by other modules
+MODULE_EXTERNAL_OBJECTS := $($(THIS_MODULE)_obj)
+
+# Determine whether the C++ compiler is needed for linking.
+MODULE_NEEDS_CXX_LINKER := $(if $($(THIS_MODULE)_force_cxx_linker),true,)
+ifeq ($($(THIS_MODULE)_force_cxx_linker),)
+# If this module contains any C++ source files, MODULE_NEEDS_CXX_LINKER is
+# set, because we have to use the C++ compiler to link it
+MODULE_NEEDS_CXX_LINKER := $(if $(strip $(MODULE_CXX_SOURCES)),true,)
+endif
+ifeq ($(MODULE_NEEDS_CXX_LINKER),true)
+ALL_CXX_MODULES += $(THIS_MODULE)
+endif
+
+MODULE_ALL_OBJECTS := \
+ $(MODULE_C_OBJECTS) $(MODULE_CXX_OBJECTS) \
+ $(MODULE_EXTERNAL_OBJECTS)
+
+# Libraries that can be made, which this module links with
+MODULE_BUILT_LIBRARIES := $(patsubst %,$(MODULE_OUT)/lib%.so,$($(THIS_MODULE)_libs))
+MODULE_BUILT_STATIC_LIBRARIES := $(patsubst %,$(MODULE_OUT)/lib%.a,$($(THIS_MODULE)_staticlibs))
+
+# Disallow undefined symbols, except for X.org video drivers
+MODULE_LDFLAGS := \
+ $(if $($(THIS_MODULE)_allow_undefined),,-Wl,--no-undefined) $(MODULE_LDFLAGS)
+MODULE_HOST_LDFLAGS := \
+ $(if $($(THIS_MODULE)_allow_undefined),,-Wl,--no-undefined) $(MODULE_HOST_LDFLAGS)
+
+# Android may need to have DT_SONAME turned on
+ifeq ($(PVR_ANDROID_NEEDS_SONAME),1)
+ MODULE_LDFLAGS += -Wl,--soname=$($(THIS_MODULE)_target)
+endif
+
+MODULE_SONAME :=
+ifneq ($(DONT_USE_SONAMES),1)
+ ifneq ($($(THIS_MODULE)_soname),)
+  MODULE_SONAME := $($(THIS_MODULE)_soname)
+  MODULE_LDFLAGS += -Wl,--soname=$(MODULE_SONAME)
+ endif
+endif
+
+ifeq ($(SUPPORT_BUILD_LWS),1)
+ ifneq ($(MODULE_ARCH),$(TARGET_PRIMARY_ARCH))
+  lws_libdir := $(LWS_PREFIX)/lib32
+ else
+  lws_libdir := $(LWS_PREFIX)/lib
+ endif
+ MODULE_LIBRARY_DIR_FLAGS += -L $(MODULE_OUT)$(lws_libdir)
+ MODULE_LIBRARY_DIR_FLAGS += -Wl,-rpath-link=$(MODULE_OUT)$(lws_libdir)
+ ifeq ($(filter $(lws_libdir),/usr/lib /usr/lib32),)
+  MODULE_LIBRARY_DIR_FLAGS += -Wl,-rpath=$(lws_libdir)
+ endif
+endif
+
+ifneq ($($(THIS_MODULE)_libpaths_relative),)
+MODULE_LIBRARY_DIR_FLAGS += $(addprefix -L $(MODULE_OUT)/,$($(THIS_MODULE)_libpaths_relative))
+endif
+
+ifneq ($($(THIS_MODULE)_whole_extlibs),)
+MODULE_LDFLAGS += -Wl,--whole-archive $(addprefix -l,$($(THIS_MODULE)_whole_extlibs)) -Wl,--no-whole-archive
+endif
+
+ifneq ($(MODULE_HOST_BUILD),true)
+# Unusually, we define $(THIS_MODULE)_install_path if the user didn't, as we
+# can't use MODULE_INSTALL_PATH in the scripts.mk logic.
+ifeq ($($(THIS_MODULE)_install_path),)
+$(THIS_MODULE)_install_path := \
+ $${SHLIB_DESTDIR}/$(patsubst $(MODULE_OUT)/%,%,$(MODULE_TARGETS))
+endif
+MODULE_INSTALL_PATH := $($(THIS_MODULE)_install_path)
+endif
+
+MODULE_EXPORTS=$($(THIS_MODULE)_exports)
+
+.PHONY: $(THIS_MODULE)
+$(THIS_MODULE): $(MODULE_TARGETS)
+
+# This is the rule used to link the final shared library
+.DELETE_ON_ERROR: $(MODULE_TARGETS)
+$(MODULE_TARGETS): MODULE_CC := $(MODULE_CC)
+$(MODULE_TARGETS): MODULE_CXX := $(MODULE_CXX)
+$(MODULE_TARGETS): MODULE_LDFLAGS := $(MODULE_LDFLAGS)
+$(MODULE_TARGETS): MODULE_HOST_LDFLAGS := $(MODULE_HOST_LDFLAGS)
+$(MODULE_TARGETS): MODULE_CFLAGS := -fPIC $(MODULE_CFLAGS)
+$(MODULE_TARGETS): MODULE_HOST_CFLAGS := -fPIC $(MODULE_HOST_CFLAGS)
+$(MODULE_TARGETS): CHECKEXPORTS_DIR := $(MODULE_INTERMEDIATES_DIR)
+$(MODULE_TARGETS): MODULE_LIBRARY_DIR_FLAGS := $(MODULE_LIBRARY_DIR_FLAGS)
+$(MODULE_TARGETS): MODULE_LIBRARY_FLAGS := $(MODULE_LIBRARY_FLAGS)
+$(MODULE_TARGETS): MODULE_ALL_OBJECTS := $(MODULE_ALL_OBJECTS)
+$(MODULE_TARGETS): MODULE_SONAME := $(MODULE_SONAME)
+$(MODULE_TARGETS): MODULE_LIB_LDFLAGS := $(MODULE_LIB_LDFLAGS)
+$(MODULE_TARGETS): MODULE_LIB_CRTBEGIN := $(MODULE_LIB_CRTBEGIN)
+$(MODULE_TARGETS): MODULE_LIB_CRTEND := $(MODULE_LIB_CRTEND)
+$(MODULE_TARGETS): MODULE_LIBGCC := $(MODULE_LIBGCC)
+$(MODULE_TARGETS): MODULE_EXPORTS := $(MODULE_EXPORTS)
+ifeq ($(MODULE_HOST_BUILD),)
+ ifneq ($(PKG_CONFIG_ENV_VAR),)
+  $(MODULE_TARGETS): export PKG_CONFIG_TOP_BUILD_DIR := $(abspath $(MODULE_OUT))
+  $(MODULE_TARGETS): export $(PKG_CONFIG_ENV_VAR) := $(abspath $(MODULE_OUT)/pkgconfig)
+ else ifneq ($(PKG_CONFIG_LIBDIR),)
+  $(MODULE_TARGETS): export PKG_CONFIG_LIBDIR := $(PKG_CONFIG_LIBDIR)
+  $(MODULE_TARGETS): export PKG_CONFIG_PATH := $(PKG_CONFIG_PATH)
+  $(MODULE_TARGETS): export PKG_CONFIG_ALLOW_SYSTEM_LIBS := 1
+  $(MODULE_TARGETS): export PKG_CONFIG_SYSROOT_DIR := $(PKG_CONFIG_SYSROOT_DIR)
+ endif
+endif
+$(MODULE_TARGETS): export PKG_CONFIG_SYSROOT_DIR := $(PKG_CONFIG_SYSROOT_DIR)
+$(MODULE_TARGETS): $(MODULE_BUILT_LIBRARIES) $(MODULE_BUILT_STATIC_LIBRARIES)
+$(MODULE_TARGETS): $(MODULE_ALL_OBJECTS) $(THIS_MAKEFILE)
+
+ifeq ($(MODULE_HOST_BUILD),true)
+ifeq ($(MODULE_NEEDS_CXX_LINKER),true)
+       $(host-shared-library-cxx-from-o)
+else
+       $(host-shared-library-from-o)
+endif
+ifeq ($(DEBUGLINK),1)
+       $(host-copy-debug-information)
+       $(host-strip-debug-information)
+       $(host-add-debuglink)
+endif
+else # MODULE_HOST_BUILD
+ifeq ($(MODULE_NEEDS_CXX_LINKER),true)
+       $(target-shared-library-cxx-from-o)
+else
+       $(target-shared-library-from-o)
+endif
+ifneq ($(MODULE_SONAME),)
+       $(LN) $@ $@.1
+endif
+ifeq ($(DEBUGLINK),1)
+       $(target-copy-debug-information)
+       $(target-strip-debug-information)
+       $(target-add-debuglink)
+endif
+       $(call check-exports,$(MODULE_EXPORTS))
+endif # MODULE_HOST_BUILD
+
+ifneq ($(MODULE_HOST_BUILD),true)
+$(MODULE_INTERMEDIATES_DIR)/.install: MODULE_TYPE := $($(THIS_MODULE)_type)
+$(MODULE_INTERMEDIATES_DIR)/.install: MODULE_INSTALL_PATH := $(MODULE_INSTALL_PATH)
+$(MODULE_INTERMEDIATES_DIR)/.install: MODULE_TARGETS := $(patsubst $(MODULE_OUT)/%,%,$(MODULE_TARGETS))
+$(MODULE_INTERMEDIATES_DIR)/.install: MODULE_SONAME := $(MODULE_SONAME)
+$(MODULE_INTERMEDIATES_DIR)/.install: $(THIS_MAKEFILE) | $(MODULE_INTERMEDIATES_DIR)
+$(MODULE_INTERMEDIATES_DIR)/.install: $(PVRVERSION_H)
+ifeq ($(MODULE_SONAME),)
+       @echo 'install_file $(MODULE_TARGETS) $(MODULE_INSTALL_PATH) "$(MODULE_TYPE)" 0644 0:0' >$@
+else
+       @echo 'install_file $(MODULE_TARGETS) $(MODULE_INSTALL_PATH).$(PVRVERSION_NUM) "$(MODULE_TYPE)" 0644 0:0' >$@
+       @echo 'link_library $(MODULE_INSTALL_PATH).$(PVRVERSION_NUM)' >>$@
+endif
+endif
+
+
+MODULE_CFLAGS += -fPIC -pie
+MODULE_CXXFLAGS += -fPIC -pie
+MODULE_HOST_CFLAGS += -fPIC -pie
+MODULE_HOST_CXXFLAGS += -fPIC -pie
+
+$(foreach _src_file,$(MODULE_C_SOURCES),$(eval $(call rule-for-objects-o-from-one-c,$(MODULE_INTERMEDIATES_DIR)/$(notdir $(_src_file:.c=.o)),$(_src_file))))
+$(foreach _src_file,$(MODULE_CXX_SOURCES),$(eval $(call rule-for-objects-o-from-one-cxx,$(MODULE_INTERMEDIATES_DIR)/$(notdir $(_src_file:.cpp=.o)),$(_src_file))))
diff --git a/sgx_km/eurasia_km/eurasiacon/build/linux2/this_makefile.mk b/sgx_km/eurasia_km/eurasiacon/build/linux2/this_makefile.mk
new file mode 100644 (file)
index 0000000..c312001
--- /dev/null
@@ -0,0 +1,68 @@
+########################################################################### ###
+#@Copyright     Copyright (c) Imagination Technologies Ltd. All Rights Reserved
+#@License       Dual MIT/GPLv2
+# 
+# The contents of this file are subject to the MIT license as set out below.
+# 
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+# 
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+# 
+# Alternatively, the contents of this file may be used under the terms of
+# the GNU General Public License Version 2 ("GPL") in which case the provisions
+# of GPL are applicable instead of those above.
+# 
+# If you wish to allow use of your version of this file only under the terms of
+# GPL, and not to allow others to use your version of this file under the terms
+# of the MIT license, indicate your decision by deleting the provisions above
+# and replace them with the notice and other provisions required by GPL as set
+# out in the file called "GPL-COPYING" included in this distribution. If you do
+# not delete the provisions above, a recipient may use your version of this file
+# under the terms of either the MIT license or GPL.
+# 
+# This License is also included in this distribution in the file called
+# "MIT-COPYING".
+# 
+# EXCEPT AS OTHERWISE STATED IN A NEGOTIATED AGREEMENT: (A) THE SOFTWARE IS
+# PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
+# BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+# PURPOSE AND NONINFRINGEMENT; AND (B) IN NO EVENT SHALL THE AUTHORS OR
+# COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+### ###########################################################################
+
+# Find out the path of the Linux.mk makefile currently being processed, and
+# set paths used by the build rules
+
+# This magic is used so we can use this_makefile.mk twice: first when reading
+# in each Linux.mk, and then again when generating rules. There we set
+# $(THIS_MAKEFILE), and $(REMAINING_MAKEFILES) should be empty
+ifneq ($(strip $(REMAINING_MAKEFILES)),)
+
+# Absolute path to the Linux.mk being processed
+THIS_MAKEFILE := $(firstword $(REMAINING_MAKEFILES))
+
+# The list of makefiles left to process
+REMAINING_MAKEFILES := $(wordlist 2,$(words $(REMAINING_MAKEFILES)),$(REMAINING_MAKEFILES))
+
+else
+
+# When generating rules, we should have read in every Linux.mk
+$(if $(INTERNAL_INCLUDED_ALL_MAKEFILES),,$(error No makefiles left in $$(REMAINING_MAKEFILES), but $$(INTERNAL_INCLUDED_ALL_MAKEFILES) is not set))
+
+endif
+
+# Path to the directory containing Linux.mk
+THIS_DIR := $(patsubst %/,%,$(dir $(THIS_MAKEFILE)))
+ifeq ($(strip $(THIS_DIR)),)
+$(error Empty $$(THIS_DIR) for makefile "$(THIS_MAKEFILE)")
+endif
+
+modules :=
diff --git a/sgx_km/eurasia_km/eurasiacon/build/linux2/tools/cc-check.sh b/sgx_km/eurasia_km/eurasiacon/build/linux2/tools/cc-check.sh
new file mode 100755 (executable)
index 0000000..9566c73
--- /dev/null
@@ -0,0 +1,119 @@
+#!/bin/sh
+########################################################################### ###
+#@Title         Test the nature of the C compiler.
+#@Copyright     Copyright (c) Imagination Technologies Ltd. All Rights Reserved
+#@License       Dual MIT/GPLv2
+# 
+# The contents of this file are subject to the MIT license as set out below.
+# 
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+# 
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+# 
+# Alternatively, the contents of this file may be used under the terms of
+# the GNU General Public License Version 2 ("GPL") in which case the provisions
+# of GPL are applicable instead of those above.
+# 
+# If you wish to allow use of your version of this file only under the terms of
+# GPL, and not to allow others to use your version of this file under the terms
+# of the MIT license, indicate your decision by deleting the provisions above
+# and replace them with the notice and other provisions required by GPL as set
+# out in the file called "GPL-COPYING" included in this distribution. If you do
+# not delete the provisions above, a recipient may use your version of this file
+# under the terms of either the MIT license or GPL.
+# 
+# This License is also included in this distribution in the file called
+# "MIT-COPYING".
+# 
+# EXCEPT AS OTHERWISE STATED IN A NEGOTIATED AGREEMENT: (A) THE SOFTWARE IS
+# PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
+# BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+# PURPOSE AND NONINFRINGEMENT; AND (B) IN NO EVENT SHALL THE AUTHORS OR
+# COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+### ###########################################################################
+
+LANG=C
+export LANG
+
+usage() {
+       echo "usage: $0 [--64] [--clang] --cc CC [--out OUT] [cflag]"
+       exit 1
+}
+
+check_clang() {
+       $CC -dM -E - </dev/null | grep __clang__ >/dev/null 2>&1
+       if [ "$?" = "0" ]; then
+               # Clang must be passed a program with a main() that returns 0.
+               # It will produce an error if main() is improperly specified.
+               IS_CLANG=1
+               TEST_PROGRAM="int main(void){return 0;}"
+       else
+               # If we're not clang, assume we're GCC. GCC needs to be passed
+               # a program with a faulty return in main() so that another
+               # warning (unrelated to the flag being tested) is emitted.
+               # This will cause GCC to warn about the unsupported warning flag.
+               IS_CLANG=0
+               TEST_PROGRAM="int main(void){return;}"
+       fi
+}
+
+do_cc() {
+       echo "$TEST_PROGRAM" | $CC -W -Wall $3 -xc -c - -o $1 >$2 2>&1
+}
+
+while [ 1 ]; do
+       if [ "$1" = "--64" ]; then
+               [ -z $CLANG ] && BIT_CHECK=1
+       elif [ "$1" = "--clang" ]; then
+               [ -z $BIT_CHECK ] && CLANG=1
+       elif [ "$1" = "--cc" ]; then
+               [ "x$2" = "x" ] && usage
+               CC="$2" && shift
+       elif [ "$1" = "--out" ]; then
+               [ "x$2" = "x" ] && usage
+               OUT="$2" && shift
+       elif [ "${1#--}" != "$1" ]; then
+               usage
+       else
+               break
+       fi
+       shift
+done
+
+[ "x$CC" = "x" ] && usage
+[ "x$CLANG" = "x" -a "x$OUT" = "x" ] && usage
+ccof=$OUT/cc-sanity-check
+log=${ccof}.log
+
+check_clang
+
+if [ "x$BIT_CHECK" = "x1" ]; then
+       do_cc $ccof $log ""
+       file $ccof | grep 64-bit >/dev/null 2>&1
+       [ "$?" = "0" ] && echo true || echo false
+elif [ "x$CLANG" = "x1" ]; then
+       [ "x$IS_CLANG" = "x1" ] && echo true || echo false
+else
+       [ "x$1" = "x" ] && usage
+       do_cc $ccof $log $1
+       if [ "$?" = "0" ]; then
+               # compile passed, but was the warning unrecognized?
+               if [ "x$IS_CLANG" = "x1" ]; then
+                       grep "^warning: unknown warning option '$1'" $log >/dev/null 2>&1
+               else
+                       grep "^cc1: warning: unrecognized command line option \"$1\"" $log >/dev/null 2>&1
+               fi
+               [ "$?" = "1" ] && echo $1
+       fi
+fi
+
+rm -f $ccof $log
+exit 0
diff --git a/sgx_km/eurasia_km/eurasiacon/build/linux2/toplevel.mk b/sgx_km/eurasia_km/eurasiacon/build/linux2/toplevel.mk
new file mode 100644 (file)
index 0000000..ac84bb8
--- /dev/null
@@ -0,0 +1,312 @@
+########################################################################### ###
+#@Copyright     Copyright (c) Imagination Technologies Ltd. All Rights Reserved
+#@License       Dual MIT/GPLv2
+# 
+# The contents of this file are subject to the MIT license as set out below.
+# 
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+# 
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+# 
+# Alternatively, the contents of this file may be used under the terms of
+# the GNU General Public License Version 2 ("GPL") in which case the provisions
+# of GPL are applicable instead of those above.
+# 
+# If you wish to allow use of your version of this file only under the terms of
+# GPL, and not to allow others to use your version of this file under the terms
+# of the MIT license, indicate your decision by deleting the provisions above
+# and replace them with the notice and other provisions required by GPL as set
+# out in the file called "GPL-COPYING" included in this distribution. If you do
+# not delete the provisions above, a recipient may use your version of this file
+# under the terms of either the MIT license or GPL.
+# 
+# This License is also included in this distribution in the file called
+# "MIT-COPYING".
+# 
+# EXCEPT AS OTHERWISE STATED IN A NEGOTIATED AGREEMENT: (A) THE SOFTWARE IS
+# PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
+# BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+# PURPOSE AND NONINFRINGEMENT; AND (B) IN NO EVENT SHALL THE AUTHORS OR
+# COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+### ###########################################################################
+
+# Define the default goal. This masks a previous definition of the default
+# goal in Makefile.config, which must match this one
+.PHONY: build
+build: components kbuild
+
+ifeq ($(OUT),)
+$(error "Must specify output directory with OUT=")
+endif
+
+ifeq ($(TOP),)
+$(error "Must specify root of source tree with TOP=")
+endif
+$(call directory-must-exist,$(TOP))
+
+# Output directory for configuration, object code,
+# final programs/libraries, and install/rc scripts.
+#
+
+# RELATIVE_OUT is relative only if it's under $(TOP)
+RELATIVE_OUT           := $(patsubst $(TOP)/%,%,$(OUT))
+CONFIG_MK              := $(RELATIVE_OUT)/config.mk
+CONFIG_H               := $(RELATIVE_OUT)/config.h
+CONFIG_KERNEL_MK       := $(RELATIVE_OUT)/config_kernel.mk
+CONFIG_KERNEL_H                := $(RELATIVE_OUT)/config_kernel.h
+MAKE_TOP               := eurasiacon/build/linux2
+THIS_MAKEFILE          := (top-level makefiles)
+
+# Convert commas to spaces in $(D). This is so you can say "make
+# D=config-changes,freeze-config" and have $(filter config-changes,$(D))
+# still work.
+comma := ,
+empty :=
+space := $(empty) $(empty)
+override D := $(subst $(comma),$(space),$(D))
+
+include $(MAKE_TOP)/defs.mk
+
+ifneq ($(INTERNAL_CLOBBER_ONLY),true)
+# Create the out directory
+#
+$(shell mkdir -p $(OUT))
+
+# If these generated files differ from any pre-existing ones,
+# replace them, causing affected parts of the driver to rebuild.
+#
+_want_config_diff := $(filter config-changes,$(D))
+_freeze_config := $(strip $(filter freeze-config,$(D)))
+_updated_config_files := $(shell \
+    $(if $(_want_config_diff),rm -f $(OUT)/config.diff;,) \
+       for file in $(CONFIG_MK) $(CONFIG_H) \
+                               $(CONFIG_KERNEL_MK) $(CONFIG_KERNEL_H); do \
+               diff -U 0 $$file $$file.new \
+                       >>$(if $(_want_config_diff),$(OUT)/config.diff,/dev/null) 2>/dev/null \
+               && rm -f $$file.new \
+               || echo $$file; \
+       done)
+
+ifneq ($(_want_config_diff),)
+# We send the diff to stderr so it isn't captured by $(shell)
+$(shell [ -s $(OUT)/config.diff ] && echo >&2 "Configuration changed in $(RELATIVE_OUT):" && cat >&2 $(OUT)/config.diff)
+endif
+
+ifneq ($(_freeze_config),)
+$(if $(_updated_config_files),$(error Configuration change in $(RELATIVE_OUT) prevented by D=freeze-config),)
+endif
+
+# Update the config, if changed
+$(foreach _f,$(_updated_config_files), \
+       $(shell mv -f $(_f).new $(_f) >/dev/null 2>/dev/null))
+
+endif # INTERNAL_CLOBBER_ONLY
+
+MAKEFLAGS := -Rr --no-print-directory
+
+ifneq ($(INTERNAL_CLOBBER_ONLY),true)
+
+# This is so you can say "find $(TOP) -name Linux.mk > /tmp/something; export
+# ALL_MAKEFILES=/tmp/something; make" and avoid having to run find. This is
+# handy if your source tree is mounted over NFS or something
+override ALL_MAKEFILES := $(call relative-to-top,$(if $(strip $(ALL_MAKEFILES)),$(shell cat $(ALL_MAKEFILES)),$(shell find $(TOP) -type f -name Linux.mk -print -o -type d -name '.*' -prune)))
+ifeq ($(strip $(ALL_MAKEFILES)),)
+$(info ** Unable to find any Linux.mk files under $$(TOP). This could mean that)
+$(info ** there are no makefiles, or that ALL_MAKEFILES is set in the environment)
+$(info ** and points to a nonexistent or empty file.)
+$(error No makefiles)
+endif
+
+else # clobber-only
+ALL_MAKEFILES :=
+endif
+
+unexport ALL_MAKEFILES
+
+REMAINING_MAKEFILES := $(ALL_MAKEFILES)
+ALL_MODULES :=
+INTERNAL_INCLUDED_ALL_MAKEFILES :=
+
+# Please do not change the format of the following lines
+-include $(CONFIG_KERNEL_MK)
+
+# If we haven't set host/target archs, set some sensible defaults now.
+# This allows things like prune.sh to work
+ifeq ($(HOST_PRIMARY_ARCH),)
+ifneq ($(FORCE_ARCH),)
+HOST_PRIMARY_ARCH := host_i386
+HOST_32BIT_ARCH := host_i386
+endif
+endif
+
+# Output directory for configuration, object code,
+# final programs/libraries, and install/rc scripts.
+HOST_OUT             := $(RELATIVE_OUT)/$(HOST_PRIMARY_ARCH)
+HOST_32BIT_OUT       := $(RELATIVE_OUT)/$(HOST_32BIT_ARCH)
+TARGET_OUT           := $(RELATIVE_OUT)/$(TARGET_PRIMARY_ARCH)
+TARGET_PRIMARY_OUT   := $(RELATIVE_OUT)/$(TARGET_PRIMARY_ARCH)
+TARGET_NEUTRAL_OUT   := $(RELATIVE_OUT)/target_neutral
+GENERATED_CODE_OUT   := $(TARGET_NEUTRAL_OUT)/intermediates
+DOCS_OUT             := $(RELATIVE_OUT)/doc
+
+# Make directories that won't otherwise be made.
+# (This is for the install scripts and other things that aren't made by
+# normal module rules.)
+TARGET_OUT_DIRECTORIES := $(addprefix $(RELATIVE_OUT)/,$(TARGET_ALL_ARCH)) $(TARGET_NEUTRAL_OUT) $(DOCS_OUT)
+.SECONDARY: $(TARGET_OUT_DIRECTORIES)
+$(TARGET_OUT_DIRECTORIES):
+       $(make-directory)
+
+ifneq ($(INTERNAL_CLOBBER_ONLY),true)
+# These files may not exist in GPL km source packages
+-include $(MAKE_TOP)/llvm.mk
+endif
+
+include $(MAKE_TOP)/commands.mk
+
+# We don't need to include this if we're just doing a clean or a clobber
+#
+ifneq ($(INTERNAL_CLOBBER_ONLY),true)
+include $(MAKE_TOP)/buildvars.mk
+endif
+
+include $(MAKE_TOP)/pvrversion.mk
+
+ifeq ($(INTERNAL_CLOBBER_ONLY)$(SUPPORT_ANDROID_PLATFORM),)
+ # doing a Linux build.  We need to worry about sysroots.
+
+ ifneq ($(SUPPORT_BUILD_LWS),)
+  -include $(MAKE_TOP)/xorgconf.mk
+
+ else ifneq ($(SYSROOT),)
+  LWS_PREFIX ?= /usr
+
+  ALL_CFLAGS      += --sysroot=${SYSROOT}
+  ALL_CXXFLAGS    += --sysroot=${SYSROOT}
+  ALL_LDFLAGS     += --sysroot=${SYSROOT}
+
+  PKG_CONFIG_SYSROOT_DIR := ${SYSROOT}
+
+  ifneq ($(SYSROOT),/)
+   # Override PKG_CONFIG_PATH to prevent additional host paths from being
+   # searched
+   PKG_CONFIG_PATH :=
+  endif
+ endif
+endif
+
+HOST_INTERMEDIATES := $(HOST_OUT)/intermediates
+TARGET_INTERMEDIATES := $(TARGET_OUT)/intermediates
+
+# Include each Linux.mk, then include modules.mk to save some information
+# about each module
+include $(foreach _Linux.mk,$(ALL_MAKEFILES),$(MAKE_TOP)/this_makefile.mk $(_Linux.mk) $(MAKE_TOP)/modules.mk)
+
+ifeq ($(strip $(REMAINING_MAKEFILES)),)
+INTERNAL_INCLUDED_ALL_MAKEFILES := true
+else
+$(error Impossible: $(words $(REMAINING_MAKEFILES)) makefiles were mysteriously ignored when reading $$(ALL_MAKEFILES))
+endif
+
+# Compute the isystem paths passed in via SYS_INCLUDES. We'll use this in
+# the module target_xxx makefiles to filter duplicate -isystem and -I flags,
+# to ensure the module can always override the include precedence. (Also
+# calculate any 'residual' non-include flags, as we need to put them back.)
+SYS_INCLUDES_ISYSTEM := \
+ $(subst -isystem,,$(filter -isystem%,$(subst -isystem ,-isystem,$(SYS_INCLUDES))))
+SYS_INCLUDES_RESIDUAL := \
+ $(strip $(filter-out -isystem%,$(subst -isystem ,-isystem,$(SYS_INCLUDES))))
+
+# At this point, all Linux.mks have been included. Now generate rules to build
+# each module: for each module in $(ALL_MODULES), set per-makefile variables
+$(foreach _m,$(ALL_MODULES),$(eval $(call process-module,$(_m))))
+
+.PHONY: kbuild install
+kbuild install:
+
+ifneq ($(INTERNAL_CLOBBER_ONLY),true)
+-include $(MAKE_TOP)/scripts.mk
+-include $(MAKE_TOP)/kbuild/kbuild.mk
+endif
+# We won't depend on 'build' here so that people can build subsets of
+# components and still have the install script attempt to install the
+# subset.
+install:
+       @if [ ! -d "$(DISCIMAGE)" -a -z "$(INSTALL_TARGET)" ]; then \
+               echo; \
+               echo "** DISCIMAGE was not set or does not point to a valid directory."; \
+               echo "** Either use INSTALL_TARGET or set DISCIMAGE."; \
+               echo "** Cannot continue with install."; \
+               echo; \
+               exit 1; \
+       fi
+       @if [ ! -f $(RELATIVE_OUT)/install.sh ]; then \
+               echo; \
+               echo "** install.sh not found in $(TARGET_OUT)."; \
+               echo "** Cannot continue with install."; \
+               echo; \
+               exit 1; \
+       fi
+       @cd $(RELATIVE_OUT) && ./install.sh
+
+.PHONY: uninstall
+uninstall: install_script
+uninstall:
+       @if [ ! -d "$(DISCIMAGE)" -a -z "$(INSTALL_TARGET)" ]; then \
+               echo; \
+               echo "** DISCIMAGE was not set or does not point to a valid directory."; \
+               echo "** Either use INSTALL_TARGET or set DISCIMAGE."; \
+               echo "** Cannot continue with uninstall."; \
+               echo; \
+               exit 1; \
+       fi
+       @if [ ! -f $(RELATIVE_OUT)/install.sh ]; then \
+               echo; \
+               echo "** install.sh not found in $(TARGET_OUT)."; \
+               echo "** Cannot continue with uninstall."; \
+               echo; \
+               exit 1; \
+       fi
+       @cd $(RELATIVE_OUT) && ./install.sh -u
+
+# You can say 'make all_modules' to attempt to make everything, or 'make
+# components' to only make the things which are listed (in the per-build
+# makefiles) as components of the build.
+.PHONY: all_modules all_docs components
+all_modules: $(ALL_MODULES)
+all_docs: ;
+components: $(COMPONENTS)
+docs: $(DOCS)
+
+# Cleaning
+.PHONY: clean clobber
+clean: MODULE_DIRS_TO_REMOVE := $(HOST_OUT) $(HOST_32BIT_OUT) \
+  $(TARGET_OUT_DIRECTORIES)
+clean:
+       $(clean-dirs)
+clobber: MODULE_DIRS_TO_REMOVE := $(OUT)
+clobber:
+       $(clean-dirs)
+
+# Saying 'make clean-MODULE' removes the intermediates for MODULE.
+# clobber-MODULE deletes the output files as well
+clean-%:
+       $(if $(V),,@echo "  RM      " $(call relative-to-top,$(INTERNAL_CLEAN_TARGETS_FOR_$*)))
+       $(RM) -rf $(INTERNAL_CLEAN_TARGETS_FOR_$*)
+clobber-%:
+       $(if $(V),,@echo "  RM      " $(call relative-to-top,$(INTERNAL_CLOBBER_TARGETS_FOR_$*)))
+       $(RM) -rf $(INTERNAL_CLOBBER_TARGETS_FOR_$*)
+
+include $(MAKE_TOP)/bits.mk
+
+# D=nobuild stops the build before any recipes are run. This line should
+# come at the end of this makefile.
+$(if $(filter nobuild,$(D)),$(error D=nobuild given),)
diff --git a/sgx_km/eurasia_km/include4/dbgdrvif.h b/sgx_km/eurasia_km/include4/dbgdrvif.h
new file mode 100644 (file)
index 0000000..b5edb5a
--- /dev/null
@@ -0,0 +1,382 @@
+/*************************************************************************/ /*!
+@Title          Debug driver
+@Copyright      Copyright (c) Imagination Technologies Ltd. All Rights Reserved
+@Description    Debug Driver Interface
+@License        Dual MIT/GPLv2
+
+The contents of this file are subject to the MIT license as set out below.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+Alternatively, the contents of this file may be used under the terms of
+the GNU General Public License Version 2 ("GPL") in which case the provisions
+of GPL are applicable instead of those above.
+
+If you wish to allow use of your version of this file only under the terms of
+GPL, and not to allow others to use your version of this file under the terms
+of the MIT license, indicate your decision by deleting the provisions above
+and replace them with the notice and other provisions required by GPL as set
+out in the file called "GPL-COPYING" included in this distribution. If you do
+not delete the provisions above, a recipient may use your version of this file
+under the terms of either the MIT license or GPL.
+
+This License is also included in this distribution in the file called
+"MIT-COPYING".
+
+EXCEPT AS OTHERWISE STATED IN A NEGOTIATED AGREEMENT: (A) THE SOFTWARE IS
+PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
+BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+PURPOSE AND NONINFRINGEMENT; AND (B) IN NO EVENT SHALL THE AUTHORS OR
+COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+*/ /**************************************************************************/
+
+#ifndef _DBGDRVIF_
+#define _DBGDRVIF_
+
+
+#if defined(__linux__)
+
+#define FILE_DEVICE_UNKNOWN             0
+#define METHOD_BUFFERED                 0
+#define FILE_ANY_ACCESS                 0
+
+#define CTL_CODE( DeviceType, Function, Method, Access ) (Function) 
+#define MAKEIOCTLINDEX(i)      ((i) & 0xFFF)
+
+#else
+
+#include "ioctldef.h"
+
+#endif
+
+/*****************************************************************************
+ Stream mode stuff.
+*****************************************************************************/
+#define DEBUG_CAPMODE_FRAMED                   0x00000001UL
+#define DEBUG_CAPMODE_CONTINUOUS               0x00000002UL
+#define DEBUG_CAPMODE_HOTKEY                   0x00000004UL
+
+#define DEBUG_OUTMODE_STANDARDDBG              0x00000001UL
+#define DEBUG_OUTMODE_MONO                             0x00000002UL
+#define DEBUG_OUTMODE_STREAMENABLE             0x00000004UL
+#define DEBUG_OUTMODE_ASYNC                            0x00000008UL
+#define DEBUG_OUTMODE_SGXVGA            0x00000010UL
+
+#define DEBUG_FLAGS_USE_NONPAGED_MEM   0x00000001UL
+#define DEBUG_FLAGS_NO_BUF_EXPANDSION  0x00000002UL
+#define DEBUG_FLAGS_ENABLESAMPLE               0x00000004UL
+#define DEBUG_FLAGS_READONLY                   0x00000008UL
+#define DEBUG_FLAGS_WRITEONLY                  0x00000010UL
+
+#define DEBUG_FLAGS_TEXTSTREAM                 0x80000000UL
+
+/*****************************************************************************
+ Debug level control. Only bothered with the first 12 levels, I suspect you
+ get the idea...
+*****************************************************************************/
+#define DEBUG_LEVEL_0                                  0x00000001UL
+#define DEBUG_LEVEL_1                                  0x00000003UL
+#define DEBUG_LEVEL_2                                  0x00000007UL
+#define DEBUG_LEVEL_3                                  0x0000000FUL
+#define DEBUG_LEVEL_4                                  0x0000001FUL
+#define DEBUG_LEVEL_5                                  0x0000003FUL
+#define DEBUG_LEVEL_6                                  0x0000007FUL
+#define DEBUG_LEVEL_7                                  0x000000FFUL
+#define DEBUG_LEVEL_8                                  0x000001FFUL
+#define DEBUG_LEVEL_9                                  0x000003FFUL
+#define DEBUG_LEVEL_10                                 0x000007FFUL
+#define DEBUG_LEVEL_11                                 0x00000FFFUL
+
+#define DEBUG_LEVEL_SEL0                               0x00000001UL
+#define DEBUG_LEVEL_SEL1                               0x00000002UL
+#define DEBUG_LEVEL_SEL2                               0x00000004UL
+#define DEBUG_LEVEL_SEL3                               0x00000008UL
+#define DEBUG_LEVEL_SEL4                               0x00000010UL
+#define DEBUG_LEVEL_SEL5                               0x00000020UL
+#define DEBUG_LEVEL_SEL6                               0x00000040UL
+#define DEBUG_LEVEL_SEL7                               0x00000080UL
+#define DEBUG_LEVEL_SEL8                               0x00000100UL
+#define DEBUG_LEVEL_SEL9                               0x00000200UL
+#define DEBUG_LEVEL_SEL10                              0x00000400UL
+#define DEBUG_LEVEL_SEL11                              0x00000800UL
+
+/*****************************************************************************
+ IOCTL values.
+*****************************************************************************/
+#define DEBUG_SERVICE_IOCTL_BASE               0x800UL
+#define DEBUG_SERVICE_CREATESTREAM             CTL_CODE(FILE_DEVICE_UNKNOWN, DEBUG_SERVICE_IOCTL_BASE + 0x01, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define DEBUG_SERVICE_DESTROYSTREAM            CTL_CODE(FILE_DEVICE_UNKNOWN, DEBUG_SERVICE_IOCTL_BASE + 0x02, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define DEBUG_SERVICE_GETSTREAM                        CTL_CODE(FILE_DEVICE_UNKNOWN, DEBUG_SERVICE_IOCTL_BASE + 0x03, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define DEBUG_SERVICE_WRITESTRING              CTL_CODE(FILE_DEVICE_UNKNOWN, DEBUG_SERVICE_IOCTL_BASE + 0x04, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define DEBUG_SERVICE_READSTRING               CTL_CODE(FILE_DEVICE_UNKNOWN, DEBUG_SERVICE_IOCTL_BASE + 0x05, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define DEBUG_SERVICE_WRITE                            CTL_CODE(FILE_DEVICE_UNKNOWN, DEBUG_SERVICE_IOCTL_BASE + 0x06, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define DEBUG_SERVICE_READ                             CTL_CODE(FILE_DEVICE_UNKNOWN, DEBUG_SERVICE_IOCTL_BASE + 0x07, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define DEBUG_SERVICE_SETDEBUGMODE             CTL_CODE(FILE_DEVICE_UNKNOWN, DEBUG_SERVICE_IOCTL_BASE + 0x08, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define DEBUG_SERVICE_SETDEBUGOUTMODE  CTL_CODE(FILE_DEVICE_UNKNOWN, DEBUG_SERVICE_IOCTL_BASE + 0x09, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define DEBUG_SERVICE_SETDEBUGLEVEL            CTL_CODE(FILE_DEVICE_UNKNOWN, DEBUG_SERVICE_IOCTL_BASE + 0x0A, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define DEBUG_SERVICE_SETFRAME                 CTL_CODE(FILE_DEVICE_UNKNOWN, DEBUG_SERVICE_IOCTL_BASE + 0x0B, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define DEBUG_SERVICE_GETFRAME                 CTL_CODE(FILE_DEVICE_UNKNOWN, DEBUG_SERVICE_IOCTL_BASE + 0x0C, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define DEBUG_SERVICE_OVERRIDEMODE             CTL_CODE(FILE_DEVICE_UNKNOWN, DEBUG_SERVICE_IOCTL_BASE + 0x0D, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define DEBUG_SERVICE_DEFAULTMODE              CTL_CODE(FILE_DEVICE_UNKNOWN, DEBUG_SERVICE_IOCTL_BASE + 0x0E, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define DEBUG_SERVICE_GETSERVICETABLE  CTL_CODE(FILE_DEVICE_UNKNOWN, DEBUG_SERVICE_IOCTL_BASE + 0x0F, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define DEBUG_SERVICE_WRITE2                   CTL_CODE(FILE_DEVICE_UNKNOWN, DEBUG_SERVICE_IOCTL_BASE + 0x10, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define DEBUG_SERVICE_WRITESTRINGCM            CTL_CODE(FILE_DEVICE_UNKNOWN, DEBUG_SERVICE_IOCTL_BASE + 0x11, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define DEBUG_SERVICE_WRITECM                  CTL_CODE(FILE_DEVICE_UNKNOWN, DEBUG_SERVICE_IOCTL_BASE + 0x12, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define DEBUG_SERVICE_SETMARKER                        CTL_CODE(FILE_DEVICE_UNKNOWN, DEBUG_SERVICE_IOCTL_BASE + 0x13, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define DEBUG_SERVICE_GETMARKER                        CTL_CODE(FILE_DEVICE_UNKNOWN, DEBUG_SERVICE_IOCTL_BASE + 0x14, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define DEBUG_SERVICE_ISCAPTUREFRAME   CTL_CODE(FILE_DEVICE_UNKNOWN, DEBUG_SERVICE_IOCTL_BASE + 0x15, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define DEBUG_SERVICE_WRITELF                  CTL_CODE(FILE_DEVICE_UNKNOWN, DEBUG_SERVICE_IOCTL_BASE + 0x16, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define DEBUG_SERVICE_READLF                   CTL_CODE(FILE_DEVICE_UNKNOWN, DEBUG_SERVICE_IOCTL_BASE + 0x17, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define DEBUG_SERVICE_WAITFOREVENT             CTL_CODE(FILE_DEVICE_UNKNOWN, DEBUG_SERVICE_IOCTL_BASE + 0x18, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define DEBUG_SERVICE_SETCONNNOTIFY            CTL_CODE(FILE_DEVICE_UNKNOWN, DEBUG_SERVICE_IOCTL_BASE + 0x19, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+
+typedef enum _DBG_EVENT_
+{
+       DBG_EVENT_STREAM_DATA = 1
+} DBG_EVENT;
+
+
+/*****************************************************************************
+ In/Out Structures
+*****************************************************************************/
+typedef struct _DBG_IN_CREATESTREAM_
+{
+       union
+       {
+               IMG_CHAR *pszName;
+               IMG_UINT64 ui64Name;
+       } u;
+       IMG_UINT32 ui32Pages;
+       IMG_UINT32 ui32CapMode;
+       IMG_UINT32 ui32OutMode;
+}DBG_IN_CREATESTREAM, *PDBG_IN_CREATESTREAM;
+
+typedef struct _DBG_IN_FINDSTREAM_
+{
+       union
+       {
+               IMG_CHAR *pszName;
+               IMG_UINT64 ui64Name;
+       }u;
+       IMG_BOOL bResetStream;
+}DBG_IN_FINDSTREAM, *PDBG_IN_FINDSTREAM;
+
+typedef struct _DBG_IN_WRITESTRING_
+{
+       union
+       {
+               IMG_CHAR *pszString;
+               IMG_UINT64 ui64String;
+       } u;
+       IMG_SID hStream;
+       IMG_UINT32 ui32Level;
+}DBG_IN_WRITESTRING, *PDBG_IN_WRITESTRING;
+
+typedef struct _DBG_IN_READSTRING_
+{
+       union
+       {
+               IMG_CHAR *pszString;
+               IMG_UINT64 ui64String;
+       } u;
+       IMG_SID hStream;
+       IMG_UINT32 ui32StringLen;
+} DBG_IN_READSTRING, *PDBG_IN_READSTRING;
+
+typedef struct _DBG_IN_SETDEBUGMODE_
+{
+       IMG_SID hStream;
+       IMG_UINT32 ui32Mode;
+       IMG_UINT32 ui32Start;
+       IMG_UINT32 ui32End;
+       IMG_UINT32 ui32SampleRate;
+} DBG_IN_SETDEBUGMODE, *PDBG_IN_SETDEBUGMODE;
+
+typedef struct _DBG_IN_SETDEBUGOUTMODE_
+{
+       IMG_SID hStream;
+       IMG_UINT32 ui32Mode;
+} DBG_IN_SETDEBUGOUTMODE, *PDBG_IN_SETDEBUGOUTMODE;
+
+typedef struct _DBG_IN_SETDEBUGLEVEL_
+{
+       IMG_SID hStream;
+       IMG_UINT32 ui32Level;
+} DBG_IN_SETDEBUGLEVEL, *PDBG_IN_SETDEBUGLEVEL;
+
+typedef struct _DBG_IN_SETFRAME_
+{
+       IMG_SID hStream;
+       IMG_UINT32 ui32Frame;
+} DBG_IN_SETFRAME, *PDBG_IN_SETFRAME;
+
+typedef struct _DBG_IN_WRITE_
+{
+       union
+       {
+               IMG_UINT8 *pui8InBuffer;
+               IMG_UINT64 ui64InBuffer;
+       } u;
+       IMG_SID hStream;
+       IMG_UINT32 ui32Level;
+       IMG_UINT32 ui32TransferSize;
+} DBG_IN_WRITE, *PDBG_IN_WRITE;
+
+typedef struct _DBG_IN_READ_
+{
+       union
+       {
+               IMG_UINT8 *pui8OutBuffer;
+               IMG_UINT64 ui64OutBuffer;
+       } u;
+       IMG_SID hStream;
+       IMG_BOOL bReadInitBuffer;
+       IMG_UINT32 ui32OutBufferSize;
+} DBG_IN_READ, *PDBG_IN_READ;
+
+typedef struct _DBG_IN_OVERRIDEMODE_
+{
+       IMG_SID hStream;
+       IMG_UINT32 ui32Mode;
+} DBG_IN_OVERRIDEMODE, *PDBG_IN_OVERRIDEMODE;
+
+typedef struct _DBG_IN_ISCAPTUREFRAME_
+{
+       IMG_SID hStream;
+       IMG_BOOL bCheckPreviousFrame;
+} DBG_IN_ISCAPTUREFRAME, *PDBG_IN_ISCAPTUREFRAME;
+
+typedef struct _DBG_IN_SETMARKER_
+{
+       IMG_SID hStream;
+       IMG_UINT32 ui32Marker;
+} DBG_IN_SETMARKER, *PDBG_IN_SETMARKER;
+
+typedef struct _DBG_IN_WRITE_LF_
+{
+       union
+       {
+               IMG_UINT8 *pui8InBuffer;
+               IMG_UINT64 ui64InBuffer;
+       } u;
+       IMG_UINT32 ui32Flags;
+       IMG_SID    hStream;
+       IMG_UINT32 ui32Level;
+       IMG_UINT32 ui32BufferSize;
+} DBG_IN_WRITE_LF, *PDBG_IN_WRITE_LF;
+
+/*
+       Flags for above struct
+*/
+#define WRITELF_FLAGS_RESETBUF         0x00000001UL
+
+/*
+       Common control structure (don't duplicate control in main stream
+       and init phase stream).
+*/
+typedef struct _DBG_STREAM_CONTROL_
+{
+       IMG_BOOL   bInitPhaseComplete;          /*!< init phase has finished */
+       IMG_UINT32 ui32Flags;                   /*!< flags (see DEBUG_FLAGS above) */
+
+       IMG_UINT32 ui32CapMode;                 /*!< capturing mode framed/hot key */
+       IMG_UINT32 ui32OutMode;                 /*!< output mode, e.g. files */
+       IMG_UINT32 ui32DebugLevel;
+       IMG_UINT32 ui32DefaultMode;
+       IMG_UINT32 ui32Start;                   /*!< first capture frame */
+       IMG_UINT32 ui32End;                             /*!< last frame */
+       IMG_UINT32 ui32Current;                 /*!< current frame */
+       IMG_UINT32 ui32SampleRate;              /*!< capture frequency */
+       IMG_UINT32 ui32Reserved;
+} DBG_STREAM_CONTROL, *PDBG_STREAM_CONTROL;
+/*
+       Per-buffer control structure.
+*/
+#define MAX_STREAM_NAME_LENGTH 30
+typedef struct _DBG_STREAM_
+{
+       struct _DBG_STREAM_ *psNext;
+       struct _DBG_STREAM_ *psInitStream;
+       DBG_STREAM_CONTROL *psCtrl;
+       IMG_BOOL   bCircularAllowed;
+       IMG_PVOID  pvBase;
+       IMG_UINT32 ui32Size;
+       IMG_UINT32 ui32RPtr;
+       IMG_UINT32 ui32WPtr;
+       IMG_UINT32 ui32DataWritten;
+       IMG_UINT32 ui32Marker;                  /*!< marker for file splitting */
+       IMG_UINT32 ui32InitPhaseWOff;   /*!< snapshot offset for init phase end for follow-on pdump */
+       IMG_CHAR szName[MAX_STREAM_NAME_LENGTH];                /* Give this a size, some compilers don't like [] */
+} DBG_STREAM,*PDBG_STREAM;
+
+/*
+ * Allows dbgdrv to notify services when events happen, e.g. pdump.exe starts.
+ * (better than resetting psDevInfo->psKernelCCBInfo->ui32CCBDumpWOff = 0
+ * in SGXGetClientInfoKM.)
+ */
+typedef struct _DBGKM_CONNECT_NOTIFIER_
+{
+       IMG_VOID (IMG_CALLCONV *pfnConnectNotifier)             (IMG_VOID);
+} DBGKM_CONNECT_NOTIFIER, *PDBGKM_CONNECT_NOTIFIER;
+
+/*****************************************************************************
+ Kernel mode service table
+*****************************************************************************/
+typedef struct _DBGKM_SERVICE_TABLE_
+{
+       IMG_UINT32 ui32Size;
+       IMG_VOID *      (IMG_CALLCONV *pfnCreateStream)                 (IMG_CHAR * pszName,IMG_UINT32 ui32CapMode,IMG_UINT32 ui32OutMode,IMG_UINT32 ui32Flags,IMG_UINT32 ui32Pages);
+       IMG_VOID        (IMG_CALLCONV *pfnDestroyStream)                (PDBG_STREAM psStream);
+       IMG_VOID *      (IMG_CALLCONV *pfnFindStream)                   (IMG_CHAR * pszName, IMG_BOOL bResetInitBuffer);
+       IMG_UINT32      (IMG_CALLCONV *pfnWriteString)                  (PDBG_STREAM psStream,IMG_CHAR * pszString,IMG_UINT32 ui32Level);
+       IMG_UINT32      (IMG_CALLCONV *pfnReadString)                   (PDBG_STREAM psStream,IMG_CHAR * pszString,IMG_UINT32 ui32Limit);
+       IMG_UINT32      (IMG_CALLCONV *pfnWriteBIN)                             (PDBG_STREAM psStream,IMG_UINT8 *pui8InBuf,IMG_UINT32 ui32InBuffSize,IMG_UINT32 ui32Level);
+       IMG_UINT32      (IMG_CALLCONV *pfnReadBIN)                              (PDBG_STREAM psStream,IMG_BOOL bReadInitBuffer, IMG_UINT32 ui32OutBufferSize,IMG_UINT8 *pui8OutBuf);
+       IMG_VOID        (IMG_CALLCONV *pfnSetCaptureMode)               (PDBG_STREAM psStream,IMG_UINT32 ui32CapMode,IMG_UINT32 ui32Start,IMG_UINT32 ui32Stop,IMG_UINT32 ui32SampleRate);
+       IMG_VOID        (IMG_CALLCONV *pfnSetOutputMode)                (PDBG_STREAM psStream,IMG_UINT32 ui32OutMode);
+       IMG_VOID        (IMG_CALLCONV *pfnSetDebugLevel)                (PDBG_STREAM psStream,IMG_UINT32 ui32DebugLevel);
+       IMG_VOID        (IMG_CALLCONV *pfnSetFrame)                             (PDBG_STREAM psStream,IMG_UINT32 ui32Frame);
+       IMG_UINT32      (IMG_CALLCONV *pfnGetFrame)                             (PDBG_STREAM psStream);
+       IMG_VOID        (IMG_CALLCONV *pfnOverrideMode)                 (PDBG_STREAM psStream,IMG_UINT32 ui32Mode);
+       IMG_VOID        (IMG_CALLCONV *pfnDefaultMode)                  (PDBG_STREAM psStream);
+       IMG_UINT32      (IMG_CALLCONV *pfnDBGDrivWrite2)                (PDBG_STREAM psStream,IMG_UINT8 *pui8InBuf,IMG_UINT32 ui32InBuffSize,IMG_UINT32 ui32Level);
+       IMG_UINT32      (IMG_CALLCONV *pfnWriteStringCM)                (PDBG_STREAM psStream,IMG_CHAR * pszString,IMG_UINT32 ui32Level);
+       IMG_UINT32      (IMG_CALLCONV *pfnWriteBINCM)                   (PDBG_STREAM psStream,IMG_UINT8 *pui8InBuf,IMG_UINT32 ui32InBuffSize,IMG_UINT32 ui32Level);
+       IMG_VOID        (IMG_CALLCONV *pfnSetMarker)                    (PDBG_STREAM psStream,IMG_UINT32 ui32Marker);
+       IMG_UINT32      (IMG_CALLCONV *pfnGetMarker)                    (PDBG_STREAM psStream);
+       IMG_VOID        (IMG_CALLCONV *pfnStartInitPhase)               (PDBG_STREAM psStream);
+       IMG_VOID        (IMG_CALLCONV *pfnStopInitPhase)                (PDBG_STREAM psStream);
+       IMG_BOOL        (IMG_CALLCONV *pfnIsCaptureFrame)               (PDBG_STREAM psStream, IMG_BOOL bCheckPreviousFrame);
+       IMG_UINT32      (IMG_CALLCONV *pfnWriteLF)                              (PDBG_STREAM psStream, IMG_UINT8 *pui8InBuf, IMG_UINT32 ui32InBuffSize, IMG_UINT32 ui32Level, IMG_UINT32 ui32Flags);
+       IMG_UINT32      (IMG_CALLCONV *pfnReadLF)                               (PDBG_STREAM psStream, IMG_UINT32 ui32OutBuffSize, IMG_UINT8 *pui8OutBuf);
+       IMG_UINT32      (IMG_CALLCONV *pfnGetStreamOffset)              (PDBG_STREAM psStream);
+       IMG_VOID        (IMG_CALLCONV *pfnSetStreamOffset)              (PDBG_STREAM psStream, IMG_UINT32 ui32StreamOffset);
+       IMG_BOOL        (IMG_CALLCONV *pfnIsLastCaptureFrame)   (PDBG_STREAM psStream);
+       IMG_VOID        (IMG_CALLCONV *pfnWaitForEvent)                 (DBG_EVENT eEvent);
+       IMG_VOID        (IMG_CALLCONV *pfnSetConnectNotifier)   (DBGKM_CONNECT_NOTIFIER fn_notifier);
+       IMG_UINT32      (IMG_CALLCONV *pfnWritePersist)                 (PDBG_STREAM psStream,IMG_UINT8 *pui8InBuf,IMG_UINT32 ui32InBuffSize,IMG_UINT32 ui32Level);
+} DBGKM_SERVICE_TABLE, *PDBGKM_SERVICE_TABLE;
+
+#if defined(__linux__)
+/*****************************************************************************
+ Function to export service table from debug driver to the PDUMP component.
+*****************************************************************************/
+IMG_VOID DBGDrvGetServiceTable(DBGKM_SERVICE_TABLE **fn_table);
+#endif
+
+
+#endif
+/*****************************************************************************
+ End of file (DBGDRVIF.H)
+*****************************************************************************/
diff --git a/sgx_km/eurasia_km/include4/img_defs.h b/sgx_km/eurasia_km/include4/img_defs.h
new file mode 100644 (file)
index 0000000..9350cf6
--- /dev/null
@@ -0,0 +1,227 @@
+/*************************************************************************/ /*!
+@Title          Common header containing type definitions for portability
+@Copyright      Copyright (c) Imagination Technologies Ltd. All Rights Reserved
+@Description    Contains variable and structure definitions. Any platform
+                specific types should be defined in this file.
+@License        Dual MIT/GPLv2
+
+The contents of this file are subject to the MIT license as set out below.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+Alternatively, the contents of this file may be used under the terms of
+the GNU General Public License Version 2 ("GPL") in which case the provisions
+of GPL are applicable instead of those above.
+
+If you wish to allow use of your version of this file only under the terms of
+GPL, and not to allow others to use your version of this file under the terms
+of the MIT license, indicate your decision by deleting the provisions above
+and replace them with the notice and other provisions required by GPL as set
+out in the file called "GPL-COPYING" included in this distribution. If you do
+not delete the provisions above, a recipient may use your version of this file
+under the terms of either the MIT license or GPL.
+
+This License is also included in this distribution in the file called
+"MIT-COPYING".
+
+EXCEPT AS OTHERWISE STATED IN A NEGOTIATED AGREEMENT: (A) THE SOFTWARE IS
+PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
+BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+PURPOSE AND NONINFRINGEMENT; AND (B) IN NO EVENT SHALL THE AUTHORS OR
+COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+*/ /**************************************************************************/
+#if !defined (__IMG_DEFS_H__)
+#define __IMG_DEFS_H__
+
+#include "img_types.h"
+
+typedef                enum    img_tag_TriStateSwitch
+{
+       IMG_ON          =       0x00,
+       IMG_OFF,
+       IMG_IGNORE
+
+} img_TriStateSwitch, * img_pTriStateSwitch;
+
+#define                IMG_SUCCESS                             0
+
+#define                IMG_NO_REG                              1
+
+#if defined (NO_INLINE_FUNCS)
+       #define INLINE
+       #define FORCE_INLINE
+#else
+#if defined (__cplusplus)
+       #define INLINE                                  inline
+       #define FORCE_INLINE                    inline
+#else
+#if    !defined(INLINE)
+       #define INLINE                                  __inline
+#endif
+       #define FORCE_INLINE                    static __inline
+#endif
+#endif
+
+
+/* Use this in any file, or use attributes under GCC - see below */
+#ifndef PVR_UNREFERENCED_PARAMETER
+#define        PVR_UNREFERENCED_PARAMETER(param) (param) = (param)
+#endif
+
+/* The best way to supress unused parameter warnings using GCC is to use a
+ * variable attribute.  Place the unref__ between the type and name of an
+ * unused parameter in a function parameter list, eg `int unref__ var'. This
+ * should only be used in GCC build environments, for example, in files that
+ * compile only on Linux. Other files should use UNREFERENCED_PARAMETER */
+#ifdef __GNUC__
+#define unref__ __attribute__ ((unused))
+#else
+#define unref__
+#endif
+
+/*
+       Wide character definitions
+*/
+#ifndef _TCHAR_DEFINED
+#if defined(UNICODE)
+typedef unsigned short         TCHAR, *PTCHAR, *PTSTR;
+#else  /* #if defined(UNICODE) */
+typedef char                           TCHAR, *PTCHAR, *PTSTR;
+#endif /* #if defined(UNICODE) */
+#define _TCHAR_DEFINED
+#endif /* #ifndef _TCHAR_DEFINED */
+
+
+                       #if defined(__linux__) || defined(__QNXNTO__) || defined(__METAG)
+
+                               #define IMG_CALLCONV
+                               #define IMG_INTERNAL    __attribute__((visibility("hidden")))
+                               #define IMG_EXPORT              __attribute__((visibility("default")))
+                               #define IMG_IMPORT
+                               #define IMG_RESTRICT    __restrict__
+                       #if defined(USE_64BIT_COMPAT)
+                               #define IMG_COMPAT __attribute__ ((packed))
+                       #else
+                               #define IMG_COMPAT
+                       #endif
+
+                       #else
+                                       #error("define an OS")
+                       #endif
+
+// Use default definition if not overridden
+#ifndef IMG_ABORT
+       #define IMG_ABORT()     abort()
+#endif
+
+#ifndef IMG_MALLOC
+       #define IMG_MALLOC(A)           malloc  (A)
+#endif
+
+#ifndef IMG_FREE
+       #define IMG_FREE(A)                     free    (A)
+#endif
+
+#define IMG_CONST const
+
+#if defined(__GNUC__)
+#define IMG_FORMAT_PRINTF(x,y)         __attribute__((format(printf,x,y)))
+#else
+#define IMG_FORMAT_PRINTF(x,y)
+#endif
+
+/*
+ * Cleanup request defines
+  */
+#define  CLEANUP_WITH_POLL             IMG_FALSE
+#define  FORCE_CLEANUP                 IMG_TRUE
+
+#if defined (_WIN64)
+#define IMG_UNDEF      (~0ULL)
+#else
+#define IMG_UNDEF      (~0UL)
+#endif
+
+/*
+   Do the right thing when using printf to output cpu addresses,
+   depending on architecture.
+ */
+#if defined (_WIN64)
+    #define UINTPTR_FMT "%016llX"
+#else
+    #if defined (__x86_64__)
+        #define UINTPTR_FMT "%016lX"
+    #else
+        #define UINTPTR_FMT "%08lX"
+    #endif
+#endif
+
+/* 
+   Similarly for DEV_ and SYS_ PHYSADDRs, but this is dependent on 32/36-bit MMU
+   capability, in addition to host architecture.
+ */
+#if IMG_ADDRSPACE_PHYSADDR_BITS == 32
+       #if defined(IMG_UINT32_IS_ULONG)
+               #define CPUPADDR_FMT "%08lX"
+               #define DEVPADDR_FMT "%08lX"
+               #define SYSPADDR_FMT "%08lX"
+       #else
+               #define CPUPADDR_FMT "%08X"
+               #define DEVPADDR_FMT "%08X"
+               #define SYSPADDR_FMT "%08X"
+       #endif
+#else
+       #if defined(__x86_64__)
+                       #define CPUPADDR_FMT "%016lX"
+                       #define DEVPADDR_FMT "%016lX"
+                       #define SYSPADDR_FMT "%016lX"
+       #else
+
+                       #define CPUPADDR_FMT "%016llX"
+                       #define DEVPADDR_FMT "%016llX"
+                       #define SYSPADDR_FMT "%016llX"
+       #endif
+#endif
+
+/*
+   Define a printf format macro for the length property of the format-specifier
+   for size_t, that allows avoidance of C99 dependency on compilers that don't
+   support this, while still ensuring that whatever the size of size_t (eg 32, 
+   64 bit Linux builds, or Win32/64 builds), a size_t (or IMG_SIZE_T) can be
+   passed to printf-type functions without a cast.
+*/
+#if defined LINUX
+       /* Use C99 format specifier where possible */
+       #define SIZE_T_FMT_LEN "z"
+#elif  defined _WIN64
+       #define SIZE_T_FMT_LEN "I"
+#else
+       #define SIZE_T_FMT_LEN "l" /* May need to be updated as required, for other OSs */
+#endif
+
+
+#if defined (__x86_64__)
+       #define IMG_UINT64_FMT "l"
+#else
+       #define IMG_UINT64_FMT "ll" /* May need to be updated as required, for other OSs */
+#endif
+
+/*
+       Some versions of MSVC don't have snprintf, vsnprintf in their CRTs.
+       Remap to the deprecated unix compatibility versions.
+*/
+
+#endif /* #if !defined (__IMG_DEFS_H__) */
+/*****************************************************************************
+ End of file (IMG_DEFS.H)
+*****************************************************************************/
diff --git a/sgx_km/eurasia_km/include4/img_types.h b/sgx_km/eurasia_km/include4/img_types.h
new file mode 100644 (file)
index 0000000..6d2761c
--- /dev/null
@@ -0,0 +1,231 @@
+/*************************************************************************/ /*!
+@Title          Global types for use by IMG APIs
+@Copyright      Copyright (c) Imagination Technologies Ltd. All Rights Reserved
+@Description    Defines type aliases for use by IMG APIs.
+@License        Dual MIT/GPLv2
+
+The contents of this file are subject to the MIT license as set out below.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+Alternatively, the contents of this file may be used under the terms of
+the GNU General Public License Version 2 ("GPL") in which case the provisions
+of GPL are applicable instead of those above.
+
+If you wish to allow use of your version of this file only under the terms of
+GPL, and not to allow others to use your version of this file under the terms
+of the MIT license, indicate your decision by deleting the provisions above
+and replace them with the notice and other provisions required by GPL as set
+out in the file called "GPL-COPYING" included in this distribution. If you do
+not delete the provisions above, a recipient may use your version of this file
+under the terms of either the MIT license or GPL.
+
+This License is also included in this distribution in the file called
+"MIT-COPYING".
+
+EXCEPT AS OTHERWISE STATED IN A NEGOTIATED AGREEMENT: (A) THE SOFTWARE IS
+PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
+BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+PURPOSE AND NONINFRINGEMENT; AND (B) IN NO EVENT SHALL THE AUTHORS OR
+COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+*/ /**************************************************************************/
+#ifndef __IMG_TYPES_H__
+#define __IMG_TYPES_H__
+
+#if   defined(LINUX) && defined(__KERNEL__)
+       #include "kernel_types.h"
+#elif defined(LINUX) || defined(__QNXNTO__) || defined(__METAG)
+       #include <stddef.h>                     /* NULL */
+       #include <stdint.h>                     /* intX_t/uintX_t, format specifiers */
+       #include <limits.h>                     /* INT_MIN, etc */
+#else
+       #error C99 support not set up for this build
+#endif
+
+/* define all address space bit depths: */
+/* CPU virtual address space defaults to 32bits */
+#if !defined(IMG_ADDRSPACE_CPUVADDR_BITS)
+#define IMG_ADDRSPACE_CPUVADDR_BITS            32
+#endif
+
+/* Physical address space defaults to 32bits */
+#if !defined(IMG_ADDRSPACE_PHYSADDR_BITS)
+#define IMG_ADDRSPACE_PHYSADDR_BITS            32
+#endif
+
+typedef unsigned int   IMG_UINT,       *IMG_PUINT;
+typedef signed int     IMG_INT,        *IMG_PINT;
+
+typedef uint8_t                IMG_UINT8,      *IMG_PUINT8;
+typedef uint8_t                IMG_BYTE,       *IMG_PBYTE;
+typedef int8_t         IMG_INT8,       *IMG_PINT8;
+typedef char           IMG_CHAR,       *IMG_PCHAR;
+
+typedef uint16_t       IMG_UINT16,     *IMG_PUINT16;
+typedef int16_t                IMG_INT16,      *IMG_PINT16;
+typedef uint32_t       IMG_UINT32,     *IMG_PUINT32;
+typedef int32_t                IMG_INT32,      *IMG_PINT32;
+
+#define IMG_UINT32_MAX  UINT32_MAX
+
+typedef uint64_t       IMG_UINT64, *IMG_PUINT64;
+typedef int64_t                IMG_INT64,  *IMG_PINT64;
+
+#if !(defined(LINUX) && defined (__KERNEL__))
+/* Linux kernel mode does not use floating point */
+typedef float          IMG_FLOAT,      *IMG_PFLOAT;
+typedef double         IMG_DOUBLE, *IMG_PDOUBLE;
+#endif
+
+typedef        enum tag_img_bool
+{
+       IMG_FALSE               = 0,
+       IMG_TRUE                = 1,
+       IMG_FORCE_ALIGN = 0x7FFFFFFF
+} IMG_BOOL, *IMG_PBOOL;
+
+typedef void            IMG_VOID, *IMG_PVOID;
+
+typedef IMG_INT32       IMG_RESULT;
+
+#if defined(_WIN64)
+       typedef unsigned __int64        IMG_UINTPTR_T;
+       typedef signed   __int64    IMG_INTPTR_T;
+       typedef signed __int64          IMG_PTRDIFF_T;
+       typedef IMG_UINT64                      IMG_SIZE_T;
+#else
+#if defined (__x86_64__) || !defined(USE_64BIT_COMPAT) || defined (__KERNEL__)
+       typedef size_t          IMG_SIZE_T;
+#else
+       typedef IMG_UINT64              IMG_SIZE_T;
+#endif
+       typedef uintptr_t       IMG_UINTPTR_T;
+#endif
+
+#if defined(LINUX) && defined (__KERNEL__)
+       typedef IMG_PVOID       IMG_HANDLE;
+#elif defined(LINUX)
+       #if defined(USE_64BIT_COMPAT)
+               typedef IMG_UINT64      IMG_HANDLE;
+       #else
+               typedef IMG_UINT32      IMG_HANDLE;
+       #endif
+#else
+typedef void           *IMG_HANDLE;
+#endif
+
+typedef void**          IMG_HVOID,     * IMG_PHVOID;
+
+#define IMG_NULL        0 
+
+/* services/stream ID */
+typedef IMG_UINTPTR_T  IMG_SID;
+
+typedef IMG_UINTPTR_T  IMG_EVENTSID;
+
+/*
+ * Address types.
+ * All types used to refer to a block of memory are wrapped in structures
+ * to enforce some degree of type safety, i.e. a IMG_DEV_VIRTADDR cannot
+ * be assigned to a variable of type IMG_DEV_PHYADDR because they are not the
+ * same thing.
+ *
+ * There is an assumption that the system contains at most one non-cpu mmu,
+ * and a memory block is only mapped by the MMU once.
+ *
+ * Different devices could have offset views of the physical address space.
+ * 
+ */
+
+
+/*
+ *
+ * +------------+    +------------+      +------------+        +------------+
+ * |    CPU     |    |    DEV     |      |    DEV     |        |    DEV     |
+ * +------------+    +------------+      +------------+        +------------+
+ *       |                 |                   |                     |
+ *       | PVOID           |IMG_DEV_VIRTADDR   |IMG_DEV_VIRTADDR     |
+ *       |                 \-------------------/                     |
+ *       |                          |                                |
+ * +------------+             +------------+                         |     
+ * |    MMU     |             |    MMU     |                         |
+ * +------------+             +------------+                         | 
+ *       |                          |                                | 
+ *       |                          |                                |
+ *       |                          |                                |
+ *   +--------+                +---------+                      +--------+
+ *   | Offset |                | (Offset)|                      | Offset |
+ *   +--------+                +---------+                      +--------+    
+ *       |                          |                IMG_DEV_PHYADDR | 
+ *       |                          |                                |
+ *       |                          | IMG_DEV_PHYADDR                |
+ * +---------------------------------------------------------------------+ 
+ * |                         System Address bus                          |
+ * +---------------------------------------------------------------------+
+ *
+ */
+
+typedef IMG_PVOID IMG_CPU_VIRTADDR;
+
+/* device virtual address */
+typedef struct _IMG_DEV_VIRTADDR
+{
+       /* device virtual addresses are 32bit for now */
+       IMG_UINT32  uiAddr;
+#define IMG_CAST_TO_DEVVADDR_UINT(var)         (IMG_UINT32)(var)
+       
+} IMG_DEV_VIRTADDR;
+
+typedef IMG_UINT32 IMG_DEVMEM_SIZE_T;
+
+/* cpu physical address */
+typedef struct _IMG_CPU_PHYADDR
+{
+       /* variable sized type (32,64) */
+#if IMG_ADDRSPACE_PHYSADDR_BITS == 32
+       /* variable sized type (32,64) */
+       IMG_UINT32 uiAddr;
+#else
+       IMG_UINT64 uiAddr;
+#endif
+} IMG_CPU_PHYADDR;
+
+/* device physical address */
+typedef struct _IMG_DEV_PHYADDR
+{
+#if IMG_ADDRSPACE_PHYSADDR_BITS == 32
+       /* variable sized type (32,64) */
+       IMG_UINT32 uiAddr;
+#else
+       IMG_UINT64 uiAddr;
+#endif
+} IMG_DEV_PHYADDR;
+
+/* system physical address */
+typedef struct _IMG_SYS_PHYADDR
+{
+       /* variable sized type (32,64) */
+#if IMG_ADDRSPACE_PHYSADDR_BITS == 32
+       /* variable sized type (32,64) */
+       IMG_UINT32 uiAddr;
+#else
+       IMG_UINT64 uiAddr;
+#endif
+} IMG_SYS_PHYADDR;
+
+#include "img_defs.h"
+
+#endif /* __IMG_TYPES_H__ */
+/******************************************************************************
+ End of file (img_types.h)
+******************************************************************************/
diff --git a/sgx_km/eurasia_km/include4/kernel_types.h b/sgx_km/eurasia_km/include4/kernel_types.h
new file mode 100644 (file)
index 0000000..b53da19
--- /dev/null
@@ -0,0 +1,136 @@
+/*************************************************************************/ /*!
+@Title          C99-compatible types and definitions for Linux kernel code
+@Copyright      Copyright (c) Imagination Technologies Ltd. All Rights Reserved
+@License        Dual MIT/GPLv2
+
+The contents of this file are subject to the MIT license as set out below.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+Alternatively, the contents of this file may be used under the terms of
+the GNU General Public License Version 2 ("GPL") in which case the provisions
+of GPL are applicable instead of those above.
+
+If you wish to allow use of your version of this file only under the terms of
+GPL, and not to allow others to use your version of this file under the terms
+of the MIT license, indicate your decision by deleting the provisions above
+and replace them with the notice and other provisions required by GPL as set
+out in the file called "GPL-COPYING" included in this distribution. If you do
+not delete the provisions above, a recipient may use your version of this file
+under the terms of either the MIT license or GPL.
+
+This License is also included in this distribution in the file called
+"MIT-COPYING".
+
+EXCEPT AS OTHERWISE STATED IN A NEGOTIATED AGREEMENT: (A) THE SOFTWARE IS
+PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
+BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+PURPOSE AND NONINFRINGEMENT; AND (B) IN NO EVENT SHALL THE AUTHORS OR
+COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+*/ /**************************************************************************/
+
+#include <linux/kernel.h>
+
+/* Limits of specified-width integer types */
+
+/* S8_MIN, etc were added in kernel version 3.14. The other versions are for
+ * earlier kernels. They can be removed once older kernels don't need to be
+ * supported.
+ */
+#ifdef S8_MIN
+       #define INT8_MIN        S8_MIN
+#else
+       #define INT8_MIN        (-128)
+#endif
+
+#ifdef S8_MAX
+       #define INT8_MAX        S8_MAX
+#else
+       #define INT8_MAX        127
+#endif
+
+#ifdef U8_MAX
+       #define UINT8_MAX       U8_MAX
+#else
+       #define UINT8_MAX       0xFF
+#endif
+
+#ifdef S16_MIN
+       #define INT16_MIN       S16_MIN
+#else
+       #define INT16_MIN       (-32768)
+#endif
+
+#ifdef S16_MAX
+       #define INT16_MAX       S16_MAX
+#else
+       #define INT16_MAX       32767
+#endif
+
+#ifdef U16_MAX
+       #define UINT16_MAX      U16_MAX
+#else
+       #define UINT16_MAX      0xFFFF
+#endif
+
+#ifdef S32_MIN
+       #define INT32_MIN       S32_MIN
+#else
+       #define INT32_MIN       (-2147483647 - 1)
+#endif
+
+#ifdef S32_MAX
+       #define INT32_MAX       S32_MAX
+#else
+       #define INT32_MAX       2147483647
+#endif
+
+#ifdef U32_MAX
+       #define UINT32_MAX      U32_MAX
+#else
+       #define UINT32_MAX      0xFFFFFFFF
+#endif
+
+#ifdef S64_MIN
+       #define INT64_MIN       S64_MIN
+#else
+       #define INT64_MIN       (-9223372036854775807LL)
+#endif
+
+#ifdef S64_MAX
+       #define INT64_MAX       S64_MAX
+#else
+       #define INT64_MAX       9223372036854775807LL
+#endif
+
+#ifdef U64_MAX
+       #define UINT64_MAX      U64_MAX
+#else
+       #define UINT64_MAX      0xFFFFFFFFFFFFFFFFULL
+#endif
+
+/* Macros for integer constants */
+#define INT8_C                 S8_C
+#define UINT8_C                        U8_C
+#define INT16_C                        S16_C
+#define UINT16_C               U16_C
+#define INT32_C                        S32_C
+#define UINT32_C               U32_C
+#define INT64_C                        S64_C
+#define UINT64_C               U64_C
+
+/* Format conversion of integer types <inttypes.h> */
+/* Only define PRIX64 for the moment, as this is the only format macro that
+ * img_types.h needs.
+ */
+#define PRIX64         "llX"
diff --git a/sgx_km/eurasia_km/include4/pdumpdefs.h b/sgx_km/eurasia_km/include4/pdumpdefs.h
new file mode 100644 (file)
index 0000000..2ba36c3
--- /dev/null
@@ -0,0 +1,127 @@
+/*************************************************************************/ /*!
+@Title          PDUMP definitions header
+@Copyright      Copyright (c) Imagination Technologies Ltd. All Rights Reserved
+@Description    PDUMP definitions header
+@License        Dual MIT/GPLv2
+
+The contents of this file are subject to the MIT license as set out below.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+Alternatively, the contents of this file may be used under the terms of
+the GNU General Public License Version 2 ("GPL") in which case the provisions
+of GPL are applicable instead of those above.
+
+If you wish to allow use of your version of this file only under the terms of
+GPL, and not to allow others to use your version of this file under the terms
+of the MIT license, indicate your decision by deleting the provisions above
+and replace them with the notice and other provisions required by GPL as set
+out in the file called "GPL-COPYING" included in this distribution. If you do
+not delete the provisions above, a recipient may use your version of this file
+under the terms of either the MIT license or GPL.
+
+This License is also included in this distribution in the file called
+"MIT-COPYING".
+
+EXCEPT AS OTHERWISE STATED IN A NEGOTIATED AGREEMENT: (A) THE SOFTWARE IS
+PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
+BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+PURPOSE AND NONINFRINGEMENT; AND (B) IN NO EVENT SHALL THE AUTHORS OR
+COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+*/ /**************************************************************************/
+#if !defined (__PDUMPDEFS_H__)
+#define __PDUMPDEFS_H__
+
+typedef enum _PDUMP_PIXEL_FORMAT_
+{
+       PVRSRV_PDUMP_PIXEL_FORMAT_UNSUPPORTED = 0,
+       PVRSRV_PDUMP_PIXEL_FORMAT_RGB8 = 1,
+       PVRSRV_PDUMP_PIXEL_FORMAT_RGB332 = 2,
+       PVRSRV_PDUMP_PIXEL_FORMAT_KRGB555 = 3,
+       PVRSRV_PDUMP_PIXEL_FORMAT_RGB565 = 4,
+       PVRSRV_PDUMP_PIXEL_FORMAT_ARGB4444 = 5,
+       PVRSRV_PDUMP_PIXEL_FORMAT_ARGB1555 = 6,
+       PVRSRV_PDUMP_PIXEL_FORMAT_RGB888 = 7,
+       PVRSRV_PDUMP_PIXEL_FORMAT_ARGB8888 = 8,
+       PVRSRV_PDUMP_PIXEL_FORMAT_YUV8 = 9,
+       PVRSRV_PDUMP_PIXEL_FORMAT_AYUV4444 = 10,
+       PVRSRV_PDUMP_PIXEL_FORMAT_VY0UY1_8888 = 11,
+       PVRSRV_PDUMP_PIXEL_FORMAT_UY0VY1_8888 = 12,
+       PVRSRV_PDUMP_PIXEL_FORMAT_Y0UY1V_8888 = 13,
+       PVRSRV_PDUMP_PIXEL_FORMAT_Y0VY1U_8888 = 14,
+       PVRSRV_PDUMP_PIXEL_FORMAT_YUV888 = 15,
+       PVRSRV_PDUMP_PIXEL_FORMAT_UYVY10101010 = 16,
+       PVRSRV_PDUMP_PIXEL_FORMAT_VYAUYA8888 = 17,
+       PVRSRV_PDUMP_PIXEL_FORMAT_AYUV8888 = 18,
+       PVRSRV_PDUMP_PIXEL_FORMAT_AYUV2101010 = 19,
+       PVRSRV_PDUMP_PIXEL_FORMAT_YUV101010 = 20,
+       PVRSRV_PDUMP_PIXEL_FORMAT_PL12Y8 = 21,
+       PVRSRV_PDUMP_PIXEL_FORMAT_YUV_IMC2 = 22,
+       PVRSRV_PDUMP_PIXEL_FORMAT_YUV_YV12 = 23,
+       PVRSRV_PDUMP_PIXEL_FORMAT_YUV_PL8 = 24,
+       PVRSRV_PDUMP_PIXEL_FORMAT_YUV_PL12 = 25,
+       PVRSRV_PDUMP_PIXEL_FORMAT_422PL12YUV8 = 26,
+       PVRSRV_PDUMP_PIXEL_FORMAT_420PL12YUV8 = 27,
+       PVRSRV_PDUMP_PIXEL_FORMAT_PL12Y10 = 28,
+       PVRSRV_PDUMP_PIXEL_FORMAT_422PL12YUV10 = 29,
+       PVRSRV_PDUMP_PIXEL_FORMAT_420PL12YUV10 = 30,
+       PVRSRV_PDUMP_PIXEL_FORMAT_ABGR8888 = 31,
+       PVRSRV_PDUMP_PIXEL_FORMAT_BGRA8888 = 32,
+       PVRSRV_PDUMP_PIXEL_FORMAT_ARGB8332 = 33,
+       PVRSRV_PDUMP_PIXEL_FORMAT_RGB555 = 34,
+       PVRSRV_PDUMP_PIXEL_FORMAT_F16 = 35,
+       PVRSRV_PDUMP_PIXEL_FORMAT_F32 = 36,
+       PVRSRV_PDUMP_PIXEL_FORMAT_L16 = 37,
+       PVRSRV_PDUMP_PIXEL_FORMAT_L32 = 38,
+       PVRSRV_PDUMP_PIXEL_FORMAT_RGBA8888 = 39,
+       PVRSRV_PDUMP_PIXEL_FORMAT_ABGR4444 = 40,
+       PVRSRV_PDUMP_PIXEL_FORMAT_RGBA4444 = 41,
+       PVRSRV_PDUMP_PIXEL_FORMAT_BGRA4444 = 42,
+       PVRSRV_PDUMP_PIXEL_FORMAT_ABGR1555 = 43,
+       PVRSRV_PDUMP_PIXEL_FORMAT_RGBA5551 = 44,
+       PVRSRV_PDUMP_PIXEL_FORMAT_BGRA5551 = 45,
+       PVRSRV_PDUMP_PIXEL_FORMAT_BGR565 = 46,
+       PVRSRV_PDUMP_PIXEL_FORMAT_A8 = 47,
+       
+       PVRSRV_PDUMP_PIXEL_FORMAT_FORCE_I32 = 0x7fffffff
+
+} PDUMP_PIXEL_FORMAT;
+
+typedef enum _PDUMP_MEM_FORMAT_
+{
+       PVRSRV_PDUMP_MEM_FORMAT_STRIDE = 0,
+       PVRSRV_PDUMP_MEM_FORMAT_RESERVED = 1,
+       PVRSRV_PDUMP_MEM_FORMAT_TILED = 8,
+       PVRSRV_PDUMP_MEM_FORMAT_TWIDDLED = 9,
+       PVRSRV_PDUMP_MEM_FORMAT_HYBRID = 10,
+       
+       PVRSRV_PDUMP_MEM_FORMAT_FORCE_I32 = 0x7fffffff
+} PDUMP_MEM_FORMAT;
+
+typedef enum _PDUMP_POLL_OPERATOR
+{
+       PDUMP_POLL_OPERATOR_EQUAL = 0,
+       PDUMP_POLL_OPERATOR_LESS = 1,
+       PDUMP_POLL_OPERATOR_LESSEQUAL = 2,
+       PDUMP_POLL_OPERATOR_GREATER = 3,
+       PDUMP_POLL_OPERATOR_GREATEREQUAL = 4,
+       PDUMP_POLL_OPERATOR_NOTEQUAL = 5,
+       PDUMP_POLL_OPERATOR_FORCE_I32 = 0x7fffffff
+} PDUMP_POLL_OPERATOR;
+
+
+#endif /* __PDUMPDEFS_H__ */
+
+/*****************************************************************************
+ End of file (pdumpdefs.h)
+*****************************************************************************/
diff --git a/sgx_km/eurasia_km/include4/pvr_debug.h b/sgx_km/eurasia_km/include4/pvr_debug.h
new file mode 100644 (file)
index 0000000..be78c77
--- /dev/null
@@ -0,0 +1,283 @@
+/*************************************************************************/ /*!
+@Title          PVR Debug Declarations
+@Copyright      Copyright (c) Imagination Technologies Ltd. All Rights Reserved
+@Description    Provides debug functionality
+@License        Dual MIT/GPLv2
+
+The contents of this file are subject to the MIT license as set out below.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+Alternatively, the contents of this file may be used under the terms of
+the GNU General Public License Version 2 ("GPL") in which case the provisions
+of GPL are applicable instead of those above.
+
+If you wish to allow use of your version of this file only under the terms of
+GPL, and not to allow others to use your version of this file under the terms
+of the MIT license, indicate your decision by deleting the provisions above
+and replace them with the notice and other provisions required by GPL as set
+out in the file called "GPL-COPYING" included in this distribution. If you do
+not delete the provisions above, a recipient may use your version of this file
+under the terms of either the MIT license or GPL.
+
+This License is also included in this distribution in the file called
+"MIT-COPYING".
+
+EXCEPT AS OTHERWISE STATED IN A NEGOTIATED AGREEMENT: (A) THE SOFTWARE IS
+PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
+BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+PURPOSE AND NONINFRINGEMENT; AND (B) IN NO EVENT SHALL THE AUTHORS OR
+COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+*/ /**************************************************************************/
+#ifndef __PVR_DEBUG_H__
+#define __PVR_DEBUG_H__
+
+
+#include "img_types.h"
+
+
+#if defined (__cplusplus)
+extern "C" {
+#endif
+
+#define PVR_MAX_DEBUG_MESSAGE_LEN      (512)
+
+/* These are privately used by pvr_debug, use the PVR_DBG_ defines instead */
+#define DBGPRIV_FATAL                  0x001UL
+#define DBGPRIV_ERROR                  0x002UL
+#define DBGPRIV_BUFFERED               0x004UL
+#define DBGPRIV_WARNING                        0x008UL
+#define DBGPRIV_MESSAGE                        0x010UL
+#define DBGPRIV_VERBOSE                        0x020UL
+#define DBGPRIV_CALLTRACE              0x040UL
+#define DBGPRIV_ALLOC                  0x080UL
+#define DBGPRIV_DBGDRV_MESSAGE 0x100UL
+
+#define DBGPRIV_DBGLEVEL_COUNT 9
+
+#if !defined(PVRSRV_NEED_PVR_ASSERT) && defined(DEBUG)
+#define PVRSRV_NEED_PVR_ASSERT
+#endif
+
+#if defined(PVRSRV_NEED_PVR_ASSERT) && !defined(PVRSRV_NEED_PVR_DPF)
+#define PVRSRV_NEED_PVR_DPF
+#endif
+
+#if !defined(PVRSRV_NEED_PVR_TRACE) && (defined(DEBUG) || defined(TIMING))
+#define PVRSRV_NEED_PVR_TRACE
+#endif
+
+/* PVR_ASSERT() and PVR_DBG_BREAK handling */
+
+#if defined(PVRSRV_NEED_PVR_ASSERT)
+
+#if defined(LINUX) && defined(__KERNEL__)
+/* In Linux kernel mode, use BUG() directly. This produces the correct
+   filename and line number in the panic message. */
+#define PVR_ASSERT(EXPR) do                                                                                    \
+       {                                                                                                                               \
+               if (!(EXPR))                                                                                            \
+               {                                                                                                                       \
+                       PVRSRVDebugPrintf(DBGPRIV_FATAL, __FILE__, __LINE__,    \
+                                                         "Debug assertion failed!");                   \
+                       BUG();                                                                                                  \
+               }                                                                                                                       \
+       } while (0)
+
+#else /* defined(LINUX) && defined(__KERNEL__) */
+
+IMG_IMPORT IMG_VOID IMG_CALLCONV PVRSRVDebugAssertFail(const IMG_CHAR *pszFile,
+                                                                                                          IMG_UINT32 ui32Line);
+
+#if defined(LINUX)
+       #define PVR_ASSERT(EXPR) do                                                             \
+               {                                                                                                       \
+                       if (!(EXPR))                                                                    \
+                               PVRSRVDebugAssertFail(__FILE__, __LINE__);      \
+               } while (0)
+#else
+    #if defined (__QNXNTO__)
+           #define PVR_ASSERT(EXPR) if (!(EXPR)) PVRSRVDebugAssertFail(__FILE__, __LINE__);
+    #else
+           #define PVR_ASSERT(EXPR) if (!(EXPR)) PVRSRVDebugAssertFail(__FILE__, __LINE__)
+    #endif
+#endif
+
+#endif /* defined(LINUX) && defined(__KERNEL__) */
+
+
+                       #if defined(LINUX) && defined(__KERNEL__)
+                               #define PVR_DBG_BREAK BUG()
+                       #else
+                               #define PVR_DBG_BREAK PVRSRVDebugAssertFail(__FILE__, __LINE__)
+                       #endif
+
+#else  /* defined(PVRSRV_NEED_PVR_ASSERT) */
+
+       #define PVR_ASSERT(EXPR)
+       #define PVR_DBG_BREAK
+
+#endif /* defined(PVRSRV_NEED_PVR_ASSERT) */
+
+
+/* PVR_DPF() handling */
+
+#if defined(PVRSRV_NEED_PVR_DPF)
+
+#if defined(PVRSRV_NEW_PVR_DPF)
+
+       /* New logging mechanism */
+       #define PVR_DBG_FATAL           DBGPRIV_FATAL
+       #define PVR_DBG_ERROR           DBGPRIV_ERROR
+       #define PVR_DBG_BUFFERED        DBGPRIV_BUFFERED
+       #define PVR_DBG_WARNING         DBGPRIV_WARNING
+       #define PVR_DBG_MESSAGE         DBGPRIV_MESSAGE
+       #define PVR_DBG_VERBOSE         DBGPRIV_VERBOSE
+       #define PVR_DBG_CALLTRACE       DBGPRIV_CALLTRACE
+       #define PVR_DBG_ALLOC           DBGPRIV_ALLOC
+       #define PVR_DBGDRIV_MESSAGE     DBGPRIV_DBGDRV_MESSAGE
+
+       /* These levels are always on with PVRSRV_NEED_PVR_DPF */
+       #define __PVR_DPF_0x001UL(x...) PVRSRVDebugPrintf(DBGPRIV_FATAL, x)
+       #define __PVR_DPF_0x002UL(x...) PVRSRVDebugPrintf(DBGPRIV_ERROR, x)
+       #define __PVR_DPF_0x004UL(x...) PVRSRVDebugPrintf(DBGPRIV_BUFFERED, x)
+
+       /* Some are compiled out completely in release builds */
+#if defined(DEBUG)
+       #define __PVR_DPF_0x008UL(x...) PVRSRVDebugPrintf(DBGPRIV_WARNING, x)
+       #define __PVR_DPF_0x010UL(x...) PVRSRVDebugPrintf(DBGPRIV_MESSAGE, x)
+       #define __PVR_DPF_0x020UL(x...) PVRSRVDebugPrintf(DBGPRIV_VERBOSE, x)
+       #define __PVR_DPF_0x040UL(x...) PVRSRVDebugPrintf(DBGPRIV_CALLTRACE, x)
+       #define __PVR_DPF_0x080UL(x...) PVRSRVDebugPrintf(DBGPRIV_ALLOC, x)
+       #define __PVR_DPF_0x100UL(x...) PVRSRVDebugPrintf(DBGPRIV_DBGDRV_MESSAGE, x)
+
+#elif defined(PVR_DBGPRIV_LEVEL)
+
+#if (PVR_DBGPRIV_LEVEL >= DBGPRIV_WARNING)
+       #define __PVR_DPF_0x008UL(x...) PVRSRVDebugPrintf(DBGPRIV_WARNING, x)
+#else
+       #define __PVR_DPF_0x008UL(x...)
+#endif
+
+#if (PVR_DBGPRIV_LEVEL >= DBGPRIV_MESSAGE)
+       #define __PVR_DPF_0x010UL(x...) PVRSRVDebugPrintf(DBGPRIV_MESSAGE, x)
+#else
+       #define __PVR_DPF_0x010UL(x...)
+#endif
+
+#if (PVR_DBGPRIV_LEVEL >= DBGPRIV_VERBOSE)
+       #define __PVR_DPF_0x020UL(x...) PVRSRVDebugPrintf(DBGPRIV_VERBOSE, x)
+#else
+       #define __PVR_DPF_0x020UL(x...)
+#endif
+
+#if (PVR_DBGPRIV_LEVEL >= DBGPRIV_CALLTRACE)
+       #define __PVR_DPF_0x040UL(x...) PVRSRVDebugPrintf(DBGPRIV_CALLTRACE, x)
+#else
+       #define __PVR_DPF_0x040UL(x...)
+#endif
+
+#if (PVR_DBGPRIV_LEVEL >= DBGPRIV_ALLOC)
+       #define __PVR_DPF_0x080UL(x...) PVRSRVDebugPrintf(DBGPRIV_ALLOC, x)
+#else
+       #define __PVR_DPF_0x080UL(x...)
+#endif
+
+#if (PVR_DBGPRIV_LEVEL >= DBGPRIV_DBGDRV_MESSAGE)
+       #define __PVR_DPF_0x100UL(x...) PVRSRVDebugPrintf(DBGPRIV_DBGDRV_MESSAGE, x)
+#else
+       #define __PVR_DPF_0x100UL(x...)
+#endif
+
+#else
+       #define __PVR_DPF_0x008UL(x...)
+       #define __PVR_DPF_0x010UL(x...)
+       #define __PVR_DPF_0x020UL(x...)
+       #define __PVR_DPF_0x040UL(x...)
+       #define __PVR_DPF_0x080UL(x...)
+       #define __PVR_DPF_0x100UL(x...)
+#endif
+
+       /* Translate the different log levels to separate macros
+        * so they can each be compiled out.
+        */
+#if defined(DEBUG)
+       #define __PVR_DPF(lvl, x...) __PVR_DPF_ ## lvl (__FILE__, __LINE__, x)
+#else
+       #define __PVR_DPF(lvl, x...) __PVR_DPF_ ## lvl ("", 0, x)
+#endif
+
+       /* Get rid of the double bracketing */
+       #define PVR_DPF(x) __PVR_DPF x
+
+#else /* defined(PVRSRV_NEW_PVR_DPF) */
+
+       /* Old logging mechanism */
+       #define PVR_DBG_FATAL           DBGPRIV_FATAL,__FILE__, __LINE__
+       #define PVR_DBG_ERROR           DBGPRIV_ERROR,__FILE__, __LINE__
+       #define PVR_DBG_WARNING         DBGPRIV_WARNING,__FILE__, __LINE__
+       #define PVR_DBG_MESSAGE         DBGPRIV_MESSAGE,__FILE__, __LINE__
+       #define PVR_DBG_VERBOSE         DBGPRIV_VERBOSE,__FILE__, __LINE__
+       #define PVR_DBG_CALLTRACE       DBGPRIV_CALLTRACE,__FILE__, __LINE__
+       #define PVR_DBG_ALLOC           DBGPRIV_ALLOC,__FILE__, __LINE__
+       #define PVR_DBG_BUFFERED        DBGPRIV_BUFFERED,__FILE__, __LINE__
+       #define PVR_DBGDRIV_MESSAGE     DBGPRIV_DBGDRV_MESSAGE, "", 0
+
+       #define PVR_DPF(X)                      PVRSRVDebugPrintf X
+
+#endif /* defined(PVRSRV_NEW_PVR_DPF) */
+
+IMG_IMPORT IMG_VOID IMG_CALLCONV PVRSRVDebugPrintf(IMG_UINT32 ui32DebugLevel,
+                                                                                                  const IMG_CHAR *pszFileName,
+                                                                                                  IMG_UINT32 ui32Line,
+                                                                                                  const IMG_CHAR *pszFormat,
+                                                                                                  ...) IMG_FORMAT_PRINTF(4, 5);
+
+#if defined(PVR_DBGPRIV_LEVEL) && defined(SUPPORT_ANDROID_PLATFORM)
+IMG_IMPORT IMG_VOID IMG_CALLCONV PVRSRVDebugPrintfSetLevel(IMG_UINT32 ui32DebugLevel);
+#endif
+
+IMG_IMPORT IMG_VOID IMG_CALLCONV PVRSRVDebugPrintfDumpCCB(void);
+
+#else  /* defined(PVRSRV_NEED_PVR_DPF) */
+
+       #define PVR_DPF(X)
+
+#endif /* defined(PVRSRV_NEED_PVR_DPF) */
+
+/* PVR_TRACE() handling */
+
+#if defined(PVRSRV_NEED_PVR_TRACE)
+
+       #define PVR_TRACE(X)    PVRSRVTrace X
+
+IMG_IMPORT IMG_VOID IMG_CALLCONV PVRSRVTrace(const IMG_CHAR* pszFormat, ... )
+       IMG_FORMAT_PRINTF(1, 2);
+
+#else /* defined(PVRSRV_NEED_PVR_TRACE) */
+
+       #define PVR_TRACE(X)
+
+#endif /* defined(PVRSRV_NEED_PVR_TRACE) */
+
+
+#if defined (__cplusplus)
+}
+#endif
+
+#endif /* __PVR_DEBUG_H__ */
+
+/******************************************************************************
+ End of file (pvr_debug.h)
+******************************************************************************/
+
diff --git a/sgx_km/eurasia_km/include4/pvr_sync_user.h b/sgx_km/eurasia_km/include4/pvr_sync_user.h