no-OS
Classes | Macros | Functions
iio.c File Reference

Implementation of iio. This module implements read/write ops, required by libtinyiiod and further calls show/store functions, corresponding to device/channel/attribute. More...

#include "iio.h"
#include "iio_types.h"
#include "iiod.h"
#include "ctype.h"
#include "no-os/util.h"
#include "no-os/list.h"
#include "no-os/error.h"
#include "no-os/uart.h"
#include "no-os/circular_buffer.h"
#include <inttypes.h>
#include <stdio.h>
#include <string.h>
Include dependency graph for iio.c:

Classes

struct  attr_fun_params
 
struct  iio_buffer_priv
 
struct  iio_dev_priv
 Links a physical device instance "void *dev_instance" with a "iio_device *iio" that describes capabilities of the device. More...
 
struct  iio_desc
 

Macros

#define IIOD_PORT   30431
 
#define MAX_SOCKET_TO_HANDLE   10
 
#define REG_ACCESS_ATTRIBUTE   "direct_reg_access"
 
#define IIOD_CONN_BUFFER_SIZE   0x1000
 

Functions

int32_t iio_parse_value (char *buf, enum iio_val fmt, int32_t *val, int32_t *val2)
 
int iio_format_value (char *buf, uint32_t len, enum iio_val fmt, int32_t size, int32_t *vals)
 
int iio_buffer_get_block (struct iio_buffer *buffer, void **addr)
 
int iio_buffer_block_done (struct iio_buffer *buffer)
 
int iio_buffer_push_scan (struct iio_buffer *buffer, void *data)
 
int iio_buffer_pop_scan (struct iio_buffer *buffer, void *data)
 
int iio_step (struct iio_desc *desc)
 Execute an iio step. More...
 
int iio_init (struct iio_desc **desc, struct iio_init_param *init_param)
 Set communication ops and read/write ops that will be called from "libtinyiiod". More...
 
int iio_remove (struct iio_desc *desc)
 Free the resources allocated by "iio_init()". More...
 

Detailed Description

Implementation of iio. This module implements read/write ops, required by libtinyiiod and further calls show/store functions, corresponding to device/channel/attribute.

Author
Cristian Pop (crist.nosp@m.ian..nosp@m.pop@a.nosp@m.nalo.nosp@m.g.com)
Mihail Chindris (mihai.nosp@m.l.ch.nosp@m.indri.nosp@m.s@an.nosp@m.alog..nosp@m.com)

Copyright 2019(c) Analog Devices, Inc.

All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

THIS SOFTWARE IS PROVIDED BY ANALOG DEVICES "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL ANALOG DEVICES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, INTELLECTUAL PROPERTY RIGHTS, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Macro Definition Documentation

◆ IIOD_CONN_BUFFER_SIZE

#define IIOD_CONN_BUFFER_SIZE   0x1000

◆ IIOD_PORT

#define IIOD_PORT   30431

◆ MAX_SOCKET_TO_HANDLE

#define MAX_SOCKET_TO_HANDLE   10

◆ REG_ACCESS_ATTRIBUTE

#define REG_ACCESS_ATTRIBUTE   "direct_reg_access"

Function Documentation

◆ iio_buffer_block_done()

int iio_buffer_block_done ( struct iio_buffer buffer)

◆ iio_buffer_get_block()

int iio_buffer_get_block ( struct iio_buffer buffer,
void **  addr 
)

◆ iio_buffer_pop_scan()

int iio_buffer_pop_scan ( struct iio_buffer buffer,
void *  data 
)

◆ iio_buffer_push_scan()

int iio_buffer_push_scan ( struct iio_buffer buffer,
void *  data 
)

◆ iio_format_value()

int iio_format_value ( char *  buf,
uint32_t  len,
enum iio_val  fmt,
int32_t  size,
int32_t *  vals 
)

◆ iio_init()

int iio_init ( struct iio_desc **  desc,
struct iio_init_param init_param 
)

Set communication ops and read/write ops that will be called from "libtinyiiod".

Parameters
desc- iio descriptor.
init_param- appropriate init param.
Returns
SUCCESS in case of success or negative value otherwise.

◆ iio_parse_value()

int32_t iio_parse_value ( char *  buf,
enum iio_val  fmt,
int32_t *  val,
int32_t *  val2 
)

◆ iio_remove()

int iio_remove ( struct iio_desc desc)

Free the resources allocated by "iio_init()".

Parameters
desciio descriptor.
Returns
SUCCESS in case of success or negative value otherwise.

◆ iio_step()

int iio_step ( struct iio_desc desc)

Execute an iio step.

Parameters
desc- IIo descriptor
Returns
SUCCESS in case of success or negative value otherwise.