18#ifndef LPFLIB_BSPLIB_WRAPPER_H
19#define LPFLIB_BSPLIB_WRAPPER_H
66#if defined _WIN32 || defined __CYGWIN__
67 #define BSPLIB_HELPER_DLL_IMPORT __declspec(dllimport)
68 #define BSPLIB_HELPER_DLL_EXPORT __declspec(dllexport)
69 #define BSPLIB_HELPER_DLL_LOCAL
72 #define BSPLIB_HELPER_DLL_IMPORT __attribute__ ((visibility ("default")))
73 #define BSPLIB_HELPER_DLL_EXPORT __attribute__ ((visibility ("default")))
74 #define BSPLIB_HELPER_DLL_LOCAL __attribute__ ((visibility ("hidden")))
77 #define BSPLIB_HELPER_DLL_IMPORT
78 #define BSPLIB_HELPER_DLL_EXPORT
79 #define BSPLIB_HELPER_DLL_LOCAL
90 #ifdef BSPLIB_DLL_EXPORTS
91 #define BSPLIB_API BSPLIB_HELPER_DLL_EXPORT
93 #define BSPLIB_API BSPLIB_HELPER_DLL_IMPORT
95 #define BSPLIB_LOCAL BSPLIB_HELPER_DLL_LOCAL
110# if LPF_USE_MCBSP_API
121 typedef unsigned int bsp_pid_t;
128 typedef unsigned int bsp_nprocs_t;
136 typedef size_t bsp_size_t;
143 static const bsp_size_t bsp_size_unavailable = (bsp_size_t) -1;
162# define mcbsp_disable_checkpointing()
169# define mcbsp_enable_checkpointing()
176#define bsp_init bsplibstd_init
177#define bsp_abort bsplibstd_abort
178#define bsp_time bsplibstd_time
179#define bsp_sync bsplibstd_sync
180#define bsp_nprocs mcbsp_nprocs
181#define bsp_pid mcbsp_pid
182#define bsp_push_reg mcbsp_push_reg
183#define bsp_pop_reg bsplibstd_pop_reg
184#define bsp_put mcbsp_put
185#define bsp_hpput mcbsp_hpput
186#define bsp_get mcbsp_get
187#define bsp_hpget mcbsp_hpget
188#define bsp_set_tagsize mcbsp_set_tagsize
189#define bsp_send mcbsp_send
190#define bsp_hpsend mcbsp_hpsend
191#define bsp_qsize mcbsp_qsize
192#define bsp_get_tag mcbsp_get_tag
193#define bsp_move mcbsp_move
194#define bsp_hpmove mcbsp_hpmove
200#define bsp_init bsplibstd_init
201#define bsp_abort bsplibstd_abort
202#define bsp_time bsplibstd_time
203#define bsp_sync bsplibstd_sync
204#define bsp_nprocs bsplibstd_nprocs
205#define bsp_pid bsplibstd_pid
206#define bsp_push_reg bsplibstd_push_reg
207#define bsp_pop_reg bsplibstd_pop_reg
208#define bsp_put bsplibstd_put
209#define bsp_hpput bsplibstd_hpput
210#define bsp_get bsplibstd_get
211#define bsp_hpget bsplibstd_hpget
212#define bsp_set_tagsize bsplibstd_set_tagsize
213#define bsp_send bsplibstd_send
214#define bsp_hpsend bsplibstd_hpsend
215#define bsp_qsize bsplibstd_qsize
216#define bsp_get_tag bsplibstd_get_tag
217#define bsp_move bsplibstd_move
218#define bsp_hpmove bsplibstd_hpmove
315 void bsp_init(
void ( *spmd_part ) (
void ),
int argc,
char *argv[] );
318 void bsplibstd_init(
void ( *spmd_part ) (
void ),
int argc,
char *argv[] );
349 #define bsp_begin( maxprocs ) \
350 do { if ( bsplibstd_spawn( (unsigned int) maxprocs )) goto __bsplibstd_end_label ; } while(0)
353 int bsplibstd_spawn(
unsigned int maxprocs );
380 #define bsp_end() bsplibstd_end(); __bsplibstd_end_label:
383 void bsplibstd_end(
void );
402 void bsplibstd_abort(
const char * format, ...);
421 int bsplibstd_nprocs(
void );
424 unsigned int mcbsp_nprocs(
void );
443 int bsplibstd_pid(
void );
446 unsigned int mcbsp_pid(
void );
467 double bsplibstd_time(
void );
506 void bsplibstd_sync(
void );
671 void bsplibstd_push_reg(
const void *ident,
int size );
674 void mcbsp_push_reg(
const void *ident,
size_t size );
700 void bsplibstd_pop_reg(
const void * ident );
746 void bsp_put(
int pid,
const void *src,
void *dst,
747 int offset,
int nbytes );
750 void bsplibstd_put(
int pid,
const void *src,
void *dst,
751 int offset,
int nbytes );
754 void mcbsp_put(
unsigned int pid,
const void *src,
void *dst,
755 size_t offset,
size_t nbytes );
803 int offset,
int nbytes );
806 void bsplibstd_hpput(
int pid,
const void *src,
void *dst,
807 int offset,
int nbytes );
810 void mcbsp_hpput(
unsigned int pid,
const void *src,
void *dst,
811 size_t offset,
size_t nbytes );
856 void bsp_get(
int pid,
const void *src,
int offset,
857 void *dst,
int nbytes );
860 void bsplibstd_get(
int pid,
const void *src,
int offset,
861 void *dst,
int nbytes );
864 void mcbsp_get(
unsigned int pid,
const void *src,
size_t offset,
865 void *dst,
size_t nbytes );
914 void *dst,
int nbytes );
917 void bsplibstd_hpget(
int pid,
const void *src,
int offset,
918 void *dst,
int nbytes );
921 void mcbsp_hpget(
unsigned int pid,
const void *src,
size_t offset,
922 void *dst,
size_t nbytes );
1013 void bsplibstd_set_tagsize(
int * tag_nbytes );
1016 void mcbsp_set_tagsize(
size_t * tag_nbytes );
1048 void bsp_send(
int pid,
const void *tag,
const void *payload,
1049 int payload_nbytes );
1052 void bsplibstd_send(
int pid,
const void *tag,
const void *payload,
1053 int payload_nbytes );
1056 void mcbsp_send(
unsigned int pid,
const void *tag,
const void *payload,
1057 size_t payload_nbytes );
1090 int payload_nbytes );
1093 void bsplibstd_hpsend(
int pid,
const void *tag,
const void *payload,
1094 int payload_nbytes );
1097 void mcbsp_hpsend(
unsigned int pid,
const void *tag,
const void *payload,
1098 size_t payload_nbytes );
1119 void bsplibstd_qsize(
int * nmessages,
int * accum_nbytes );
1122 void mcbsp_qsize(
unsigned int * nmessages,
size_t * accum_nbytes );
1149 void bsplibstd_get_tag(
int * status,
void *tag );
1152 void mcbsp_get_tag(
size_t * status,
void *tag );
1183 void bsplibstd_move(
void *payload,
int reception_bytes );
1186 void mcbsp_move(
void *payload,
size_t reception_bytes );
1210 int bsp_hpmove(
const void **tag_ptr,
const void **payload_ptr );
1213 int bsplibstd_hpmove(
const void **tag_ptr,
const void **payload_ptr );
1216 size_t mcbsp_hpmove(
void **tag_ptr,
void **payload_ptr );
int bsp_hpmove(const void **tag_ptr, const void **payload_ptr)
void bsp_send(int pid, const void *tag, const void *payload, int payload_nbytes)
void bsp_set_tagsize(int *tag_nbytes)
void bsp_hpsend(int pid, const void *tag, const void *payload, int payload_nbytes)
void bsp_move(void *payload, int reception_bytes)
void bsp_get_tag(int *status, void *tag)
void bsp_qsize(int *nmessages, int *accum_nbytes)
void bsp_hpput(int pid, const void *src, void *dst, int offset, int nbytes)
void bsp_get(int pid, const void *src, int offset, void *dst, int nbytes)
void bsp_push_reg(const void *ident, int size)
void bsp_put(int pid, const void *src, void *dst, int offset, int nbytes)
void bsp_pop_reg(const void *ident)
void bsp_hpget(int pid, const void *src, int offset, void *dst, int nbytes)
void bsp_begin(int maxprocs)
void bsp_abort(const char *format,...)
void bsp_init(void(*spmd_part)(void), int argc, char *argv[])