• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C++ caml_copy_int64函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了C++中caml_copy_int64函数的典型用法代码示例。如果您正苦于以下问题:C++ caml_copy_int64函数的具体用法?C++ caml_copy_int64怎么用?C++ caml_copy_int64使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。



在下文中一共展示了caml_copy_int64函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: onlyWin32_getFileInformationByHandle_ml

value onlyWin32_getFileInformationByHandle_ml(value handle_v)
{
  HANDLE handle = (HANDLE)handle_v;
  BY_HANDLE_FILE_INFORMATION fileInfo;
  CAMLparam0 ();
  CAMLlocal1 (v);
  ULARGE_INTEGER size, index;

  if( !GetFileInformationByHandle(handle, &fileInfo) ){
    DWORD err = GetLastError();
    win32_maperr(err);
    uerror("GetFileInformationByHandle", Nothing);
  }

  size.HighPart = fileInfo.nFileSizeHigh;
  size.LowPart = fileInfo.nFileSizeLow;
  index.HighPart = fileInfo.nFileIndexHigh;
  index.LowPart = fileInfo.nFileIndexLow;

  v = caml_alloc (8, 0);
  Store_field(v,0, Val_int(fileInfo.dwFileAttributes));
  Store_field(v, 1,
              caml_copy_double(FileTime_to_POSIX(fileInfo.ftCreationTime)));
  Store_field(v, 2,
              caml_copy_double(FileTime_to_POSIX(fileInfo.ftLastAccessTime)));
  Store_field(v, 3,
              caml_copy_double(FileTime_to_POSIX(fileInfo.ftLastWriteTime)));
  Store_field(v, 4, Val_int(fileInfo.dwVolumeSerialNumber));
  Store_field(v, 5, caml_copy_int64(size.QuadPart));
  Store_field(v, 6, Val_int(fileInfo.nNumberOfLinks));
  Store_field(v, 7, caml_copy_int64(index.QuadPart));

  CAMLreturn (v);
}
开发者ID:lefessan,项目名称:typerex-build,代码行数:34,代码来源:onlyWin32_c.c


示例2: stub_xtl_ocaml_progress

static void stub_xtl_ocaml_progress(struct xentoollog_logger *logger,
	const char *context,
	const char *doing_what /* no \r,\n */,
	int percent, unsigned long done, unsigned long total)
{
	caml_leave_blocking_section();
	CAMLparam0();
	CAMLlocalN(args, 5);
	struct caml_xtl *xtl = (struct caml_xtl*)logger;
	value *func = caml_named_value(xtl->progress_cb) ;

	if (func == NULL)
		caml_raise_sys_error(caml_copy_string("Unable to find callback"));

	/* progress : string option -> string -> int -> int64 -> int64 -> unit; */
	args[0] = Val_context(context);
	args[1] = caml_copy_string(doing_what);
	args[2] = Val_int(percent);
	args[3] = caml_copy_int64(done);
	args[4] = caml_copy_int64(total);

	caml_callbackN(*func, 5, args);
	CAMLdone;
	caml_enter_blocking_section();
}
开发者ID:BobBall,项目名称:ocaml-xen-lowlevel-libs,代码行数:25,代码来源:xentoollog_stubs.c


示例3: Val_physinfo

static value Val_physinfo(libxl_physinfo *c_val)
{
	CAMLparam0();
	CAMLlocal2(v, hwcap);
	int i;

	hwcap = caml_alloc_tuple(8);
	for (i = 0; i < 8; i++)
		Store_field(hwcap, i, caml_copy_int32(c_val->hw_cap[i]));

	v = caml_alloc_tuple(11);
	Store_field(v, 0, Val_int(c_val->threads_per_core));
	Store_field(v, 1, Val_int(c_val->cores_per_socket));
	Store_field(v, 2, Val_int(c_val->max_cpu_id));
	Store_field(v, 3, Val_int(c_val->nr_cpus));
	Store_field(v, 4, Val_int(c_val->cpu_khz));
	Store_field(v, 5, caml_copy_int64(c_val->total_pages));
	Store_field(v, 6, caml_copy_int64(c_val->free_pages));
	Store_field(v, 7, caml_copy_int64(c_val->scrub_pages));
	Store_field(v, 8, Val_int(c_val->nr_nodes));
	Store_field(v, 9, hwcap);
	Store_field(v, 10, caml_copy_int32(c_val->phys_cap));

	CAMLreturn(v);
}
开发者ID:Angel666,项目名称:android_hardware_intel,代码行数:25,代码来源:xl_stubs.c


