__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ V / | |__) | __ ___ ____ _| |_ ___ | (___ | |__ ___| | | | |\/| | '__|> < | ___/ '__| \ \ / / _` | __/ _ \ \___ \| '_ \ / _ \ | | | | | | |_ / . \ | | | | | |\ V / (_| | || __/ ____) | | | | __/ | | |_| |_|_(_)_/ \_\ |_| |_| |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1 if you need WebShell for Seo everyday contact me on Telegram Telegram Address : @jackleetFor_More_Tools:
/**************************************************************************/
/* */
/* OCaml */
/* */
/* Xavier Leroy, projet Cristal, INRIA Rocquencourt */
/* */
/* Copyright 1996 Institut National de Recherche en Informatique et */
/* en Automatique. */
/* */
/* All rights reserved. This file is distributed under the terms of */
/* the GNU Lesser General Public License version 2.1, with the */
/* special exception on linking described in the file LICENSE. */
/* */
/**************************************************************************/
/* Machine-dependent interface with the asm code */
#ifndef CAML_STACK_H
#define CAML_STACK_H
#ifdef CAML_INTERNALS
/* Macros to access the stack frame */
#ifdef TARGET_sparc
#define Saved_return_address(sp) *((intnat *)((sp) + 92))
#define Callback_link(sp) ((struct caml_context *)((sp) + 104))
#endif
#ifdef TARGET_i386
#define Saved_return_address(sp) *((intnat *)((sp) - 4))
#ifndef SYS_win32
#define Callback_link(sp) ((struct caml_context *)((sp) + 16))
#else
#define Callback_link(sp) ((struct caml_context *)((sp) + 8))
#endif
#endif
#ifdef TARGET_power
#if defined(MODEL_ppc)
#define Saved_return_address(sp) *((intnat *)((sp) - 4))
#define Callback_link(sp) ((struct caml_context *)((sp) + 16))
#elif defined(MODEL_ppc64)
#define Saved_return_address(sp) *((intnat *)((sp) + 16))
#define Callback_link(sp) ((struct caml_context *)((sp) + (48 + 32)))
#elif defined(MODEL_ppc64le)
#define Saved_return_address(sp) *((intnat *)((sp) + 16))
#define Callback_link(sp) ((struct caml_context *)((sp) + (32 + 32)))
#else
#error "TARGET_power: wrong MODEL"
#endif
#define Already_scanned(sp, retaddr) ((retaddr) & 1)
#define Mask_already_scanned(retaddr) ((retaddr) & ~1)
#define Mark_scanned(sp, retaddr) Saved_return_address(sp) = (retaddr) | 1
#endif
#ifdef TARGET_s390x
#define Saved_return_address(sp) *((intnat *)((sp) - SIZEOF_PTR))
#define Trap_frame_size 16
#define Callback_link(sp) ((struct caml_context *)((sp) + Trap_frame_size))
#endif
#ifdef TARGET_arm
#define Saved_return_address(sp) *((intnat *)((sp) - 4))
#define Callback_link(sp) ((struct caml_context *)((sp) + 8))
#endif
#ifdef TARGET_amd64
#define Saved_return_address(sp) *((intnat *)((sp) - 8))
#define Callback_link(sp) ((struct caml_context *)((sp) + 16))
#endif
#ifdef TARGET_arm64
#define Saved_return_address(sp) *((intnat *)((sp) - 8))
#define Callback_link(sp) ((struct caml_context *)((sp) + 16))
#endif
#ifdef TARGET_riscv /* FIXME FIXME */
#define Saved_return_address(sp) *((intnat *)((sp) - 8))
#define Callback_link(sp) ((struct caml_context *)((sp) + 16))
#endif
/* Structure of OCaml callback contexts */
struct caml_context {
char * bottom_of_stack; /* beginning of OCaml stack chunk */
uintnat last_retaddr; /* last return address in OCaml code */
value * gc_regs; /* pointer to register block */
#ifdef WITH_SPACETIME
void* trie_node;
#endif
};
/* Structure of frame descriptors */
typedef struct {
uintnat retaddr;
unsigned short frame_size;
unsigned short num_live;
unsigned short live_ofs[1];
} frame_descr;
/* Hash table of frame descriptors */
extern frame_descr ** caml_frame_descriptors;
extern int caml_frame_descriptors_mask;
#define Hash_retaddr(addr) \
(((uintnat)(addr) >> 3) & caml_frame_descriptors_mask)
extern void caml_init_frame_descriptors(void);
extern void caml_register_frametable(intnat *);
extern void caml_unregister_frametable(intnat *);
extern void caml_register_dyn_global(void *);
extern uintnat caml_stack_usage (void);
extern uintnat (*caml_stack_usage_hook)(void);
/* Declaration of variables used in the asm code */
extern char * caml_top_of_stack;
extern char * caml_bottom_of_stack;
extern uintnat caml_last_return_address;
extern value * caml_gc_regs;
extern char * caml_exception_pointer;
extern value * caml_globals[];
extern char caml_globals_map[];
extern intnat caml_globals_inited;
extern intnat * caml_frametable[];
CAMLextern frame_descr * caml_next_frame_descriptor(uintnat * pc, char ** sp);
#endif /* CAML_INTERNALS */
#endif /* CAML_STACK_H */
| Name | Type | Size | Permission | Actions |
|---|---|---|---|---|
| address_class.h | File | 3.22 KB | 0644 |
|
| alloc.h | File | 3.27 KB | 0644 |
|
| backtrace.h | File | 5.42 KB | 0644 |
|
| backtrace_prim.h | File | 3.53 KB | 0644 |
|
| bigarray.h | File | 4.75 KB | 0644 |
|
| callback.h | File | 2.41 KB | 0644 |
|
| compact.h | File | 1.34 KB | 0644 |
|
| compare.h | File | 1.22 KB | 0644 |
|
| compatibility.h | File | 12.92 KB | 0644 |
|
| config.h | File | 7.75 KB | 0644 |
|
| custom.h | File | 2.65 KB | 0644 |
|
| debugger.h | File | 4.95 KB | 0644 |
|
| dynlink.h | File | 1.87 KB | 0644 |
|
| exec.h | File | 2.39 KB | 0644 |
|
| fail.h | File | 3.86 KB | 0644 |
|
| finalise.h | File | 1.6 KB | 0644 |
|
| fix_code.h | File | 1.79 KB | 0644 |
|
| freelist.h | File | 1.56 KB | 0644 |
|
| gc.h | File | 3.45 KB | 0644 |
|
| gc_ctrl.h | File | 2.04 KB | 0644 |
|
| globroots.h | File | 1.37 KB | 0644 |
|
| hash.h | File | 1.64 KB | 0644 |
|
| hooks.h | File | 1.48 KB | 0644 |
|
| instrtrace.h | File | 1.51 KB | 0644 |
|
| instruct.h | File | 2.77 KB | 0644 |
|
| int64_emul.h | File | 6.77 KB | 0644 |
|
| int64_format.h | File | 3.57 KB | 0644 |
|
| int64_native.h | File | 2.98 KB | 0644 |
|
| interp.h | File | 1.57 KB | 0644 |
|
| intext.h | File | 7.79 KB | 0644 |
|
| io.h | File | 5.02 KB | 0644 |
|
| jumptbl.h | File | 2.39 KB | 0644 |
|
| major_gc.h | File | 3.31 KB | 0644 |
|
| md5.h | File | 1.96 KB | 0644 |
|
| memory.h | File | 17.13 KB | 0644 |
|
| minor_gc.h | File | 4.36 KB | 0644 |
|
| misc.h | File | 14.2 KB | 0644 |
|
| mlvalues.h | File | 12.23 KB | 0644 |
|
| osdeps.h | File | 4.37 KB | 0644 |
|
| prims.h | File | 1.57 KB | 0644 |
|
| printexc.h | File | 1.37 KB | 0644 |
|
| reverse.h | File | 5.65 KB | 0644 |
|
| roots.h | File | 1.92 KB | 0644 |
|
| signals.h | File | 2.32 KB | 0644 |
|
| signals_machdep.h | File | 2.47 KB | 0644 |
|
| socketaddr.h | File | 2.16 KB | 0644 |
|
| spacetime.h | File | 8.37 KB | 0644 |
|
| stack.h | File | 4.53 KB | 0644 |
|
| stacks.h | File | 1.79 KB | 0644 |
|
| startup.h | File | 2.12 KB | 0644 |
|
| startup_aux.h | File | 1.6 KB | 0644 |
|
| sys.h | File | 1.63 KB | 0644 |
|
| threads.h | File | 3.12 KB | 0644 |
|
| ui.h | File | 1.44 KB | 0644 |
|
| unixsupport.h | File | 1.95 KB | 0644 |
|
| version.h | File | 193 B | 0644 |
|
| weak.h | File | 3.05 KB | 0644 |
|