AES-128加密 (aes128)
AES-128 对称加密/解密,支持 ECB、CBC、CTR 三种分组密码模式。
AES-256加密 (aes256)
AES-256 对称加密/解密,支持 ECB、CBC、CTR 三种分组密码模式。
反三角查找表 (atantab)
基于预计算查找表的反三角函数模块,提供整数和浮点两种精度。与正向 余弦查找表 (costab) 相对应,共用同一套 16 位定点角度约定,结果可直接喂回 isin()/icos()。
退避策略 (backoff)
指数退避加随机抖动的重试延迟计算模块,用于网络请求、设备重连等需要逐步增加重试间隔的场景。
Base64编解码 (base64)
Base64 编码与解码,遵循 RFC 4648。
BCD 编码 (bcd)
BCD(Binary-Coded Decimal)与二进制之间的转换接口,用于 RTC 芯片等使用 BCD 编码的硬件交互。
双二阶滤波器 (biquad)
双二阶(Biquadratic)IIR 滤波器,支持 8 种常见滤波类型,用于音频和信号处理中的频率响应整形。
呼吸灯 (breathing)
呼吸灯亮度计算模块,根据当前时间返回对应的亮度值,模拟自然呼吸的渐亮渐灭效果。
字节序转换 (byteorder)
CPU 字节序与小端/大端格式之间的转换接口,用于协议解析、文件格式处理等跨平台场景。
字符集转换 (charset)
Unicode 字符集转换,支持 UTF-8、UCS-4、UTF-16 之间的相互转换,以及字符宽度计算。
复数运算 (complex)
单精度浮点复数运算,用于数字信号处理。
余弦查找表 (costab)
基于预计算查找表的三角函数模块,提供整数和浮点两种精度,使用 16 位定点角度表示,零浮点运算开销。
CRC-16校验 (crc16)
CRC-16 循环冗余校验,采用 CRC-16/XMODEM 算法标准。可链式调用:将上一次的 CRC 输出作为下一次的初始值。
CRC-32校验 (crc32)
CRC-32 循环冗余校验,采用 CRC-32 (ISO 3309) 算法标准。可链式调用:将上一次的 CRC 输出作为下一次的初始值。
CRC-8校验 (crc8)
CRC-8 循环冗余校验,采用 CRC-8/SMBUS 算法标准。可链式调用:将上一次的 CRC 输出作为下一次的初始值。
设备树 (dtree)
设备树节点抽象层,从 JSON 格式的设备树数据中读取配置。驱动程序使用此接口从 default.json 读取配置。
整数除法 (div)
软件整数除法,用于缺少硬件除法指令的平台(如部分 ARM 内核)。
动态缓冲区 (db)
动态字节缓冲区,用于二进制数据的自动扩容管理。容量按 2 的幂次增长,适合协议解析、数据拼装等场景。
动态字符串 (ds)
动态字符串库,提供自动扩容的字符串操作,包括追加、插入、删除、查找、替换、分割等。
缓动函数 (easing)
基于三次贝塞尔曲线的缓动动画模块,通过定义曲线控制点实现各种加减速效果。
椭圆曲线签名 (ecdsa256)
椭圆曲线数字签名算法(ECDSA)与椭圆曲线 Diffie-Hellman 密钥交换(ECDH),使用 secp256r1 曲线。
指数加权移动平均 (ewma)
指数加权移动平均滤波器,单极点低通滤波,通过可配置权重将新采样与历史均值混合。
快速傅里叶变换 (fft)
快速傅里叶变换(FFT),对 2 的幂次长度数据执行离散傅里叶正变换与逆变换,使用预计算查找表和位反转置换。
环形缓冲区 (fifo)
无锁环形缓冲区 FIFO,提供两套 API:无锁 fifo(调用者自行同步)和加锁 fifo(内部互斥锁)。支持原始字节流和带长度前缀的数据包。
哈希表 (hmap)
基于哈希的键值映射表,支持自动扩缩容、按键排序、线程安全和回调通知。
十六进制转储 (hexdump)
将内存数据以经典的 hex dump 格式输出,每行 16 字节,包含地址、十六进制值和 ASCII 字符。
初始化与退出调用 (initcall)
libx/initcall.h 与 libx/initcall.c 提供了 XSTAR 的初始化/退出调用机制。模块无需在某个中心函数里手工登记自己的初始化代码,只需用 xxxinitcall(fn) 宏声明一个初始化函数,链接器会自动把它收集到对应等级的专属段中,再由 xstarinit() 在启动流程的固定时机统一调用。退出阶段同理,由 xstarexit() 按 init 的逆序调用 xxxexitcall(fn) 登记的函数。
整数平方根 (sqrti)
无浮点运算的整数平方根计算,适用于无 FPU 的嵌入式平台。
交织器 (interleaver)
基于伪随机排列的数据交织与解交织模块。通过重新排列字节顺序,将连续的突发错误分散为随机错误,配合纠错码(如 Reed-Solomon)提高抗突发干扰能力。
JSON解析 (json)
JSON 解析器,将 JSON 文本解析为 jsonvaluet 节点树,支持所有标准 JSON 类型(对象、数组、整数、浮点、字符串、布尔、null)。
卡尔曼滤波 (kalman)
单变量线性卡尔曼滤波器,实现预测-更新循环,支持配置状态转移、观测、过程噪声和测量噪声参数。
按键过滤器 (keyfilter)
按键过滤器,基于状态机将原始按下/抬起事件转换为高级按键语义(单击、双击、长按、重复)。
KOBJ虚拟文件系统 (kobj)
本文档详细介绍 XSTAR 的 KOBJ(Kernel Object)虚拟文件系统,包括数据结构、API 接口和使用示例。
LRU缓存 (lru)
最近最少使用(LRU)缓存,基于哈希表 + 双向链表实现,超容量时淘汰最久未访问的条目,支持淘汰回调。访问时自动提升热点条目到链表头部。
均值滤波器 (mean)
滑动窗口均值滤波器,对数据流做移动平均,平滑噪声。O(1) 更新复杂度。
中值滤波器 (median)
滑动窗口中值滤波器,对数据流取窗口中位数,有效滤除脉冲噪声(毛刺)。O(n) 更新复杂度。
路径操作 (path)
文件系统路径操作工具,判断绝对/相对路径,提取文件名、目录名和扩展名。
发布订阅系统 (psub)
XSTAR 的发布订阅(Publish-Subscribe)机制,实现模块间的松耦合通信。发布者按主题发出消息,订阅该主题的回调自动被调用,发布者与订阅者互不感知。
二维码生成 (qrcgen)
QR Code 生成器,支持版本 1-40、四种纠错等级、八种掩码模式。
队列 (queue)
通用 FIFO 队列,基于 listheadt 实现,内部无锁,由调用者保证一致性,支持自定义清理回调。
红黑树 (rbtree)
红黑树,自平衡二叉搜索树,遵循 Linux 内核风格。支持普通根和缓存根(O(1) 最小值查找),以及后序遍历(安全删除)。
RC4加密 (rc4)
RC4 对称流密码,使用密钥对数据原地加密/解密。加密与解密使用相同操作:对密文再次调用即可还原明文。
Reed-Solomon 纠错码 (rs)
基于 Reed-Solomon 算法的前向纠错(FEC)模块。在数据中添加校验符号,接收端可自动检测并纠正传输错误,适用于不可靠信道的数据保护。
SHA-1哈希 (sha1)
SHA-1 安全哈希算法,160 位摘要计算。提供一次性计算和流式更新两种接口。
SHA-256哈希 (sha256)
SHA-256 安全哈希算法,256 位摘要计算。提供一次性计算和流式更新两种接口。
简单参数解析器 (sarg)
轻量级命令行参数解析器,零分配、无外部依赖。把命令行参数划分为选项与位置参数两类,提供存在性检测、取值、类型化解析、合法性校验与迭代遍历。
排序列表 (slist)
基于双向链表的键值排序列表,每个节点携带字符串键和用户数据指针,支持按键排序。
弹簧动画 (spring)
基于物理弹簧模型的动画模块,通过张力和摩擦力参数模拟弹簧运动,产生自然的回弹效果。
字符串哈希 (shash)
基于 djb2 算法的字符串哈希函数,用于哈希表键计算和 switch 字符串匹配等场景。
触摸屏滤波器 (tsfilter)
触摸屏坐标滤波器,对原始触摸数据做中值去毛刺 + 均值平滑 + 仿射校准,输出稳定的屏幕坐标。
非对齐访问 (unaligned)
安全地从未对齐内存地址读取或写入多字节数值,避免某些架构上的对齐异常。
URI 解析器 (uri)
URI 字符串解析模块,将 URI 拆分为各个组成部分。
UUID 生成器 (uuid)
生成符合 RFC 4122 第4版的 UUID 字符串。
虚拟机加密 (vmcrypt)
基于自定义虚拟机的数据加解密模块。通过执行一段字节码程序对输入缓冲区进行变换,实现可定制的加解密逻辑。字节码与数据分离的设计使得加密算法可随时替换,而无需重新编译。
窗函数 (winfunc)
信号处理窗函数,用于 FFT 频谱分析时减少频谱泄漏。支持多种常用窗函数。
通用宏定义 (xdef)
libx/xdef.h 提供了 XSTAR 全局通用的基础宏定义和工具函数,包括常用尺寸常量、布尔/空指针定义、容器与偏移计算、分支预测提示、静态断言、数学辅助宏,以及位扫描内联函数。该头文件不依赖具体平台,所有源码均可包含。
YUV 色彩转换 (yuv)
YUV 与 RGB 色彩空间转换模块,支持 BT.601 和 BT.709 两种标准,使用整数运算避免浮点依赖。