
/*
 * vos_Base.h
 *
 *  Created on: 2025年9月8日
 *      Author: adan
 */

#ifndef SRC_VOS_VOS_BASE_H_
#define SRC_VOS_VOS_BASE_H_

#include "CM_Types.h"

#if QNX
#include <sys/neutrino.h>
#include <sys/trace.h>
#include <sys/neutrino.h> /* ThreadCtl BMP绑定CPU*/
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <atomic.h>
#include <stdatomic.h>
#include <sys/types.h>

#endif

#if LINUX
#include <pthread.h>
#define _GNU_SOURCE
#include <sched.h>
#include <stdatomic.h>
#endif

#if SylixOS
#include <pthread.h>
#include <sched.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <stdatomic.h>
#include <sys/ioctl.h>
#include <net/if.h>
#include <arpa/inet.h>
#endif

#if ReWorks
#include <cpuset.h>
#include <stdatomic.h>
#include <net_ioctl.h>
#include <socket.h>
#include <sockLib.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <net/if.h>
#include <arpa/inet.h>
#include <ioctl.h>
#include <net/route.h>
#include <netinet\tcp.h>
#endif


typedef fd_set vos_fd_set;/*将描述符集合更名为 vos_fd_set*/

/*
 * 设置线程亲和性
 * */
void set_thread_affinity(CM_UINT32 mask_bits);

/*
 * 设置网卡ip
 * */
void set_network_ip(CM_UINT8 *p_ifname, CM_UINT8 *p_ifaddr, CM_UINT8 *p_netmask, CM_UINT8 *p_gateway);


/*
 * 封装描述符集合
 * */
#define VOS_FD_ZERO(fd)      FD_ZERO(fd)
#define VOS_FD_SET(sock,fd)  FD_SET(sock, fd)
/* 将FD_ISSET封装成布尔语义：返回 0 或 1 1在集合中,0不在集合中*/
#define VOS_FD_ISSET(sock, fd) ((FD_ISSET(sock, fd)) ? 1 : 0)

#endif /* SRC_VOS_VOS_BASE_H_ */
