diff options
author | lhauch <lhauch@6f19259b-4bc3-4df7-8a09-765794883524> | 2006-10-05 23:24:16 +0000 |
---|---|---|
committer | lhauch <lhauch@6f19259b-4bc3-4df7-8a09-765794883524> | 2006-10-05 23:24:16 +0000 |
commit | 604371b98d3ad2472e96be8d126df92b2fcf68df (patch) | |
tree | c51c0d63bf3517ed48b28b111cf744dd5da4c866 /Tools/CCode/Source/CompressDll | |
parent | 28305207ea586d0b5ceb530b0e2a436cad9fdd8f (diff) | |
download | edk2-platforms-604371b98d3ad2472e96be8d126df92b2fcf68df.tar.xz |
More moves for Tool Packages
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@1676 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'Tools/CCode/Source/CompressDll')
-rw-r--r-- | Tools/CCode/Source/CompressDll/CompressDll.c | 105 | ||||
-rw-r--r-- | Tools/CCode/Source/CompressDll/CompressDll.h | 22 | ||||
-rw-r--r-- | Tools/CCode/Source/CompressDll/build.xml | 80 |
3 files changed, 207 insertions, 0 deletions
diff --git a/Tools/CCode/Source/CompressDll/CompressDll.c b/Tools/CCode/Source/CompressDll/CompressDll.c new file mode 100644 index 0000000000..cc06f26c05 --- /dev/null +++ b/Tools/CCode/Source/CompressDll/CompressDll.c @@ -0,0 +1,105 @@ +/** @file
+ Compression DLL used by PCD Tools
+
+ 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.
+
+**/
+#if defined(__GNUC__)
+typedef long long __int64;/*For cygwin build*/
+#endif
+#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
+
diff --git a/Tools/CCode/Source/CompressDll/CompressDll.h b/Tools/CCode/Source/CompressDll/CompressDll.h new file mode 100644 index 0000000000..fa3b83cd10 --- /dev/null +++ b/Tools/CCode/Source/CompressDll/CompressDll.h @@ -0,0 +1,22 @@ +/* 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
diff --git a/Tools/CCode/Source/CompressDll/build.xml b/Tools/CCode/Source/CompressDll/build.xml new file mode 100644 index 0000000000..5043d127d5 --- /dev/null +++ b/Tools/CCode/Source/CompressDll/build.xml @@ -0,0 +1,80 @@ +<?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 CompressDll Tool Library
+ Copyright (c) 2006, Intel Corporation
+-->
+
+ <property name="WORKSPACE" value="${env.WORKSPACE}"/>
+ <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/${LibName}/tmp"/>
+
+ <target name="GenTool" depends="init,Lib" >
+ <echo message="The EDK Tool Library: ${LibName} build has completed!"/>
+ </target>
+
+ <target name="init">
+ <echo message="Building the EDK Tool Library: ${LibName}"/>
+ <mkdir dir="${BUILD_DIR}"/>
+ </target>
+
+ <target name="Lib" depends="init">
+ <cc name="${ToolChain}"
+ objdir="${BUILD_DIR}"
+ outtype="shared"
+ debug="true"
+ optimize="speed"
+ outfile="${BIN_DIR}/${LibName}"
+ outputfileproperty="result"
+ >
+ <compilerarg value="${ExtraArgus}" if="ExtraArgus" />
+ <fileset dir="${LibName}" includes="${LibFileSet}" defaultexcludes="TRUE" excludes="*.xml *.inf"/>
+ <includepath path="${PACKAGE_DIR}/Include"/>
+ <includepath path="${PACKAGE_DIR}/Include/${HostArch}"/>
+ <includepath path="${PACKAGE_DIR}/Common"/>
+ <includepath path="${env.JAVA_HOME}/include"/>
+ <includepath path="${env.JAVA_HOME}/include/linux" if="gcc"/>
+ <includepath path="${env.JAVA_HOME}/include/win32" if="cygwin"/>
+ <includepath path="${env.JAVA_HOME}/include/win32" if="msft"/>
+ <libset dir="${LIB_DIR}" libs="CommonTools"/>
+ <syslibset libs="kernel32" if="msft"/>
+ <linkerarg value="-mno-cygwin" if="cygwin"/>
+ <linkerarg value="--add-stdcall-alias" if="cygwin"/>
+ </cc>
+ <copy file="${result}" tofile="${BIN_DIR}/CompressDll.dll"/>
+ <chmod file="${BIN_DIR}/CompressDll.dll" perm="ugo+x"/>
+ </target>
+
+ <target name="clean">
+ <echo message="Removing Intermediate Files Only"/>
+ <delete>
+ <fileset dir="${BUILD_DIR}" includes="*.obj"/>
+ </delete>
+ </target>
+
+ <target name="cleanall">
+ <echo message="Removing Object Files and the Executable: ${LibName}${ext_shared}"/>
+ <delete failonerror="false" quiet="true" includeEmptyDirs="true">
+ <fileset dir="${BUILD_DIR}"/>
+ <fileset file="${BIN_DIR}/${LibName}.*"/>
+ </delete>
+ </target>
+</project>
|