示例4: get_section_data_internal

value get_section_data_internal( bhp _p )
{
    CAMLparam0();
    CAMLlocal4( data, v, str, tupl );

    bh* p = (bh*) _p;
    struct bfd* abfd = p->bfdp;
    asection *sect;
    bfd_size_type datasize = 0;

    data = Val_emptylist;

    if ( p->is_from_file ) {

        for ( sect = abfd->sections; sect != NULL; sect = sect->next ) {
            datasize = bfd_get_section_size( sect );
            str = caml_alloc_string( datasize );
            bfd_get_section_contents( abfd, sect,
                                      (bfd_byte*)String_val(str),
                                      0, datasize );
            tupl = caml_alloc_tuple( 3 );
            Store_field( tupl, 0, str );
            Store_field( tupl, 1, caml_copy_int64( sect->vma ) );
            Store_field( tupl, 2, caml_copy_int64( sect->vma + datasize ) );
            v = caml_alloc_small( 2, 0 );
            Field( v, 0 ) = tupl;
            Field( v, 1 ) = data;
            data = v;
        }

    }

    CAMLreturn( data );
}
开发者ID:chubbymaggie,项目名称:libbil,代码行数:34,代码来源:bfdwrap_helper.c


示例5: stub_get_blktap3_stats

CAMLprim value stub_get_blktap3_stats(value filename)
{

	CAMLparam1(filename);
	CAMLlocal1(stats);

	FILE *c_fd;
	struct stats c_stats;

	c_fd = fopen(String_val(filename), "rb");

	if (!c_fd) uerror("fopen", Nothing);
	if (fread(&c_stats, sizeof(struct stats), 1, c_fd) < 1) uerror("fread", Nothing);

	stats = caml_alloc_tuple(10);

	Store_field(stats, 0, caml_copy_int64((int64_t) c_stats.read_reqs_submitted));
	Store_field(stats, 1, caml_copy_int64((int64_t) c_stats.read_reqs_completed));
	Store_field(stats, 2, caml_copy_int64((int64_t) c_stats.read_sectors));
	Store_field(stats, 3, caml_copy_int64((int64_t) c_stats.read_total_ticks));
	Store_field(stats, 4, caml_copy_int64((int64_t) c_stats.write_reqs_submitted));
	Store_field(stats, 5, caml_copy_int64((int64_t) c_stats.write_reqs_completed));
	Store_field(stats, 6, caml_copy_int64((int64_t) c_stats.write_sectors));
	Store_field(stats, 7, caml_copy_int64((int64_t) c_stats.write_total_ticks));
	Store_field(stats, 8, caml_copy_int64((int64_t) c_stats.io_errors));
	if ((c_stats.flags) & BT3_LOW_MEMORY_MODE)
		Store_field(stats, 9, Val_true);
	else
		Store_field(stats, 9, Val_false);

	fclose(c_fd);

	CAMLreturn(stats);

}
开发者ID:euanh,项目名称:rrdd-plugins,代码行数:35,代码来源:blktap3_stats_stubs.c


示例6: caml_int64_mod

