Signed-off-by: Segwon <segwon.han@samsung.com>
Change-Id: Iac30913f44ba239365a37e0dd9050623ea3f8d91
#include "peripheral_handle.h"
#include "peripheral_log.h"
#include "peripheral_handle.h"
#include "peripheral_log.h"
-#define CHECK_ERROR(val) \
+#define CHECK_ERROR(expr) \
if (errno == EAGAIN) \
return -EAGAIN; \
char errmsg[255]; \
if (errno == EAGAIN) \
return -EAGAIN; \
char errmsg[255]; \
- int status = write(gpio->fd_direction, types[direction].type, types[direction].len);
- CHECK_ERROR(status);
+ int ret = write(gpio->fd_direction, types[direction].type, types[direction].len);
+ CHECK_ERROR(ret != types[direction].len);
- int status = write(gpio->fd_edge, types[edge].type, types[edge].len);
- CHECK_ERROR(status);
+ int ret = write(gpio->fd_edge, types[edge].type, types[edge].len);
+ CHECK_ERROR(ret != types[edge].len);
- int status = write(gpio->fd_value, types[value].type, types[value].len);
- CHECK_ERROR(status);
+ int ret = write(gpio->fd_value, types[value].type, types[value].len);
+ CHECK_ERROR(ret != types[value].len);
return 0;
}
int peripheral_interface_gpio_read(peripheral_gpio_h gpio, uint32_t *value)
{
return 0;
}
int peripheral_interface_gpio_read(peripheral_gpio_h gpio, uint32_t *value)
{
+ int ret;
+ int length = 1;
char gpio_buf[GPIO_BUFFER_MAX] = {0, };
char gpio_buf[GPIO_BUFFER_MAX] = {0, };
- len = read(gpio->fd_value, &gpio_buf, 1);
- CHECK_ERROR(len);
+ ret = read(gpio->fd_value, &gpio_buf, length);
+ CHECK_ERROR(ret != length);
if (gpio_buf[0] == '0')
*value = 0;
if (gpio_buf[0] == '0')
*value = 0;
int peripheral_interface_gpio_close(peripheral_gpio_h gpio)
{
int peripheral_interface_gpio_close(peripheral_gpio_h gpio)
{
- status = close(gpio->fd_direction);
- CHECK_ERROR(status);
+ ret = close(gpio->fd_direction);
+ CHECK_ERROR(ret != 0);
- status = close(gpio->fd_edge);
- CHECK_ERROR(status);
+ ret = close(gpio->fd_edge);
+ CHECK_ERROR(ret != 0);
- status = close(gpio->fd_value);
- CHECK_ERROR(status);
+ ret = close(gpio->fd_value);
+ CHECK_ERROR(ret != 0);
int peripheral_interface_i2c_close(peripheral_i2c_h i2c)
{
int peripheral_interface_i2c_close(peripheral_i2c_h i2c)
{
- int status = close(i2c->fd);
- CHECK_ERROR(status);
+ int ret = close(i2c->fd);
+ CHECK_ERROR(ret != 0);
return 0;
}
int peripheral_interface_i2c_read(peripheral_i2c_h i2c, uint8_t *data, uint32_t length)
{
return 0;
}
int peripheral_interface_i2c_read(peripheral_i2c_h i2c, uint8_t *data, uint32_t length)
{
- int status = read(i2c->fd, data, length);
- CHECK_ERROR(status);
+ int ret = read(i2c->fd, data, length);
+ CHECK_ERROR(ret != length);
return 0;
}
int peripheral_interface_i2c_write(peripheral_i2c_h i2c, uint8_t *data, uint32_t length)
{
return 0;
}
int peripheral_interface_i2c_write(peripheral_i2c_h i2c, uint8_t *data, uint32_t length)
{
- int status = write(i2c->fd, data, length);
- CHECK_ERROR(status);
+ int ret = write(i2c->fd, data, length);
+ CHECK_ERROR(ret != length);
return 0;
}
int peripheral_interface_i2c_read_register_byte(peripheral_i2c_h i2c, uint8_t reg, uint8_t *data_out)
{
return 0;
}
int peripheral_interface_i2c_read_register_byte(peripheral_i2c_h i2c, uint8_t reg, uint8_t *data_out)
{
struct i2c_smbus_ioctl_data data_arg;
union i2c_smbus_data data;
struct i2c_smbus_ioctl_data data_arg;
union i2c_smbus_data data;
data_arg.data = &data;
data_arg.command = reg;
data_arg.data = &data;
data_arg.command = reg;
- status = ioctl(i2c->fd, I2C_SMBUS, &data_arg);
- CHECK_ERROR(status);
+ ret = ioctl(i2c->fd, I2C_SMBUS, &data_arg);
+ CHECK_ERROR(ret != 0);
int peripheral_interface_i2c_write_register_byte(peripheral_i2c_h i2c, uint8_t reg, uint8_t data_in)
{
int peripheral_interface_i2c_write_register_byte(peripheral_i2c_h i2c, uint8_t reg, uint8_t data_in)
{
struct i2c_smbus_ioctl_data data_arg;
union i2c_smbus_data data;
struct i2c_smbus_ioctl_data data_arg;
union i2c_smbus_data data;
- status = ioctl(i2c->fd, I2C_SMBUS, &data_arg);
- CHECK_ERROR(status);
+ ret = ioctl(i2c->fd, I2C_SMBUS, &data_arg);
+ CHECK_ERROR(ret != 0);
return 0;
}
int peripheral_interface_i2c_read_register_word(peripheral_i2c_h i2c, uint8_t reg, uint16_t *data_out)
{
return 0;
}
int peripheral_interface_i2c_read_register_word(peripheral_i2c_h i2c, uint8_t reg, uint16_t *data_out)
{
struct i2c_smbus_ioctl_data data_arg;
union i2c_smbus_data data;
struct i2c_smbus_ioctl_data data_arg;
union i2c_smbus_data data;
data_arg.data = &data;
data_arg.command = reg;
data_arg.data = &data;
data_arg.command = reg;
- status = ioctl(i2c->fd, I2C_SMBUS, &data_arg);
- CHECK_ERROR(status);
+ ret = ioctl(i2c->fd, I2C_SMBUS, &data_arg);
+ CHECK_ERROR(ret != 0);
int peripheral_interface_i2c_write_register_word(peripheral_i2c_h i2c, uint8_t reg, uint16_t data_in)
{
int peripheral_interface_i2c_write_register_word(peripheral_i2c_h i2c, uint8_t reg, uint16_t data_in)
{
struct i2c_smbus_ioctl_data data_arg;
union i2c_smbus_data data;
struct i2c_smbus_ioctl_data data_arg;
union i2c_smbus_data data;
- status = ioctl(i2c->fd, I2C_SMBUS, &data_arg);
- CHECK_ERROR(status);
+ ret = ioctl(i2c->fd, I2C_SMBUS, &data_arg);
+ CHECK_ERROR(ret != 0);
return 0;
}
\ No newline at end of file
return 0;
}
\ No newline at end of file
int peripheral_interface_pwm_close(peripheral_pwm_h pwm)
{
int peripheral_interface_pwm_close(peripheral_pwm_h pwm)
{
- status = close(pwm->fd_period);
- CHECK_ERROR(status);
+ ret = close(pwm->fd_period);
+ CHECK_ERROR(ret != 0);
- status = close(pwm->fd_duty_cycle);
- CHECK_ERROR(status);
+ ret = close(pwm->fd_duty_cycle);
+ CHECK_ERROR(ret != 0);
- status = close(pwm->fd_polarity);
- CHECK_ERROR(status);
+ ret = close(pwm->fd_polarity);
+ CHECK_ERROR(ret != 0);
- status = close(pwm->fd_enable);
- CHECK_ERROR(status);
+ ret = close(pwm->fd_enable);
+ CHECK_ERROR(ret != 0);
return 0;
}
int peripheral_interface_pwm_set_period(peripheral_pwm_h pwm, uint32_t period)
{
return 0;
}
int peripheral_interface_pwm_set_period(peripheral_pwm_h pwm, uint32_t period)
{
char pwm_buf[PWM_BUF_MAX] = {0};
char pwm_buf[PWM_BUF_MAX] = {0};
- len = snprintf(pwm_buf, sizeof(pwm_buf), "%d", period);
- status = write(pwm->fd_period, pwm_buf, len);
- CHECK_ERROR(status);
+ length = snprintf(pwm_buf, sizeof(pwm_buf), "%d", period);
+ ret = write(pwm->fd_period, pwm_buf, length);
+ CHECK_ERROR(ret != length);
return 0;
}
int peripheral_interface_pwm_set_duty_cycle(peripheral_pwm_h pwm, uint32_t duty_cycle)
{
return 0;
}
int peripheral_interface_pwm_set_duty_cycle(peripheral_pwm_h pwm, uint32_t duty_cycle)
{
char pwm_buf[PWM_BUF_MAX] = {0};
char pwm_buf[PWM_BUF_MAX] = {0};
- len = snprintf(pwm_buf, sizeof(pwm_buf), "%d", duty_cycle);
- status = write(pwm->fd_duty_cycle, pwm_buf, len);
- CHECK_ERROR(status);
+ length = snprintf(pwm_buf, sizeof(pwm_buf), "%d", duty_cycle);
+ ret = write(pwm->fd_duty_cycle, pwm_buf, length);
+ CHECK_ERROR(ret != length);
- int status = write(pwm->fd_polarity, types[polarity].type, types[polarity].len);
- CHECK_ERROR(status);
+ int ret = write(pwm->fd_polarity, types[polarity].type, types[polarity].len);
+ CHECK_ERROR(ret != types[polarity].len);
- int status = write(pwm->fd_enable, types[enable].type, types[enable].len);
- CHECK_ERROR(status);
+ int ret = write(pwm->fd_enable, types[enable].type, types[enable].len);
+ CHECK_ERROR(ret != types[enable].len);
int peripheral_interface_spi_close(peripheral_spi_h spi)
{
int peripheral_interface_spi_close(peripheral_spi_h spi)
{
- int status = close(spi->fd);
- CHECK_ERROR(status);
+ int ret = close(spi->fd);
+ CHECK_ERROR(ret != 0);
return 0;
}
int peripheral_interface_spi_set_mode(peripheral_spi_h spi, peripheral_spi_mode_e mode)
{
return 0;
}
int peripheral_interface_spi_set_mode(peripheral_spi_h spi, peripheral_spi_mode_e mode)
{
- int status = ioctl(spi->fd, SPI_IOC_WR_MODE, &mode);
- CHECK_ERROR(status);
+ int ret = ioctl(spi->fd, SPI_IOC_WR_MODE, &mode);
+ CHECK_ERROR(ret != 0);
return 0;
}
int peripheral_interface_spi_set_bit_order(peripheral_spi_h spi, peripheral_spi_bit_order_e bit_order)
{
return 0;
}
int peripheral_interface_spi_set_bit_order(peripheral_spi_h spi, peripheral_spi_bit_order_e bit_order)
{
- int status = ioctl(spi->fd, SPI_IOC_WR_LSB_FIRST, &bit_order);
- CHECK_ERROR(status);
+ int ret = ioctl(spi->fd, SPI_IOC_WR_LSB_FIRST, &bit_order);
+ CHECK_ERROR(ret != 0);
return 0;
}
int peripheral_interface_spi_set_bits_per_word(peripheral_spi_h spi, uint8_t bits)
{
return 0;
}
int peripheral_interface_spi_set_bits_per_word(peripheral_spi_h spi, uint8_t bits)
{
- int status = ioctl(spi->fd, SPI_IOC_WR_BITS_PER_WORD, &bits);
- CHECK_ERROR(status);
+ int ret = ioctl(spi->fd, SPI_IOC_WR_BITS_PER_WORD, &bits);
+ CHECK_ERROR(ret != 0);
return 0;
}
int peripheral_interface_spi_set_frequency(peripheral_spi_h spi, uint32_t freq)
{
return 0;
}
int peripheral_interface_spi_set_frequency(peripheral_spi_h spi, uint32_t freq)
{
- int status = ioctl(spi->fd, SPI_IOC_WR_MAX_SPEED_HZ, &freq);
- CHECK_ERROR(status);
+ int ret = ioctl(spi->fd, SPI_IOC_WR_MAX_SPEED_HZ, &freq);
+ CHECK_ERROR(ret != 0);
return 0;
}
int peripheral_interface_spi_read(peripheral_spi_h spi, uint8_t *rxbuf, uint32_t length)
{
return 0;
}
int peripheral_interface_spi_read(peripheral_spi_h spi, uint8_t *rxbuf, uint32_t length)
{
struct spi_ioc_transfer xfer;
memset(&xfer, 0, sizeof(struct spi_ioc_transfer));
xfer.rx_buf = (unsigned long)rxbuf;
xfer.len = length;
struct spi_ioc_transfer xfer;
memset(&xfer, 0, sizeof(struct spi_ioc_transfer));
xfer.rx_buf = (unsigned long)rxbuf;
xfer.len = length;
- status = ioctl(spi->fd, SPI_IOC_MESSAGE(1), &xfer);
- CHECK_ERROR(status);
+ ret = ioctl(spi->fd, SPI_IOC_MESSAGE(1), &xfer);
+ CHECK_ERROR(ret != 0);
return 0;
}
int peripheral_interface_spi_write(peripheral_spi_h spi, uint8_t *txbuf, uint32_t length)
{
return 0;
}
int peripheral_interface_spi_write(peripheral_spi_h spi, uint8_t *txbuf, uint32_t length)
{
struct spi_ioc_transfer xfer;
memset(&xfer, 0, sizeof(struct spi_ioc_transfer));
xfer.tx_buf = (unsigned long)txbuf;
xfer.len = length;
struct spi_ioc_transfer xfer;
memset(&xfer, 0, sizeof(struct spi_ioc_transfer));
xfer.tx_buf = (unsigned long)txbuf;
xfer.len = length;
- status = ioctl(spi->fd, SPI_IOC_MESSAGE(1), &xfer);
- CHECK_ERROR(status);
+ ret = ioctl(spi->fd, SPI_IOC_MESSAGE(1), &xfer);
+ CHECK_ERROR(ret != 0);
return 0;
}
int peripheral_interface_spi_transfer(peripheral_spi_h spi, uint8_t *txbuf, uint8_t *rxbuf, uint32_t length)
{
return 0;
}
int peripheral_interface_spi_transfer(peripheral_spi_h spi, uint8_t *txbuf, uint8_t *rxbuf, uint32_t length)
{
struct spi_ioc_transfer xfer;
if (!txbuf || !rxbuf) return -EINVAL;
struct spi_ioc_transfer xfer;
if (!txbuf || !rxbuf) return -EINVAL;
xfer.rx_buf = (unsigned long)rxbuf;
xfer.len = length;
xfer.rx_buf = (unsigned long)rxbuf;
xfer.len = length;
- status = ioctl(spi->fd, SPI_IOC_MESSAGE(1), &xfer);
- CHECK_ERROR(status);
+ ret = ioctl(spi->fd, SPI_IOC_MESSAGE(1), &xfer);
+ CHECK_ERROR(ret != 0);
int peripheral_interface_uart_close(peripheral_uart_h uart)
{
int peripheral_interface_uart_close(peripheral_uart_h uart)
{
- status = peripheral_interface_uart_flush(uart);
- CHECK_ERROR(status);
+ peripheral_interface_uart_flush(uart);
- status = close(uart->fd);
- CHECK_ERROR(status);
+ ret = close(uart->fd);
+ CHECK_ERROR(ret != 0);
int peripheral_interface_uart_flush(peripheral_uart_h uart)
{
int ret = tcflush(uart->fd, TCIOFLUSH);
int peripheral_interface_uart_flush(peripheral_uart_h uart)
{
int ret = tcflush(uart->fd, TCIOFLUSH);
struct termios tio;
ret = tcgetattr(uart->fd, &tio);
struct termios tio;
ret = tcgetattr(uart->fd, &tio);
tio.c_cflag = peripheral_uart_br[baud];
tio.c_iflag = IGNPAR;
tio.c_cflag = peripheral_uart_br[baud];
tio.c_iflag = IGNPAR;
peripheral_interface_uart_flush(uart);
ret = tcsetattr(uart->fd, TCSANOW, &tio);
peripheral_interface_uart_flush(uart);
ret = tcsetattr(uart->fd, TCSANOW, &tio);
struct termios tio;
ret = tcgetattr(uart->fd, &tio);
struct termios tio;
ret = tcgetattr(uart->fd, &tio);
/* set byte size */
tio.c_cflag &= ~CSIZE;
/* set byte size */
tio.c_cflag &= ~CSIZE;
peripheral_interface_uart_flush(uart);
ret = tcsetattr(uart->fd, TCSANOW, &tio);
peripheral_interface_uart_flush(uart);
ret = tcsetattr(uart->fd, TCSANOW, &tio);
struct termios tio;
ret = tcgetattr(uart->fd, &tio);
struct termios tio;
ret = tcgetattr(uart->fd, &tio);
/* set parity info */
switch (parity) {
/* set parity info */
switch (parity) {
peripheral_interface_uart_flush(uart);
ret = tcsetattr(uart->fd, TCSANOW, &tio);
peripheral_interface_uart_flush(uart);
ret = tcsetattr(uart->fd, TCSANOW, &tio);
struct termios tio;
ret = tcgetattr(uart->fd, &tio);
struct termios tio;
ret = tcgetattr(uart->fd, &tio);
/* set stop bit */
switch (stop_bits) {
/* set stop bit */
switch (stop_bits) {
peripheral_interface_uart_flush(uart);
ret = tcsetattr(uart->fd, TCSANOW, &tio);
peripheral_interface_uart_flush(uart);
ret = tcsetattr(uart->fd, TCSANOW, &tio);
struct termios tio;
ret = tcgetattr(uart->fd, &tio);
struct termios tio;
ret = tcgetattr(uart->fd, &tio);
if (rtscts == PERIPHERAL_UART_HARDWARE_FLOW_CONTROL_AUTO_RTSCTS)
tio.c_cflag |= CRTSCTS;
if (rtscts == PERIPHERAL_UART_HARDWARE_FLOW_CONTROL_AUTO_RTSCTS)
tio.c_cflag |= CRTSCTS;
return -EINVAL;
ret = tcsetattr(uart->fd, TCSANOW, &tio);
return -EINVAL;
ret = tcsetattr(uart->fd, TCSANOW, &tio);
int peripheral_interface_uart_read(peripheral_uart_h uart, uint8_t *buf, uint32_t length)
{
int ret = read(uart->fd, (void *)buf, length);
int peripheral_interface_uart_read(peripheral_uart_h uart, uint8_t *buf, uint32_t length)
{
int ret = read(uart->fd, (void *)buf, length);
+ CHECK_ERROR(ret != length);
int peripheral_interface_uart_write(peripheral_uart_h uart, uint8_t *buf, uint32_t length)
{
int ret = write(uart->fd, buf, length);
int peripheral_interface_uart_write(peripheral_uart_h uart, uint8_t *buf, uint32_t length)
{
int ret = write(uart->fd, buf, length);
+ CHECK_ERROR(ret != length);