From 604371b98d3ad2472e96be8d126df92b2fcf68df Mon Sep 17 00:00:00 2001 From: lhauch Date: Thu, 5 Oct 2006 23:24:16 +0000 Subject: More moves for Tool Packages git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@1676 6f19259b-4bc3-4df7-8a09-765794883524 --- Tools/CCode/Source/CompressDll/CompressDll.c | 105 +++++++++++++++++++++++++++ Tools/CCode/Source/CompressDll/CompressDll.h | 22 ++++++ Tools/CCode/Source/CompressDll/build.xml | 80 ++++++++++++++++++++ 3 files changed, 207 insertions(+) create mode 100644 Tools/CCode/Source/CompressDll/CompressDll.c create mode 100644 Tools/CCode/Source/CompressDll/CompressDll.h create mode 100644 Tools/CCode/Source/CompressDll/build.xml (limited to 'Tools/CCode/Source/CompressDll') 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 +/* 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 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -- cgit v1.2.3