Analog Devices / Mbed OS tinyiiod-example
Committer:
adisuciu
Date:
Fri Dec 13 22:21:29 2019 +0000
Revision:
0:bf917bb43db6
Initial revision

Who changed what in which revision?

UserRevisionLine numberNew contents of line
adisuciu 0:bf917bb43db6 1 /*
adisuciu 0:bf917bb43db6 2 * libtinyiiod - Tiny IIO Daemon Library
adisuciu 0:bf917bb43db6 3 *
adisuciu 0:bf917bb43db6 4 * Copyright (C) 2016 Analog Devices, Inc.
adisuciu 0:bf917bb43db6 5 * Author: Paul Cercueil <paul.cercueil@analog.com>
adisuciu 0:bf917bb43db6 6 *
adisuciu 0:bf917bb43db6 7 * This library is free software; you can redistribute it and/or
adisuciu 0:bf917bb43db6 8 * modify it under the terms of the GNU Lesser General Public
adisuciu 0:bf917bb43db6 9 * License as published by the Free Software Foundation; either
adisuciu 0:bf917bb43db6 10 * version 2.1 of the License, or (at your option) any later version.
adisuciu 0:bf917bb43db6 11 *
adisuciu 0:bf917bb43db6 12 * This library is distributed in the hope that it will be useful,
adisuciu 0:bf917bb43db6 13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
adisuciu 0:bf917bb43db6 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
adisuciu 0:bf917bb43db6 15 * Lesser General Public License for more details.
adisuciu 0:bf917bb43db6 16 */
adisuciu 0:bf917bb43db6 17
adisuciu 0:bf917bb43db6 18 #ifndef TINYIIOD_H
adisuciu 0:bf917bb43db6 19 #define TINYIIOD_H
adisuciu 0:bf917bb43db6 20
adisuciu 0:bf917bb43db6 21 #include "compat.h"
adisuciu 0:bf917bb43db6 22
adisuciu 0:bf917bb43db6 23 struct tinyiiod;
adisuciu 0:bf917bb43db6 24
adisuciu 0:bf917bb43db6 25 struct tinyiiod_ops {
adisuciu 0:bf917bb43db6 26 /* Read from the input stream */
adisuciu 0:bf917bb43db6 27 ssize_t (*read)(char *buf, size_t len);
adisuciu 0:bf917bb43db6 28
adisuciu 0:bf917bb43db6 29 /* Write to the output stream */
adisuciu 0:bf917bb43db6 30 ssize_t (*write)(const char *buf, size_t len);
adisuciu 0:bf917bb43db6 31 ssize_t (*read_line)(char *buf, size_t len);
adisuciu 0:bf917bb43db6 32
adisuciu 0:bf917bb43db6 33 ssize_t (*open_instance)();
adisuciu 0:bf917bb43db6 34
adisuciu 0:bf917bb43db6 35 ssize_t (*close_instance)();
adisuciu 0:bf917bb43db6 36
adisuciu 0:bf917bb43db6 37 ssize_t (*read_attr)(const char *device, const char *attr,
adisuciu 0:bf917bb43db6 38 char *buf, size_t len, bool debug);
adisuciu 0:bf917bb43db6 39 ssize_t (*write_attr)(const char *device, const char *attr,
adisuciu 0:bf917bb43db6 40 const char *buf, size_t len, bool debug);
adisuciu 0:bf917bb43db6 41
adisuciu 0:bf917bb43db6 42 ssize_t (*ch_read_attr)(const char *device, const char *channel,
adisuciu 0:bf917bb43db6 43 bool ch_out, const char *attr, char *buf, size_t len);
adisuciu 0:bf917bb43db6 44 ssize_t (*ch_write_attr)(const char *device, const char *channel,
adisuciu 0:bf917bb43db6 45 bool ch_out, const char *attr,
adisuciu 0:bf917bb43db6 46 const char *buf, size_t len);
adisuciu 0:bf917bb43db6 47
adisuciu 0:bf917bb43db6 48 int32_t (*open)(const char *device, size_t sample_size, uint32_t mask);
adisuciu 0:bf917bb43db6 49 int32_t (*close)(const char *device);
adisuciu 0:bf917bb43db6 50
adisuciu 0:bf917bb43db6 51 ssize_t (*transfer_dev_to_mem)(const char *device, size_t bytes_count);
adisuciu 0:bf917bb43db6 52 ssize_t (*read_data)(const char *device, char *buf, size_t offset,
adisuciu 0:bf917bb43db6 53 size_t bytes_count);
adisuciu 0:bf917bb43db6 54
adisuciu 0:bf917bb43db6 55 ssize_t (*transfer_mem_to_dev)(const char *device, size_t bytes_count);
adisuciu 0:bf917bb43db6 56 ssize_t (*write_data)(const char *device, const char *buf, size_t offset,
adisuciu 0:bf917bb43db6 57 size_t bytes_count);
adisuciu 0:bf917bb43db6 58
adisuciu 0:bf917bb43db6 59 int32_t (*get_mask)(const char *device, uint32_t *mask);
adisuciu 0:bf917bb43db6 60
adisuciu 0:bf917bb43db6 61 int32_t (*set_timeout)(uint32_t timeout);
adisuciu 0:bf917bb43db6 62
adisuciu 0:bf917bb43db6 63 ssize_t (*get_xml)(char **outxml);
adisuciu 0:bf917bb43db6 64 };
adisuciu 0:bf917bb43db6 65
adisuciu 0:bf917bb43db6 66 struct tinyiiod * tinyiiod_create(struct tinyiiod_ops *ops);
adisuciu 0:bf917bb43db6 67 void tinyiiod_destroy(struct tinyiiod *iiod);
adisuciu 0:bf917bb43db6 68 int32_t tinyiiod_read_command(struct tinyiiod *iiod);
adisuciu 0:bf917bb43db6 69
adisuciu 0:bf917bb43db6 70 #endif /* TINYIIOD_H */