mirror of
git://sigrok.org/libserialport
synced 2023-08-10 21:13:24 +03:00
Minor cosmetics, typos, and so on.
This commit is contained in:
parent
8094e4a0ce
commit
f92f1f0c20
6
README
6
README
@ -1,6 +1,6 @@
|
|||||||
----------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
libserialport: cross-platform library for accessing serial ports
|
libserialport: cross-platform library for accessing serial ports
|
||||||
----------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
|
|
||||||
libserialport is a minimal library written in C that is intended to take care
|
libserialport is a minimal library written in C that is intended to take care
|
||||||
of the OS-specific details when writing software that uses serial ports.
|
of the OS-specific details when writing software that uses serial ports.
|
||||||
@ -75,7 +75,7 @@ can be obtained by calling sp_last_error_code() or sp_last_error_message(). The
|
|||||||
error code or message is that provided by the OS; libserialport does not define
|
error code or message is that provided by the OS; libserialport does not define
|
||||||
any error codes or messages of its own.
|
any error codes or messages of its own.
|
||||||
|
|
||||||
Functions calls that succeed return SP_OK, which is equal to zero, or where
|
Function calls that succeed return SP_OK, which is equal to zero, or where
|
||||||
otherwise documented a positive value.
|
otherwise documented a positive value.
|
||||||
|
|
||||||
The available functions are as follows:
|
The available functions are as follows:
|
||||||
|
@ -58,6 +58,7 @@ AM_PROG_CC_C_O
|
|||||||
LT_INIT
|
LT_INIT
|
||||||
|
|
||||||
# Initialize pkg-config.
|
# Initialize pkg-config.
|
||||||
|
# We require at least 0.22, as "Requires.private" behaviour changed there.
|
||||||
PKG_PROG_PKG_CONFIG([0.22])
|
PKG_PROG_PKG_CONFIG([0.22])
|
||||||
|
|
||||||
# Library version for libserialport (NOT the same as the package version).
|
# Library version for libserialport (NOT the same as the package version).
|
||||||
@ -76,11 +77,13 @@ AC_SUBST(SP_LIB_VERSION)
|
|||||||
AC_SUBST(SP_LIB_LDFLAGS)
|
AC_SUBST(SP_LIB_LDFLAGS)
|
||||||
|
|
||||||
# Checks for header files.
|
# Checks for header files.
|
||||||
# These are already checked: inttypes.h stdint.h stdlib.h string.h unistd.h.
|
# These are already checked: inttypes.h dlfcn.h memory.h stdint.h stdlib.h
|
||||||
AC_CHECK_HEADERS([sys/types.h sys/stat.h fcntl.h termios.h sys/ioctl.h errno.h])
|
# string.h strings.h sys/types.h sys/stat.h unistd.h
|
||||||
|
AC_CHECK_HEADERS([errno.h fcntl.h stddef.h sys/ioctl.h termios.h])
|
||||||
|
|
||||||
case $target_os in
|
case $target_os in
|
||||||
*linux*)
|
*linux*)
|
||||||
|
# On Linux libudev is currently a hard requirement.
|
||||||
PKG_CHECK_MODULES([libudev], [libudev >= 0],
|
PKG_CHECK_MODULES([libudev], [libudev >= 0],
|
||||||
[CFLAGS="$CFLAGS $libudev_CFLAGS"; LIBS="$LIBS $libudev_LIBS"],
|
[CFLAGS="$CFLAGS $libudev_CFLAGS"; LIBS="$LIBS $libudev_LIBS"],
|
||||||
[AC_MSG_ERROR([libudev.h not found])])
|
[AC_MSG_ERROR([libudev.h not found])])
|
||||||
@ -117,7 +120,7 @@ AC_OUTPUT
|
|||||||
echo
|
echo
|
||||||
echo "libserialport configuration summary:"
|
echo "libserialport configuration summary:"
|
||||||
echo
|
echo
|
||||||
echo " - Package version (major.minor): $SP_PACKAGE_VERSION"
|
echo " - Package version (major.minor): $SP_PACKAGE_VERSION"
|
||||||
echo " - Library version (current:revision:age): $SP_LIB_VERSION"
|
echo " - Library version (current:revision:age): $SP_LIB_VERSION"
|
||||||
echo " - Prefix: $prefix"
|
echo " - Prefix: $prefix"
|
||||||
echo " - Building on: $build"
|
echo " - Building on: $build"
|
||||||
|
@ -17,8 +17,8 @@
|
|||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef SERIALPORT_H
|
#ifndef LIBSERIALPORT_H
|
||||||
#define SERIALPORT_H
|
#define LIBSERIALPORT_H
|
||||||
|
|
||||||
#include <stddef.h>
|
#include <stddef.h>
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
@ -46,7 +46,7 @@ enum {
|
|||||||
/* A system error occured while executing the operation. */
|
/* A system error occured while executing the operation. */
|
||||||
SP_ERR_FAIL = -2,
|
SP_ERR_FAIL = -2,
|
||||||
/* A memory allocation failed while executing the operation. */
|
/* A memory allocation failed while executing the operation. */
|
||||||
SP_ERR_MEM = -3
|
SP_ERR_MEM = -3,
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Port access modes. */
|
/* Port access modes. */
|
||||||
@ -56,7 +56,7 @@ enum {
|
|||||||
/* Open port for read access only. */
|
/* Open port for read access only. */
|
||||||
SP_MODE_RDONLY = 2,
|
SP_MODE_RDONLY = 2,
|
||||||
/* Open port in non-blocking mode. */
|
/* Open port in non-blocking mode. */
|
||||||
SP_MODE_NONBLOCK = 4
|
SP_MODE_NONBLOCK = 4,
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Parity settings. */
|
/* Parity settings. */
|
||||||
@ -66,7 +66,7 @@ enum {
|
|||||||
/* Even parity. */
|
/* Even parity. */
|
||||||
SP_PARITY_EVEN = 1,
|
SP_PARITY_EVEN = 1,
|
||||||
/* Odd parity. */
|
/* Odd parity. */
|
||||||
SP_PARITY_ODD = 2
|
SP_PARITY_ODD = 2,
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Flow control settings. */
|
/* Flow control settings. */
|
||||||
@ -76,7 +76,7 @@ enum {
|
|||||||
/* Hardware (RTS/CTS) flow control. */
|
/* Hardware (RTS/CTS) flow control. */
|
||||||
SP_FLOW_HARDWARE = 1,
|
SP_FLOW_HARDWARE = 1,
|
||||||
/* Software (XON/XOFF) flow control. */
|
/* Software (XON/XOFF) flow control. */
|
||||||
SP_FLOW_SOFTWARE = 2
|
SP_FLOW_SOFTWARE = 2,
|
||||||
};
|
};
|
||||||
|
|
||||||
int sp_get_port_by_name(const char *portname, struct sp_port **port_ptr);
|
int sp_get_port_by_name(const char *portname, struct sp_port **port_ptr);
|
||||||
@ -95,4 +95,4 @@ int sp_last_error_code(void);
|
|||||||
char *sp_last_error_message(void);
|
char *sp_last_error_message(void);
|
||||||
void sp_free_error_message(char *message);
|
void sp_free_error_message(char *message);
|
||||||
|
|
||||||
#endif /* SERIALPORT_H */
|
#endif /* LIBSERIALPORT_H */
|
||||||
|
12
serialport.c
12
serialport.c
@ -116,6 +116,7 @@ static struct sp_port **sp_list_append(struct sp_port **list, const char *portna
|
|||||||
{
|
{
|
||||||
void *tmp;
|
void *tmp;
|
||||||
unsigned int count;
|
unsigned int count;
|
||||||
|
|
||||||
for (count = 0; list[count]; count++);
|
for (count = 0; list[count]; count++);
|
||||||
if (!(tmp = realloc(list, sizeof(struct sp_port *) * (count + 2))))
|
if (!(tmp = realloc(list, sizeof(struct sp_port *) * (count + 2))))
|
||||||
goto fail;
|
goto fail;
|
||||||
@ -124,6 +125,7 @@ static struct sp_port **sp_list_append(struct sp_port **list, const char *portna
|
|||||||
goto fail;
|
goto fail;
|
||||||
list[count + 1] = NULL;
|
list[count + 1] = NULL;
|
||||||
return list;
|
return list;
|
||||||
|
|
||||||
fail:
|
fail:
|
||||||
sp_free_port_list(list);
|
sp_free_port_list(list);
|
||||||
return NULL;
|
return NULL;
|
||||||
@ -135,7 +137,7 @@ int sp_list_ports(struct sp_port ***list_ptr)
|
|||||||
int ret = SP_OK;
|
int ret = SP_OK;
|
||||||
|
|
||||||
if (!(list = malloc(sizeof(struct sp_port **))))
|
if (!(list = malloc(sizeof(struct sp_port **))))
|
||||||
return SP_ERR_MEM;;
|
return SP_ERR_MEM;
|
||||||
|
|
||||||
list[0] = NULL;
|
list[0] = NULL;
|
||||||
|
|
||||||
@ -343,6 +345,7 @@ out:
|
|||||||
void sp_free_port_list(struct sp_port **list)
|
void sp_free_port_list(struct sp_port **list)
|
||||||
{
|
{
|
||||||
unsigned int i;
|
unsigned int i;
|
||||||
|
|
||||||
for (i = 0; list[i]; i++)
|
for (i = 0; list[i]; i++)
|
||||||
sp_free_port(list[i]);
|
sp_free_port(list[i]);
|
||||||
free(list);
|
free(list);
|
||||||
@ -395,6 +398,7 @@ int sp_open(struct sp_port *port, int flags)
|
|||||||
return SP_ERR_FAIL;
|
return SP_ERR_FAIL;
|
||||||
#else
|
#else
|
||||||
int flags_local = 0;
|
int flags_local = 0;
|
||||||
|
|
||||||
/* Map 'flags' to the OS-specific settings. */
|
/* Map 'flags' to the OS-specific settings. */
|
||||||
if (flags & SP_MODE_RDWR)
|
if (flags & SP_MODE_RDWR)
|
||||||
flags_local |= O_RDWR;
|
flags_local |= O_RDWR;
|
||||||
@ -452,6 +456,7 @@ int sp_write(struct sp_port *port, const void *buf, size_t count)
|
|||||||
|
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
DWORD written = 0;
|
DWORD written = 0;
|
||||||
|
|
||||||
/* Returns non-zero upon success, 0 upon failure. */
|
/* Returns non-zero upon success, 0 upon failure. */
|
||||||
if (WriteFile(port->hdl, buf, count, &written, NULL) == 0)
|
if (WriteFile(port->hdl, buf, count, &written, NULL) == 0)
|
||||||
return SP_ERR_FAIL;
|
return SP_ERR_FAIL;
|
||||||
@ -459,10 +464,11 @@ int sp_write(struct sp_port *port, const void *buf, size_t count)
|
|||||||
#else
|
#else
|
||||||
/* Returns the number of bytes written, or -1 upon failure. */
|
/* Returns the number of bytes written, or -1 upon failure. */
|
||||||
ssize_t written = write(port->fd, buf, count);
|
ssize_t written = write(port->fd, buf, count);
|
||||||
|
|
||||||
if (written < 0)
|
if (written < 0)
|
||||||
return SP_ERR_FAIL;
|
return SP_ERR_FAIL;
|
||||||
else
|
else
|
||||||
return written;;
|
return written;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -475,12 +481,14 @@ int sp_read(struct sp_port *port, void *buf, size_t count)
|
|||||||
|
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
DWORD bytes_read = 0;
|
DWORD bytes_read = 0;
|
||||||
|
|
||||||
/* Returns non-zero upon success, 0 upon failure. */
|
/* Returns non-zero upon success, 0 upon failure. */
|
||||||
if (ReadFile(port->hdl, buf, count, &bytes_read, NULL) == 0)
|
if (ReadFile(port->hdl, buf, count, &bytes_read, NULL) == 0)
|
||||||
return SP_ERR_FAIL;
|
return SP_ERR_FAIL;
|
||||||
return bytes_read;
|
return bytes_read;
|
||||||
#else
|
#else
|
||||||
ssize_t bytes_read;
|
ssize_t bytes_read;
|
||||||
|
|
||||||
/* Returns the number of bytes read, or -1 upon failure. */
|
/* Returns the number of bytes read, or -1 upon failure. */
|
||||||
if ((bytes_read = read(port->fd, buf, count)) < 0)
|
if ((bytes_read = read(port->fd, buf, count)) < 0)
|
||||||
return SP_ERR_FAIL;
|
return SP_ERR_FAIL;
|
||||||
|
Loading…
Reference in New Issue
Block a user