__  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ V /  | |__) | __ ___   ____ _| |_ ___  | (___ | |__   ___| | |
 | |\/| | '__|> <   |  ___/ '__| \ \ / / _` | __/ _ \  \___ \| '_ \ / _ \ | |
 | |  | | |_ / . \  | |   | |  | |\ V / (_| | ||  __/  ____) | | | |  __/ | |
 |_|  |_|_(_)_/ \_\ |_|   |_|  |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1
 if you need WebShell for Seo everyday contact me on Telegram
 Telegram Address : @jackleet
        
        
For_More_Tools: Telegram: @jackleet | Bulk Smtp support mail sender | Business Mail Collector | Mail Bouncer All Mail | Bulk Office Mail Validator | Html Letter private



Upload:

Command:

kentishfootball@216.73.216.211: ~ $
/**************************************************************************/
/*                                                                        */
/*                                 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.          */
/*                                                                        */
/**************************************************************************/

/* Buffered input/output */

#ifndef CAML_IO_H
#define CAML_IO_H

#ifdef CAML_INTERNALS

#include "misc.h"
#include "mlvalues.h"

#ifndef IO_BUFFER_SIZE
#define IO_BUFFER_SIZE 65536
#endif

#if defined(_WIN32)
typedef __int64 file_offset;
#elif defined(HAS_OFF_T)
#include <sys/types.h>
typedef off_t file_offset;
#else
typedef long file_offset;
#endif

struct channel {
  int fd;                       /* Unix file descriptor */
  file_offset offset;           /* Absolute position of fd in the file */
  char * end;                   /* Physical end of the buffer */
  char * curr;                  /* Current position in the buffer */
  char * max;                   /* Logical end of the buffer (for input) */
  void * mutex;                 /* Placeholder for mutex (for systhreads) */
  struct channel * next, * prev;/* Double chaining of channels (flush_all) */
  int revealed;                 /* For Cash only */
  int old_revealed;             /* For Cash only */
  int refcount;                 /* For flush_all and for Cash */
  int flags;                    /* Bitfield */
  char buff[IO_BUFFER_SIZE];    /* The buffer itself */
  char * name;                  /* Optional name (to report fd leaks) */
};

enum {
  CHANNEL_FLAG_FROM_SOCKET = 1,  /* For Windows */
#if defined(NATIVE_CODE) && defined(WITH_SPACETIME)
  CHANNEL_FLAG_BLOCKING_WRITE = 2,
#endif
};

/* For an output channel:
     [offset] is the absolute position of the beginning of the buffer [buff].
   For an input channel:
     [offset] is the absolute position of the logical end of the buffer, [max].
*/

/* Functions and macros that can be called from C.  Take arguments of
   type struct channel *.  No locking is performed. */

#define caml_putch(channel, ch) do{                                       \
  if ((channel)->curr >= (channel)->end) caml_flush_partial(channel);     \
  *((channel)->curr)++ = (ch);                                            \
}while(0)

#define caml_getch(channel)                                                 \
  ((channel)->curr >= (channel)->max                                        \
   ? caml_refill(channel)                                                   \
   : (unsigned char) *((channel)->curr)++)

CAMLextern struct channel * caml_open_descriptor_in (int);
CAMLextern struct channel * caml_open_descriptor_out (int);
CAMLextern void caml_close_channel (struct channel *);
CAMLextern int caml_channel_binary_mode (struct channel *);
CAMLextern value caml_alloc_channel(struct channel *chan);

CAMLextern int caml_flush_partial (struct channel *);
CAMLextern void caml_flush (struct channel *);
CAMLextern void caml_putword (struct channel *, uint32_t);
CAMLextern int caml_putblock (struct channel *, char *, intnat);
CAMLextern void caml_really_putblock (struct channel *, char *, intnat);

CAMLextern unsigned char caml_refill (struct channel *);
CAMLextern uint32_t caml_getword (struct channel *);
CAMLextern int caml_getblock (struct channel *, char *, intnat);
CAMLextern intnat caml_really_getblock (struct channel *, char *, intnat);

/* Extract a struct channel * from the heap object representing it */

#define Channel(v) (*((struct channel **) (Data_custom_val(v))))

/* The locking machinery */

CAMLextern void (*caml_channel_mutex_free) (struct channel *);
CAMLextern void (*caml_channel_mutex_lock) (struct channel *);
CAMLextern void (*caml_channel_mutex_unlock) (struct channel *);
CAMLextern void (*caml_channel_mutex_unlock_exn) (void);

CAMLextern struct channel * caml_all_opened_channels;

#define Lock(channel) \
  if (caml_channel_mutex_lock != NULL) (*caml_channel_mutex_lock)(channel)
#define Unlock(channel) \
  if (caml_channel_mutex_unlock != NULL) (*caml_channel_mutex_unlock)(channel)
#define Unlock_exn() \
  if (caml_channel_mutex_unlock_exn != NULL) (*caml_channel_mutex_unlock_exn)()

/* Conversion between file_offset and int64_t */

#define Val_file_offset(fofs) caml_copy_int64(fofs)
#define File_offset_val(v) ((file_offset) Int64_val(v))

#endif /* CAML_INTERNALS */

#endif /* CAML_IO_H */

Filemanager

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
Filemanager