libclamav/bytecode_nojit.c
d1487222
 /*
  *  Load, and verify ClamAV bytecode.
  *
c442ca9c
  *  Copyright (C) 2013-2019 Cisco Systems, Inc. and/or its affiliates. All rights reserved.
  *  Copyright (C) 2009-2013 Sourcefire, Inc.
d1487222
  *
  *  Authors: Török Edvin
  *
  *  This program is free software; you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License version 2 as
  *  published by the Free Software Foundation.
  *
  *  This program is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
  *  along with this program; if not, write to the Free Software
  *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
  *  MA 02110-1301, USA.
  */
 
d0934caf
 #include <stdio.h>
29227461
 #include <stdlib.h>
b2e7c931
 
d1487222
 #include "bytecode.h"
29227461
 #include "bytecode_priv.h"
a97998d2
 #include "clamav.h"
29227461
 #include "others.h"
d1487222
 
29227461
 int cli_bytecode_prepare_jit(struct cli_all_bc *bcs)
d1487222
 {
29227461
     unsigned i;
     for (i=0;i<bcs->count;i++) {
 	if (bcs->all_bcs[i].state == bc_skip)
 	    continue;
670adde2
 	if (bcs->all_bcs[i].state != bc_loaded &&
 	    bcs->all_bcs[i].kind != BC_STARTUP) {
 	    cli_warnmsg("Cannot prepare for JIT, because it has already been converted to interpreter\n");
29227461
 	    return CL_EBYTECODE;
 	}
d1487222
     }
e26a23b1
     cli_dbgmsg("Cannot prepare for JIT, LLVM is not compiled or not linked\n");
d1487222
     return CL_EBYTECODE;
 }
 
29227461
 int cli_vm_execute_jit(const struct cli_all_bc *bcs, struct cli_bc_ctx *ctx, const struct cli_bc_func *func)
d1487222
 {
cd94be7a
     UNUSEDPARAM(bcs);
     UNUSEDPARAM(ctx);
     UNUSEDPARAM(func);
d1487222
     return CL_EBYTECODE;
 }
 
6eeadbfe
 int cli_bytecode_init_jit(struct cli_all_bc *allbc, unsigned dconfmask)
d1487222
 {
cd94be7a
     UNUSEDPARAM(allbc);
     UNUSEDPARAM(dconfmask);
d1487222
     return CL_SUCCESS;
 }
 
a5a19f45
 int cli_bytecode_done_jit(struct cli_all_bc *allbc, int partial)
d1487222
 {
cd94be7a
     UNUSEDPARAM(allbc);
     UNUSEDPARAM(partial);
d1487222
     return CL_SUCCESS;
 }
3b33bd68
 
 void cli_bytecode_debug(int argc, char **argv) {
c0afc517
   /* Empty */
cd94be7a
     UNUSEDPARAM(argc);
     UNUSEDPARAM(argv);
3b33bd68
 }
a97998d2
 
 int bytecode_init(void)
 {
     return 0;
 }
2487a4a3
 
65c740d7
 void cli_bytecode_debug_printsrc(const struct cli_bc_ctx *ctx) {
c0afc517
     /* Empty */
cd94be7a
     UNUSEDPARAM(ctx);
65c740d7
 }
12c6a97e
 void cli_bytecode_printversion(void) {
e26a23b1
   printf("LLVM is not compiled or not linked\n");
d0934caf
 }
2487a4a3
 int have_clamjit=0;
2a7f1cda
 void cli_printcxxver()
 {
     /* Empty */
 }
c85060ff
 void cli_detect_env_jit(struct cli_environment *env)
 {
     /* Empty */
cd94be7a
     UNUSEDPARAM(env);
c85060ff
 }