CAMLprim value caml_int64_mod(value v1, value v2)
{
  int64 dividend = Int64_val(v1);
  int64 divisor = Int64_val(v2);
  if (I64_is_zero(divisor)) caml_raise_zero_divide();
  /* PR#4740: on some processors, division crashes on overflow.
     Implement the same behavior as for type "int". */
  if (I64_is_min_int(dividend) && I64_is_minus_one(divisor)) {
    int64 zero = I64_literal(0,0);
    return caml_copy_int64(zero);
  }
  return caml_copy_int64(I64_mod(Int64_val(v1), divisor));
}
开发者ID:dirkdokter,项目名称:pprz-installer-fedora,代码行数:13,代码来源:ints.c


示例7: caml_Val_file_offset

CAMLexport value caml_Val_file_offset(file_offset fofs)
{
  int64 ofs;
  ofs.l = fofs;
  ofs.h = 0;
  return caml_copy_int64(ofs);
}
开发者ID:joechenq,项目名称:multi-script,代码行数:7,代码来源:ocaml_io.c


示例8: brlapiml_waitKey

CAMLprim value brlapiml_waitKey(value handle, value unit)
{
  CAMLparam2(handle, unit);
  brlapi_keyCode_t keyCode;
  brlapiCheckError(readKey, 1, &keyCode);
  CAMLreturn(caml_copy_int64(keyCode));
}
开发者ID:Feechka,项目名称:UOBP,代码行数:7,代码来源:brlapi_stubs.c


示例9: caml_int64_of_string

CAMLprim value caml_int64_of_string(value s)
{
  char * p;
  uint64 max_uint64 = I64_literal(0xFFFFFFFF, 0xFFFFFFFF);
  uint64 max_int64  = I64_literal(0x80000000, 0x00000000);
  uint64 res, threshold;
  int sign, base, d;

  p = parse_sign_and_base(String_val(s), &base, &sign);
  I64_udivmod(max_uint64, I64_of_int32(base), &threshold, &res);
  d = parse_digit(*p);
  if (d < 0 || d >= base) caml_failwith("int_of_string");
  res = I64_of_int32(d);
  for (p++; /*nothing*/; p++) {
    char c = *p;
    if (c == '_') continue;
    d = parse_digit(c);
    if (d < 0 || d >= base) break;
    /* Detect overflow in multiplication base * res */
    if (I64_ult(threshold, res)) caml_failwith("int_of_string");
    res = I64_add(I64_mul(I64_of_int32(base), res), I64_of_int32(d));
    /* Detect overflow in addition (base * res) + d */
    if (I64_ult(res, I64_of_int32(d))) caml_failwith("int_of_string");
  }
  if (p != String_val(s) + caml_string_length(s)){
    caml_failwith("int_of_string");
  }
  if (base == 10 && I64_ult(max_int64, res)) caml_failwith("int_of_string");
  if (sign < 0) res = I64_neg(res);
  return caml_copy_int64(res);
}
开发者ID:dirkdokter,项目名称:pprz-installer-fedora,代码行数:31,代码来源:ints.c


示例10: stub_sendfile64

CAMLprim value stub_sendfile64(value in_fd, value out_fd, value len){
  CAMLparam3(in_fd, out_fd, len);
  CAMLlocal1(result);
  size_t c_len = Int64_val(len);
  size_t bytes;
  int c_in_fd = Int_val(in_fd);
  int c_out_fd = Int_val(out_fd);

  int rc = NOT_IMPLEMENTED;

  enter_blocking_section();

#ifdef __linux__
  rc = TRIED_AND_FAILED;
  bytes = sendfile(c_out_fd, c_in_fd, NULL, c_len);
  if (bytes != -1) rc = OK;
#endif

  leave_blocking_section();

  switch (rc) {
    case NOT_IMPLEMENTED:
      caml_failwith("This platform does not support sendfile()");
      break;
    case TRIED_AND_FAILED:
      uerror("sendfile", Nothing);
      break;
    default: break;
  }
  result = caml_copy_int64(bytes);
  CAMLreturn(result);
}
开发者ID:djs55,项目名称:vhd-tool,代码行数:32,代码来源:sendfile64_stubs.c


