Lightweight Parallel Foundations 1.0.1-alpha 2023-06-26T11:02:34Z
A high performance and model-compliant communication layer
bsplib.h
Go to the documentation of this file.
1
2/*
3 * Copyright 2021 Huawei Technologies Co., Ltd.
4 *
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 */
17
18#ifndef LPFLIB_CORE_LIBRARY_BSPLIB_H
19#define LPFLIB_CORE_LIBRARY_BSPLIB_H
20
21#include <lpf/core.h>
22
23#ifdef __cplusplus
24extern "C" {
25#endif
26
37typedef struct BSPlib * bsplib_t ;
38
39typedef enum bsplib_err {
52
53
54
55extern _LPFLIB_API
57 int safemode, size_t max_hp_regs, bsplib_t * bsplib );
58
59extern _LPFLIB_API
61
62
63extern _LPFLIB_API
64double bsplib_time( bsplib_t bsplib );
65
66extern _LPFLIB_API
68
69extern _LPFLIB_API
71
72extern _LPFLIB_API
74
75extern _LPFLIB_API
76bsplib_err_t bsplib_push_reg( bsplib_t bsplib, const void * ident, size_t size );
77
78extern _LPFLIB_API
79bsplib_err_t bsplib_pop_reg( bsplib_t bsplib, const void * ident );
80
81extern _LPFLIB_API
82bsplib_err_t bsplib_put( bsplib_t bsplib, lpf_pid_t dst_pid, const void * src,
83 void * dst, size_t offset, size_t nbytes );
84
85extern _LPFLIB_API
86bsplib_err_t bsplib_hpput( bsplib_t bsplib, lpf_pid_t dst_pid, const void * src,
87 void * dst, size_t offset, size_t nbytes );
88
89extern _LPFLIB_API
90bsplib_err_t bsplib_get( bsplib_t bsplib, lpf_pid_t src_pid, const void * src,
91 size_t offset, void * dst, size_t nbytes );
92
93extern _LPFLIB_API
94bsplib_err_t bsplib_hpget( bsplib_t bsplib, lpf_pid_t src_pid, const void * src,
95 size_t offset, void * dst, size_t nbytes );
96
97extern _LPFLIB_API
98size_t bsplib_set_tagsize( bsplib_t bsplib, size_t tagsize );
99
100extern _LPFLIB_API
101bsplib_err_t bsplib_send( bsplib_t bsplib, lpf_pid_t dst_pid, const void * tag,
102 const void * payload, size_t nbytes );
103
104extern _LPFLIB_API
105bsplib_err_t bsplib_hpsend( bsplib_t bsplib, lpf_pid_t dst_pid, const void * tag,
106 const void * payload, size_t nbytes );
107
108extern _LPFLIB_API
109bsplib_err_t bsplib_qsize( bsplib_t bsplib, size_t * nmessages, size_t * accum_bytes );
110
111extern _LPFLIB_API
112bsplib_err_t bsplib_get_tag( bsplib_t bsplib, size_t * status, void * tag );
113
114extern _LPFLIB_API
115bsplib_err_t bsplib_move( bsplib_t bsplib, void * payload, size_t reception_bytes );
116
117extern _LPFLIB_API
118size_t bsplib_hpmove( bsplib_t bsplib, const void ** tag_ptr, const void ** payload_ptr );
119
120#ifdef __cplusplus
121}
122#endif
123
131#endif
132
bsplib_err_t bsplib_hpget(bsplib_t bsplib, lpf_pid_t src_pid, const void *src, size_t offset, void *dst, size_t nbytes)
double bsplib_time(bsplib_t bsplib)
bsplib_err_t bsplib_hpput(bsplib_t bsplib, lpf_pid_t dst_pid, const void *src, void *dst, size_t offset, size_t nbytes)
bsplib_err_t bsplib_hpsend(bsplib_t bsplib, lpf_pid_t dst_pid, const void *tag, const void *payload, size_t nbytes)
bsplib_err_t
Definition: bsplib.h:39
bsplib_err_t bsplib_sync(bsplib_t bsplib)
bsplib_err_t bsplib_create(lpf_t ctx, lpf_pid_t pid, lpf_pid_t nprocs, int safemode, size_t max_hp_regs, bsplib_t *bsplib)
bsplib_err_t bsplib_get(bsplib_t bsplib, lpf_pid_t src_pid, const void *src, size_t offset, void *dst, size_t nbytes)
bsplib_err_t bsplib_qsize(bsplib_t bsplib, size_t *nmessages, size_t *accum_bytes)
size_t bsplib_set_tagsize(bsplib_t bsplib, size_t tagsize)
bsplib_err_t bsplib_get_tag(bsplib_t bsplib, size_t *status, void *tag)
bsplib_err_t bsplib_push_reg(bsplib_t bsplib, const void *ident, size_t size)
lpf_pid_t bsplib_nprocs(bsplib_t bsplib)
bsplib_err_t bsplib_send(bsplib_t bsplib, lpf_pid_t dst_pid, const void *tag, const void *payload, size_t nbytes)
bsplib_err_t bsplib_put(bsplib_t bsplib, lpf_pid_t dst_pid, const void *src, void *dst, size_t offset, size_t nbytes)
size_t bsplib_hpmove(bsplib_t bsplib, const void **tag_ptr, const void **payload_ptr)
bsplib_err_t bsplib_move(bsplib_t bsplib, void *payload, size_t reception_bytes)
bsplib_err_t bsplib_destroy(bsplib_t bsplib)
bsplib_err_t bsplib_pop_reg(bsplib_t bsplib, const void *ident)
lpf_pid_t bsplib_pid(bsplib_t bsplib)
struct BSPlib * bsplib_t
Definition: bsplib.h:37
@ BSPLIB_ERR_OUT_OF_MEMORY
Definition: bsplib.h:41
@ BSPLIB_ERR_FATAL
Definition: bsplib.h:50
@ BSPLIB_ERR_TAGSIZE_MISMATCH
Definition: bsplib.h:45
@ BSPLIB_ERR_MEMORY_ACCESS_OUT_OF_RANGE
Definition: bsplib.h:48
@ BSPLIB_ERR_NULL_POINTER
Definition: bsplib.h:46
@ BSPLIB_ERR_PID_OUT_OF_RANGE
Definition: bsplib.h:47
@ BSPLIB_SUCCESS
Definition: bsplib.h:40
@ BSPLIB_ERR_POPREG_MISMATCH
Definition: bsplib.h:44
@ BSPLIB_ERR_EMPTY_MESSAGE_QUEUE
Definition: bsplib.h:49
@ BSPLIB_ERR_PUSHREG_MISMATCH
Definition: bsplib.h:43
@ BSPLIB_ERR_MEMORY_NOT_REGISTERED
Definition: bsplib.h:42
void * lpf_t
Definition: core.h:775
typedef lpf_pid_t
Definition: core.h:786