Path: blob/master/runtime/include/exelib_api.h
5986 views
/*******************************************************************************1* Copyright (c) 1991, 2019 IBM Corp. and others2*3* This program and the accompanying materials are made available under4* the terms of the Eclipse Public License 2.0 which accompanies this5* distribution and is available at https://www.eclipse.org/legal/epl-2.0/6* or the Apache License, Version 2.0 which accompanies this distribution and7* is available at https://www.apache.org/licenses/LICENSE-2.0.8*9* This Source Code may also be made available under the following10* Secondary Licenses when the conditions for such availability set11* forth in the Eclipse Public License, v. 2.0 are satisfied: GNU12* General Public License, version 2 with the GNU Classpath13* Exception [1] and GNU General Public License, version 2 with the14* OpenJDK Assembly Exception [2].15*16* [1] https://www.gnu.org/software/classpath/license.html17* [2] http://openjdk.java.net/legal/assembly-exception.html18*19* SPDX-License-Identifier: EPL-2.0 OR Apache-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 OR LicenseRef-GPL-2.0 WITH Assembly-exception20*******************************************************************************/2122#ifndef exelib_api_h23#define exelib_api_h2425/**26* @file exelib_api.h27* @brief Public API for the EXELIB module.28*29* This file contains public function prototypes and30* type definitions for the EXELIB module.31*/3233#include "j9cfg.h"34#include "j9port.h"35#include "j9comp.h"36#include "jni.h"37#include "libhlp.h"3839#ifdef __cplusplus40extern "C" {41#endif4243typedef struct J9StringBuffer {44UDATA remaining;45char data[4];46} J9StringBuffer;4748/* ---------------- libargs.c ---------------- */4950/**51* @brief52* @param **vmOptionsTable53* @param *argv054* @return I_3255*/56I_3257vmOptionsTableAddExeName(58void **vmOptionsTable,59char *argv060);616263/**64* @brief65* @param **vmOptionsTable66* @param *optionString67* @param *extraInfo68* @return I_3269*/70I_3271vmOptionsTableAddOption(72void **vmOptionsTable,73char *optionString,74void *extraInfo75);767778/**79* @brief80* @param **vmOptionsTable81* @param *optionString82* @param *extraInfo83* @return I_3284*/85I_3286vmOptionsTableAddOptionWithCopy(87void **vmOptionsTable,88char *optionString,89void *extraInfo90);919293/**94* @brief95* @param **vmOptionsTable96* @return void97*/98void99vmOptionsTableDestroy(100void **vmOptionsTable101);102103104/**105* @brief106* @param **vmOptionsTable107* @return int108*/109int110vmOptionsTableGetCount(111void **vmOptionsTable112);113114115/**116* @brief117* @param **vmOptionsTable118* @return JavaVMOption *119*/120JavaVMOption *121vmOptionsTableGetOptions(122void **vmOptionsTable123);124125126/**127* @brief128* @param *portLib129* @param **vmOptionsTable130* @param initialCount131* @return I_32132*/133I_32134vmOptionsTableInit(135J9PortLibrary *portLib,136void **vmOptionsTable,137int initialCount138);139140/**141* This function scans for -Djava.home=xxx/jre. If found, it uses it to construct a path142* to redirector jvm.dll and put it in the passed in char buffer:143* --> [java.home]/bin/j9vm/144* This function is meant to be used by thrstatetest and shrtest so the test can be invoked145* in a sdk shape independent way.146*/147BOOLEAN148cmdline_fetchRedirectorDllDir(struct j9cmdlineOptions *args, char *result);149150/* ---------------- libhlp.c ---------------- */151152/**153* @brief154* @param *portLib155* @param sep156* @param **classPath157* @param *toAppend158* @return I_32159*/160I_32161main_appendToClassPath( J9PortLibrary *portLib, U_16 sep, J9StringBuffer **classPath, char *toAppend);162163/**164* @brief165* @param portLib166* @param **finalBootLibraryPath167* @param *argv0168* @return IDATA169*/170IDATA171main_initializeBootLibraryPath(J9PortLibrary * portLib, J9StringBuffer **finalBootLibraryPath, char *argv0);172173174/**175* @brief176* @param *portLib177* @param classPath178* @return I_32179*/180I_32181main_initializeClassPath( J9PortLibrary *portLib, J9StringBuffer** classPath);182183184/**185* @brief186* @param portLib187* @param **finalJavaHome188* @param argc189* @param **argv190* @return IDATA191*/192IDATA193main_initializeJavaHome(J9PortLibrary * portLib, J9StringBuffer **finalJavaHome, int argc, char **argv);194195196/**197* @brief198* @param portLib199* @param **finalJavaLibraryPath200* @param *argv0201* @return IDATA202*/203IDATA204main_initializeJavaLibraryPath(J9PortLibrary * portLib, J9StringBuffer **finalJavaLibraryPath, char *argv0);205206207/**208* @brief209* @param *portLib210* @param sep211* @param **classPath212* @param *toPrepend213* @return I_32214*/215I_32216main_prependToClassPath( J9PortLibrary *portLib, U_16 sep, J9StringBuffer **classPath, char *toPrepend);217218219/**220* @brief221* @param env222* @param *mainClassName223* @param nameIsUTF224* @param java_argc225* @param **java_argv226* @param j9portLibrary227* @return int228*/229int230main_runJavaMain(JNIEnv * env, char *mainClassName, int nameIsUTF, int java_argc, char **java_argv, J9PortLibrary * j9portLibrary);231232233/**234* @brief235* @param portLib236* @param **argv237* @return void238*/239void240main_setNLSCatalog(J9PortLibrary * portLib, char **argv);241242/**243* @brief244* @param *portLib245* @param *argv0246* @param **optionFileName247* @return I_32248*/249I_32250main_findDefaultOptionsFile(J9PortLibrary *portLib, char *argv0, char **optionFileName);251252/**253* @brief254* @param void255* @return char *256*/257char *258main_vmVersionString(void);259260261/**262* @brief263* @param *portLib264* @param *detailString265* @param detailStringLength266* @return char *267*/268char *269vmDetailString( J9PortLibrary *portLib, char *detailString, UDATA detailStringLength );270271272/* ---------------- memcheck.c ---------------- */273274#if (defined(J9VM_OPT_MEMORY_CHECK_SUPPORT)) /* File Level Build Flags */275276/**277* @brief278* @param portLib279* @param *modeStr280* @return IDATA281*/282IDATA283memoryCheck_initialize(J9PortLibrary * portLib, char const *modeStr , char **argv);284285286/**287* @brief288* @param *portLibrary289* @param lastLegalArg290* @param **argv291* @return UDATA292*/293IDATA294memoryCheck_parseCmdLine( J9PortLibrary *portLibrary, UDATA lastLegalArg , char **argv );295296297/**298* @brief299* @param portLib300* @return void301*/302void303memoryCheck_print_report(J9PortLibrary * portLib);304305#endif /* J9VM_OPT_MEMORY_CHECK_SUPPORT */ /* End File Level Build Flags */306307/* ---------------- strbuf.c ---------------- */308309struct J9PortLibrary;310/**311* @brief312* @param *portLibrary313* @param buffer314* @param string315* @return J9StringBuffer*316*/317J9StringBuffer*318strBufferCat(struct J9PortLibrary *portLibrary, J9StringBuffer* buffer, const char* string);319320321/**322* @brief323* @param buffer324* @return char*325*/326char*327strBufferData(J9StringBuffer* buffer);328329330struct J9PortLibrary;331/**332* @brief333* @param *portLibrary334* @param buffer335* @param len336* @return J9StringBuffer*337*/338J9StringBuffer*339strBufferEnsure(struct J9PortLibrary *portLibrary, J9StringBuffer* buffer, UDATA len);340341342struct J9PortLibrary;343/**344* @brief345* @param *portLibrary346* @param buffer347* @param string348* @return J9StringBuffer*349*/350J9StringBuffer*351strBufferPrepend(struct J9PortLibrary *portLibrary, J9StringBuffer* buffer, char* string);352353354#ifdef __cplusplus355}356#endif357358#endif /* exelib_api_h */359360361