Sha256: b80c3e3f5e4887283a6e9d1c321089475d223ea808b65e6a508a7482f204c409

Contents?: true

Size: 1.57 KB

Versions: 158

Compression:

Stored size: 1.57 KB

Contents

/*
 * Copyright (c) 2009, 2010 Wayne Meissner
 * All rights reserved.
 *
 * This file is part of ruby-ffi.
 *
 * This code is free software: you can redistribute it and/or modify it under
 * the terms of the GNU Lesser General Public License version 3 only, as
 * published by the Free Software Foundation.
 *
 * This code 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 Lesser General Public License
 * version 3 for more details.
 *
 * You should have received a copy of the GNU Lesser General Public License
 * version 3 along with this work.  If not, see <http://www.gnu.org/licenses/>.
 */

#ifndef RUBYFFI_CLOSUREPOOL_H
#define RUBYFFI_CLOSUREPOOL_H

typedef struct ClosurePool_ ClosurePool;
typedef struct Closure_ Closure;

struct Closure_ {
    void* info;      /* opaque handle for storing closure-instance specific data */
    void* function;  /* closure-instance specific function, called by custom trampoline */
    void* code;      /* The native trampoline code location */
    struct ClosurePool_* pool;
    Closure* next;
};

void rbffi_ClosurePool_Init(VALUE module);

ClosurePool* rbffi_ClosurePool_New(int closureSize, 
        bool (*prep)(void* ctx, void *code, Closure* closure, char* errbuf, size_t errbufsize),
        void* ctx);

void rbffi_ClosurePool_Free(ClosurePool *);

Closure* rbffi_Closure_Alloc(ClosurePool *);
void rbffi_Closure_Free(Closure *);

void* rbffi_Closure_GetCodeAddress(Closure *);

#endif /* RUBYFFI_CLOSUREPOOL_H */

Version data entries

158 entries across 158 versions & 13 rubygems

Version Path
ffi-1.2.0.dev2 ext/ffi_c/ClosurePool.h
librarian-puppet-0.9.3 vendor/gems/ruby/1.8/gems/ffi-1.1.5/ext/ffi_c/ClosurePool.h
classiccms-0.5.7 vendor/bundle/gems/ffi-1.0.11/ext/ffi_c/ClosurePool.h
ffi-1.1.5 ext/ffi_c/ClosurePool.h
classiccms-0.5.6 vendor/bundle/gems/ffi-1.0.11/ext/ffi_c/ClosurePool.h
ffi-1.1.4-x86-mingw32 ext/ffi_c/ClosurePool.h
ffi-1.1.4 ext/ffi_c/ClosurePool.h
classiccms-0.5.5 vendor/bundle/gems/ffi-1.0.11/ext/ffi_c/ClosurePool.h
classiccms-0.5.2 vendor/bundle/gems/ffi-1.0.11/ext/ffi_c/ClosurePool.h
classiccms-0.5.1 vendor/bundle/gems/ffi-1.0.11/ext/ffi_c/ClosurePool.h
classiccms-0.5.0 vendor/bundle/gems/ffi-1.0.11/ext/ffi_c/ClosurePool.h
ffi-1.1.3-x86-mingw32 ext/ffi_c/ClosurePool.h
ffi-1.1.3 ext/ffi_c/ClosurePool.h
ffi-1.1.2-x86-mingw32 ext/ffi_c/ClosurePool.h
ffi-1.1.2 ext/ffi_c/ClosurePool.h
ffi-1.2.0.dev ext/ffi_c/ClosurePool.h
ffi-1.1.1-x86-mingw32 ext/ffi_c/ClosurePool.h
ffi-1.1.1 ext/ffi_c/ClosurePool.h
ffi-1.1.1.rc2 ext/ffi_c/ClosurePool.h
ffi-1.1.1.rc1 ext/ffi_c/ClosurePool.h