54 lines
1.8 KiB
C
54 lines
1.8 KiB
C
/*
|
||
* 平台适配配置文件
|
||
*
|
||
* 替代 autotools 生成的 config.h,提供跨平台编译所需的宏定义。
|
||
* 默认配置针对 Linux 平台,其他平台请根据实际情况修改以下宏定义。
|
||
*
|
||
* SPDX-License-Identifier: LGPL-2.1-or-later
|
||
*/
|
||
|
||
#ifndef MODBUS_CONFIG_H
|
||
#define MODBUS_CONFIG_H
|
||
|
||
/* ================================================================
|
||
* 版本信息(已硬编码,见 modbus-version.h)
|
||
* 此处定义供源文件中 extern 声明使用
|
||
* ================================================================ */
|
||
#define LIBMODBUS_VERSION_MAJOR 3
|
||
#define LIBMODBUS_VERSION_MINOR 1
|
||
#define LIBMODBUS_VERSION_MICRO 12
|
||
|
||
/* ================================================================
|
||
* 平台功能检测开关
|
||
*
|
||
* 以下宏定义控制条件编译行为。默认启用 Linux 常见功能。
|
||
* 如果你的平台不支持某项功能,请注释掉对应的 #define。
|
||
* ================================================================ */
|
||
|
||
/* 是否提供 termios2 结构体(Linux 4.x+ 支持,允许任意波特率) */
|
||
#define HAVE_STRUCT_TERMIOS2 1
|
||
|
||
/* 是否声明了 TIOCSRS485 ioctl(Linux RS485 模式切换) */
|
||
#define HAVE_DECL_TIOCSRS485 1
|
||
|
||
/* 是否声明了 TIOCM_RTS ioctl(Linux RTS 引脚控制) */
|
||
#define HAVE_DECL_TIOCM_RTS 1
|
||
|
||
/* 是否提供 strlcpy 函数(OpenBSD/macOS 原生支持,Linux 需自行实现) */
|
||
/* libmodbus 在 modbus.c 中提供了备用实现,因此这里通常不定义 */
|
||
/* #define HAVE_STRLCPY 1 */
|
||
|
||
/* 是否提供 <netinet/in.h> 头文件 */
|
||
#define HAVE_NETINET_IN_H 1
|
||
|
||
/* 是否提供 <netinet/ip.h> 头文件 */
|
||
#define HAVE_NETINET_IP_H 1
|
||
|
||
/* 是否提供 gai_strerror 函数(用于 getaddrinfo 错误信息) */
|
||
#define HAVE_GAI_STRERROR 1
|
||
|
||
/* 是否提供 accept4 系统调用(Linux 2.6.28+) */
|
||
#define HAVE_ACCEPT4 1
|
||
|
||
#endif /* MODBUS_CONFIG_H */
|