libiio
include
iio
iiod-client.h
1
/* SPDX-License-Identifier: LGPL-2.1-or-later */
2
/*
3
* libiio - Library for interfacing industrial I/O (IIO) devices
4
*
5
* Copyright (C) 2015 Analog Devices, Inc.
6
* Author: Paul Cercueil <paul.cercueil@analog.com>
7
*/
8
9
#ifndef _IIOD_CLIENT_H
10
#define _IIOD_CLIENT_H
11
12
#include <iio/iio-backend.h>
13
14
#define __api __iio_api
15
16
struct
iiod_client
;
17
struct
iiod_client_io
;
18
struct
iiod_client_pdata
;
19
20
struct
iiod_client_ops
{
21
ssize_t (*write)(
struct
iiod_client_pdata
*desc,
22
const
char
*src,
size_t
len,
unsigned
int
timeout_ms);
23
ssize_t (*read)(
struct
iiod_client_pdata
*desc,
24
char
*dst,
size_t
len,
unsigned
int
timeout_ms);
25
ssize_t (*read_line)(
struct
iiod_client_pdata
*desc,
26
char
*dst,
size_t
len,
unsigned
int
timeout_ms);
27
void (*cancel)(
struct
iiod_client_pdata
*desc);
28
};
29
30
__api
void
iiod_client_mutex_lock(
struct
iiod_client
*client);
31
__api
void
iiod_client_mutex_unlock(
struct
iiod_client
*client);
32
33
__api
struct
iiod_client
*
34
iiod_client_new(
const
struct
iio_context_params
*params,
35
struct
iiod_client_pdata
*desc,
36
const
struct
iiod_client_ops
*ops);
37
38
__api
void
iiod_client_destroy(
struct
iiod_client
*client);
39
40
__api
bool
iiod_client_uses_binary_interface(
const
struct
iiod_client
*client);
41
42
__api
int
iiod_client_get_trigger(
struct
iiod_client
*client,
43
const
struct
iio_device
*dev,
44
const
struct
iio_device
**trigger);
45
46
__api
int
iiod_client_set_trigger(
struct
iiod_client
*client,
47
const
struct
iio_device
*dev,
48
const
struct
iio_device
*trigger);
49
50
__api
int
iiod_client_set_kernel_buffers_count(
struct
iiod_client
*client,
51
const
struct
iio_device
*dev,
52
unsigned
int
nb_blocks);
53
54
__api
int
iiod_client_set_timeout(
struct
iiod_client
*client,
55
unsigned
int
timeout);
56
57
__api ssize_t iiod_client_read_attr(
struct
iiod_client
*client,
58
const
struct
iio_device
*dev,
59
const
struct
iio_channel
*chn,
60
const
char
*attr,
char
*dest,
size_t
len,
61
enum
iio_attr_type type,
62
unsigned
int
buf_id);
63
64
__api ssize_t iiod_client_write_attr(
struct
iiod_client
*client,
65
const
struct
iio_device
*dev,
66
const
struct
iio_channel
*chn,
67
const
char
*attr,
const
char
*src,
68
size_t
len,
enum
iio_attr_type type,
69
unsigned
int
buf_id);
70
71
__api
struct
iio_context
*
72
iiod_client_create_context(
struct
iiod_client
*client,
73
const
struct
iio_backend
*backend,
74
const
char
*description,
75
const
char
**ctx_attrs,
76
const
char
**ctx_values,
77
unsigned
int
nb_ctx_attrs);
78
79
__api
struct
iiod_client_buffer_pdata
*
80
iiod_client_create_buffer(
struct
iiod_client
*client,
81
const
struct
iio_device
*dev,
unsigned
int
idx,
82
struct
iio_channels_mask
*mask);
83
__api
void
iiod_client_free_buffer(
struct
iiod_client_buffer_pdata
*pdata);
84
__api
int
iiod_client_enable_buffer(
struct
iiod_client_buffer_pdata
*pdata,
85
size_t
nb_samples,
bool
enable);
86
87
__api
struct
iio_block_pdata
*
88
iiod_client_create_block(
struct
iiod_client_buffer_pdata
*pdata,
89
size_t
size,
void
**data);
90
__api
void
iiod_client_free_block(
struct
iio_block_pdata
*
block
);
91
92
__api
int
iiod_client_enqueue_block(
struct
iio_block_pdata
*block,
93
size_t
bytes_used,
bool
cyclic);
94
95
__api
int
iiod_client_dequeue_block(
struct
iio_block_pdata
*block,
96
bool
nonblock);
97
98
__api ssize_t iiod_client_readbuf(
struct
iiod_client_buffer_pdata
*pdata,
99
void
*dst,
size_t
len);
100
__api ssize_t iiod_client_writebuf(
struct
iiod_client_buffer_pdata
*pdata,
101
const
void
*src,
size_t
len);
102
103
#undef __api
104
105
#endif
/* _IIOD_CLIENT_H */
iio_backend
Definition:
iio-backend.h:127
iiod_client_pdata
Definition:
network.h:19
iiod_client_ops
Definition:
iiod-client.h:20
iio_channel
Represents an input or output channel of a device.
Definition:
iio-private.h:106
iio_device
Represents a device in the IIO context.
Definition:
iio-private.h:130
iiod_client_buffer_pdata
Definition:
iiod-client.c:46
block
Definition:
local-mmap.c:45
iiod_client_io
Definition:
iiod-client.c:35
iio_channels_mask
Definition:
iio-private.h:169
iio_context_params
IIO context creation information.
Definition:
iio.h:126
iio_block_pdata
Definition:
iiod-client.c:58
iio_context
Contains the representation of an IIO context.
Definition:
iio-private.h:81
iiod_client
Definition:
iiod-client.c:26
Generated by
1.8.13