示例11: caml_query_performance_frequency

value caml_query_performance_frequency() {
    LARGE_INTEGER freq;
    if (!QueryPerformanceFrequency(&freq)) {
        caml_failwith("QueryPerformanceFrequency");
        return 0;
    }
    return caml_copy_int64(freq.QuadPart);
}
开发者ID:amintimany,项目名称:verifast,代码行数:8,代码来源:caml_perf.c


示例12: caml_query_performance_counter

value caml_query_performance_counter() {
    LARGE_INTEGER count;
    if (!QueryPerformanceCounter(&count)) {
        caml_failwith("QueryPerformanceCounter");
        return 0;
    }
    return caml_copy_int64(count.QuadPart);
}
开发者ID:amintimany,项目名称:verifast,代码行数:8,代码来源:caml_perf.c


示例13: stub_xenctrlext_get_runstate_info

CAMLprim value stub_xenctrlext_get_runstate_info(value xch, value domid)
{
	CAMLparam2(xch, domid);
#if defined(XENCTRL_HAS_GET_RUNSTATE_INFO)
	CAMLlocal1(result);
	xc_runstate_info_t info;
	int retval;

	retval = xc_get_runstate_info(_H(xch), _D(domid), &info);
	if (retval < 0)
		failwith_xc(_H(xch));

	/* Store
	   0 : state (int32)
	   1 : missed_changes (int32)
	   2 : state_entry_time (int64)
	   3-8 : times (int64s)
	*/
	result = caml_alloc_tuple(9);
	Store_field(result, 0, caml_copy_int32(info.state));
	Store_field(result, 1, caml_copy_int32(info.missed_changes));
	Store_field(result, 2, caml_copy_int64(info.state_entry_time));
	Store_field(result, 3, caml_copy_int64(info.time[0]));
	Store_field(result, 4, caml_copy_int64(info.time[1]));
	Store_field(result, 5, caml_copy_int64(info.time[2]));
	Store_field(result, 6, caml_copy_int64(info.time[3]));
	Store_field(result, 7, caml_copy_int64(info.time[4]));
	Store_field(result, 8, caml_copy_int64(info.time[5]));

	CAMLreturn(result);
#else
	caml_failwith("XENCTRL_HAS_GET_RUNSTATE_INFO not defined");
#endif
}
开发者ID:andyhhp,项目名称:xenopsd,代码行数:34,代码来源:xenctrlext_stubs.c


示例14: caml_get_addr

CAMLprim value
caml_get_addr(value page)
{
  CAMLparam1(page);
  CAMLlocal1(int64);
  void *data = Caml_ba_data_val(page);
  int64 = caml_copy_int64((uint64_t) data);
  CAMLreturn(int64);
}
开发者ID:avsm,项目名称:io-page,代码行数:9,代码来源:stub_get_addr.c


示例15: mk_int64_paranode

paranode mk_int64_paranode(int64_t l, source_info_t *src_info) {
  CAMLparam0();
  CAMLlocal1(val);

  val = caml_alloc(1, PARNUM_INT64);
  Store_field(val, 0, caml_copy_int64(l));

  CAMLreturnT(paranode, mk_num(val, src_info));
}
开发者ID:iskandr,项目名称:parakeet-retired,代码行数:9,代码来源:ast_stubs.c


示例16: caml_int64_bits_of_float

CAMLprim value caml_int64_bits_of_float(value vd)
{
  union { double d; int64 i; int32 h[2]; } u;
  u.d = Double_val(vd);
#if defined(__arm__) && !defined(__ARM_EABI__)
  { int32 t = u.h[0]; u.h[0] = u.h[1]; u.h[1] = t; }
#endif
  return caml_copy_int64(u.i);
}
开发者ID:dirkdokter,项目名称:pprz-installer-fedora,代码行数:9,代码来源:ints.c


示例17: wxDateTime_GetValue_c

