

#if !defined(LIBHLP_H)
#define LIBHLP_H
#if defined(__cplusplus)
extern "C"
{
#endif
#include "hycomp.h"
#include "hyport.h"
#include "jni.h"

  typedef struct HyStringBuffer
  {
    UDATA remaining;
    U_8 data[4];
  } HyStringBuffer;
  struct haCmdlineOptions
  {
    int argc;
    char **argv;
    char **envp;
    HyPortLibrary *portLibrary;
  };
  struct HyPortLibrary;
  extern HY_CFUNC HyStringBuffer *strBufferCat
    PROTOTYPE ((struct HyPortLibrary * portLibrary, HyStringBuffer * buffer,
                const char *string));
  extern HY_CFUNC char *strBufferData PROTOTYPE ((HyStringBuffer * buffer));
  struct HyPortLibrary;
  extern HY_CFUNC HyStringBuffer *strBufferPrepend
    PROTOTYPE ((struct HyPortLibrary * portLibrary, HyStringBuffer * buffer,
                char *string));
  struct HyPortLibrary;
  extern HY_CFUNC HyStringBuffer *strBufferEnsure
    PROTOTYPE ((struct HyPortLibrary * portLibrary, HyStringBuffer * buffer,
                UDATA len));
  extern HY_CFUNC void dumpVersionInfo PROTOTYPE ((HyPortLibrary * portLib));
  extern HY_CFUNC int main_runJavaMain
    PROTOTYPE ((JNIEnv * env, char *mainClassName, int nameIsUTF,
                int java_argc, char **java_argv,
                HyPortLibrary * hyportLibrary));
  extern HY_CFUNC IDATA main_initializeJavaLibraryPath
    PROTOTYPE ((HyPortLibrary * portLib,
                HyStringBuffer ** finalJavaLibraryPath, char *argv0));
  extern HY_CFUNC I_32 main_initializeClassPath
    PROTOTYPE ((HyPortLibrary * portLib, HyStringBuffer ** classPath));
  extern HY_CFUNC IDATA main_initializeJavaHome
    PROTOTYPE ((HyPortLibrary * portLib, HyStringBuffer ** finalJavaHome,
                int argc, char **argv));
#if defined(__cplusplus)
}
#endif
#endif                          /* LIBHLP_H */
