Initial import.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
89
Tools/Source/TianoTools/CompressDll/CompressDll.c
Normal file
89
Tools/Source/TianoTools/CompressDll/CompressDll.c
Normal file
@@ -0,0 +1,89 @@
|
||||
#include "CompressDll.h"
|
||||
#include "EfiCompress.h"
|
||||
|
||||
extern
|
||||
EFI_STATUS
|
||||
Compress (
|
||||
IN UINT8 *SrcBuffer,
|
||||
IN UINT32 SrcSize,
|
||||
IN UINT8 *DstBuffer,
|
||||
IN OUT UINT32 *DstSize
|
||||
);
|
||||
|
||||
JNIEXPORT jbyteArray JNICALL Java_org_tianocore_framework_tasks_Compress_CallCompress
|
||||
(JNIEnv *env, jobject obj, jbyteArray SourceBuffer, jint SourceSize, jstring path)
|
||||
{
|
||||
char* DestBuffer;
|
||||
int DestSize;
|
||||
int Result;
|
||||
char *InputBuffer;
|
||||
jbyteArray OutputBuffer;
|
||||
jbyte *TempByte;
|
||||
|
||||
DestSize = 0;
|
||||
DestBuffer = NULL;
|
||||
|
||||
TempByte = (*env)->GetByteArrayElements(env, SourceBuffer, 0);
|
||||
InputBuffer = (char*) TempByte;
|
||||
|
||||
|
||||
//
|
||||
// First call compress function and get need buffer size
|
||||
//
|
||||
|
||||
Result = Compress (
|
||||
(char*) InputBuffer,
|
||||
SourceSize,
|
||||
DestBuffer,
|
||||
&DestSize
|
||||
);
|
||||
|
||||
if (Result = EFI_BUFFER_TOO_SMALL) {
|
||||
DestBuffer = malloc (DestSize);
|
||||
}
|
||||
|
||||
//
|
||||
// Second call compress and get the DestBuffer value
|
||||
//
|
||||
Result = Compress(
|
||||
(char*) InputBuffer,
|
||||
SourceSize,
|
||||
DestBuffer,
|
||||
&DestSize
|
||||
);
|
||||
|
||||
//
|
||||
// new a MV array to store the return compressed buffer
|
||||
//
|
||||
OutputBuffer = (*env)->NewByteArray(env, DestSize);
|
||||
(*env)->SetByteArrayRegion(env, OutputBuffer,0, DestSize, (jbyte*) DestBuffer);
|
||||
|
||||
//
|
||||
// Free Ouputbuffer.
|
||||
//
|
||||
free (DestBuffer);
|
||||
|
||||
|
||||
if (Result != 0) {
|
||||
return NULL;
|
||||
} else {
|
||||
return OutputBuffer;
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef _MSC_VER
|
||||
BOOLEAN
|
||||
__stdcall
|
||||
DllMainCRTStartup(
|
||||
unsigned int hDllHandle,
|
||||
unsigned int nReason,
|
||||
void* Reserved
|
||||
)
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
#else
|
||||
#ifdef __GNUC__
|
||||
#endif
|
||||
#endif
|
||||
|
21
Tools/Source/TianoTools/CompressDll/CompressDll.h
Normal file
21
Tools/Source/TianoTools/CompressDll/CompressDll.h
Normal file
@@ -0,0 +1,21 @@
|
||||
/* DO NOT EDIT THIS FILE - it is machine generated */
|
||||
#include <jni.h>
|
||||
/* Header for class org_tianocore_frameworktasks_Compress */
|
||||
|
||||
#ifndef _Included_org_tianocore_framework_tasks_Compress
|
||||
#define _Included_org_tianocore_framework_tasks_Compress
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
/*
|
||||
* Class: org_tianocore_frameworktasks_Compress
|
||||
* Method: CallCompress
|
||||
* Signature: ([BILjava/lang/String;)[B
|
||||
*/
|
||||
JNIEXPORT jbyteArray JNICALL Java_org_tianocore_framework_tasks_Compress_CallCompress
|
||||
(JNIEnv *, jobject, jbyteArray, jint, jstring);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
#endif
|
116
Tools/Source/TianoTools/CompressDll/build.xml
Normal file
116
Tools/Source/TianoTools/CompressDll/build.xml
Normal file
@@ -0,0 +1,116 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
Copyright (c) 2006, Intel Corporation
|
||||
All rights reserved. This program and the accompanying materials
|
||||
are licensed and made available under the terms and conditions of the BSD License
|
||||
which accompanies this distribution. The full text of the license may be found at
|
||||
http://opensource.org/licenses/bsd-license.php
|
||||
|
||||
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
-->
|
||||
<project default="GenTool" basedir=".">
|
||||
<!--EDK GenDepex Tool
|
||||
Copyright (c) 2006, Intel Corporation-->
|
||||
<property environment="env"/>
|
||||
<property name="WORKSPACE" value="${env.WORKSPACE}"/>
|
||||
<property name="ToolName" value="CompressDll"/>
|
||||
<property name="LibName" value="CompressDll"/>
|
||||
<property name="FileSet" value="CompressDll.c CompressDll.h"/>
|
||||
<property name="LibFileSet" value="CompressDll.c DepexParser.h"/>
|
||||
<taskdef resource="cpptasks.tasks"/>
|
||||
<typedef resource="cpptasks.types"/>
|
||||
<taskdef resource="net/sf/antcontrib/antlib.xml"/>
|
||||
<property name="LINK_OUTPUT_TYPE" value="static"/>
|
||||
<property name="BUILD_DIR" value="${WORKSPACE}/Tools/Source/TianoTools/${ToolName}/tmp"/>
|
||||
<target name="GenTool" depends="init,Lib,Dll">
|
||||
<echo message="Building the EDK Tool: ${ToolName}"/>
|
||||
</target>
|
||||
<target name="init">
|
||||
<echo message="The EDK Tool: ${ToolName}"/>
|
||||
<mkdir dir="${BUILD_DIR}"/>
|
||||
<if>
|
||||
<equals arg1="${GCC}" arg2="cygwin"/>
|
||||
<then>
|
||||
<echo message="Cygwin Family"/>
|
||||
<property name="ToolChain" value="gcc"/>
|
||||
</then>
|
||||
<elseif>
|
||||
<os family="dos"/>
|
||||
<then>
|
||||
<echo message="Windows Family"/>
|
||||
<property name="ToolChain" value="msvc"/>
|
||||
</then>
|
||||
</elseif>
|
||||
<elseif>
|
||||
<os family="unix"/>
|
||||
<then>
|
||||
<echo message="UNIX Family"/>
|
||||
<property name="ToolChain" value="gcc"/>
|
||||
</then>
|
||||
</elseif>
|
||||
<else>
|
||||
<echo>Unsupported Operating System
|
||||
Please Contact Intel Corporation</echo>
|
||||
</else>
|
||||
</if>
|
||||
<if>
|
||||
<equals arg1="${ToolChain}" arg2="msvc"/>
|
||||
<then>
|
||||
<property name="ext_static" value=".lib"/>
|
||||
<property name="ext_dynamic" value=".dll"/>
|
||||
<property name="ext_exe" value=".exe"/>
|
||||
</then>
|
||||
<elseif>
|
||||
<equals arg1="${ToolChain}" arg2="gcc"/>
|
||||
<then>
|
||||
<property name="ext_static" value=".a"/>
|
||||
<property name="ext_dynamic" value=".so"/>
|
||||
<property name="ext_exe" value=""/>
|
||||
</then>
|
||||
</elseif>
|
||||
</if>
|
||||
<condition property="CheckDepends">
|
||||
<uptodate targetfile="${BIN_DIR}/${LibName}${ext_dynamic}">
|
||||
<srcfiles dir="${BUILD_DIR}" includes="CommonTools.lib, CustomizedCompress.lib, CompressDll.obj"/>
|
||||
</uptodate>
|
||||
</condition>
|
||||
|
||||
</target>
|
||||
|
||||
<target name="Lib" depends="init">
|
||||
<cc name="${ToolChain}" objdir="${BUILD_DIR}" outtype="static" optimize="speed">
|
||||
<fileset dir="${ToolName}" includes="${LibFileSet}" defaultexcludes="TRUE" excludes="*.xml *.inf"/>
|
||||
<includepath path="${env.WORKSPACE}/MdePkg/Include"/>
|
||||
<includepath path="${env.WORKSPACE}/MdePkg/Include/Ia32"/>
|
||||
<includepath path="${env.WORKSPACE}/MdePkg/Include/Common"/>
|
||||
<includepath path="${PACKAGE_DIR}/Common"/>
|
||||
<includepath path="${env.JAVA_HOME}/include"/>
|
||||
<includepath path="${env.JAVA_HOME}/include/win32"/>
|
||||
</cc>
|
||||
</target>
|
||||
<target name="Dll" unless="CheckDepends">
|
||||
<if>
|
||||
<os family="dos"/>
|
||||
<then>
|
||||
<echo message="Begin link!"/>
|
||||
<exec dir="${BUILD_DIR}" executable="link" failonerror="false">
|
||||
<arg line="kernel32.lib ${LIB_DIR}/CommonTools.lib ${LIB_DIR}/CustomizedCompress.lib /NOLOGO /DLL /MACHINE:I386 /OUT:${BUILD_DIR}/${LibName}${ext_dynamic} ${ToolName}"/>
|
||||
</exec>
|
||||
<copy todir="${BIN_DIR}" file="${BUILD_DIR}/${LibName}${ext_dynamic}"/>
|
||||
</then>
|
||||
</if>
|
||||
</target>
|
||||
<target name="clean" depends="init">
|
||||
<echo message="Removing Intermediate Files Only"/>
|
||||
<delete>
|
||||
<fileset dir="${BUILD_DIR}" includes="*.obj"/>
|
||||
</delete>
|
||||
</target>
|
||||
<target name="cleanall" depends="init">
|
||||
<echo message="Removing Object Files and the Executable: ${ToolName}${ext_exe}"/>
|
||||
<delete dir="${BUILD_DIR}">
|
||||
<fileset dir="${BIN_DIR}" includes="${ToolName}${ext_dynamic}"/>
|
||||
</delete>
|
||||
</target>
|
||||
</project>
|
Reference in New Issue
Block a user