value wxDateTime_GetValue_c(value self_v)
{
  CAMLparam0();
  CAMLlocal1(ret_v);
  wxDateTime* self_c = (wxDateTime*)Abstract_val(WXCLASS_wxDateTime, self_v);
  wxLongLong ret_c = self_c->GetValue();
  ret_v = caml_copy_int64(ret_c.GetValue());
  CAMLreturn(ret_v);
}
开发者ID:OCamlPro,项目名称:ocplib-wxOCaml,代码行数:9,代码来源:wxOCaml.cpp


示例18: brlapiml_readKeyWithTimeout

CAMLprim value brlapiml_readKeyWithTimeout(value handle, value timeout_ms)
{
  CAMLparam2(handle, timeout_ms);
  int res;
  brlapi_keyCode_t keyCode;
  CAMLlocal1(retVal);
  brlapiCheckErrorWithCode(readKeyWithTimeout, &res, Int_val(timeout_ms), &keyCode);
  if (res==0) CAMLreturn(Val_int(0));
  retVal = caml_alloc(1, 1);
  Store_field(retVal, 0, caml_copy_int64(keyCode));
  CAMLreturn(retVal);
}
开发者ID:mlang,项目名称:brltty,代码行数:12,代码来源:brlapi_stubs.c


示例19: brlapiml_readKey

CAMLprim value brlapiml_readKey(value handle, value unit)
{
  CAMLparam2(handle, unit);
  int res;
  brlapi_keyCode_t keyCode;
  CAMLlocal1(retVal);
  brlapiCheckErrorWithCode(readKey, &res, 0, &keyCode);
  if (res==0) CAMLreturn(Val_int(0));
  retVal = caml_alloc(1, 1);
  Store_field(retVal, 0, caml_copy_int64(keyCode));
  CAMLreturn(retVal);
}
开发者ID:Feechka,项目名称:UOBP,代码行数:12,代码来源:brlapi_stubs.c


示例20: bbl_instrument

int bbl_instrument( unsigned long addr,
                    const bbl_content* content,
                    const reg_context* context,
                    const THREADID tid )
{
    CAMLparam0();
    CAMLlocal1( ret );
    CAMLlocalN( caml_args, 5 );
    unsigned i, j;
    uint32_t size = (uint32_t) content->size;
    static value *bbl_instrument_closure = NULL;

    if ( !bbl_instrument_closure ) {
        bbl_instrument_closure = caml_named_value( "bbl_instrument" );
    }

    caml_args[0] = caml_copy_nativeint( addr );
    caml_args[1] = caml_copy_int32( size );

    caml_args[2] = caml_alloc_string( size );
    memcpy( (unsigned char*)String_val(caml_args[2]), content->content, size );

    caml_args[3] = caml_alloc_tuple( 45 );
    for ( i = 0; i < 20; ++i ) {
        Store_field( caml_args[3], i, caml_copy_nativeint( ((long*) &context->eax)[i] ) );
    }
    for ( i = 20; i < 29; ++i ) {
        Store_field( caml_args[3], i, Val_bool( ((long*) &context->eax)[i] ) );
    }
    for ( i = 29, j = 0; i < 45; ++i ) {
        Store_field( caml_args[3], i, caml_copy_int64( ((uint64_t*) &context->xmm0)[j++] ) );
        Store_field( caml_args[3], i, caml_copy_int64( ((uint64_t*) &context->xmm0)[j++] ) );
    }

    caml_args[4] = Val_int( tid );

    ret = caml_callbackN( *bbl_instrument_closure, 5, caml_args );

    CAMLreturnT( int, Int_val(ret) );
}
开发者ID:ArashAll,项目名称:symfuzz,代码行数:40,代码来源:analysis_api.cpp



注:本文中的caml_copy_int64函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C++ caml_enter_blocking_section函数代码示例发布时间:2022-05-30
下一篇:
C++ caml_copy_double函数代码示例发布时间:2022-05-30
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap