• 网络编程头文件


    #ifndef COMMON__H
    #define COMMON__H
    
    #include <stddef.h>
    #include <stdint.h>
    #include <stdbool.h>
    #include <stdlib.h>
    #include <sys/epoll.h>
    
    #define POWEROF2(x) ((((x)-1) & (x)) == 0)
    
    #define CACHE_LINE_SIZE 64
    #define __cache_aligned __attribute__((__aligned__(CACHE_LINE_SIZE)))
    
    #define CACHE_LINE_MASK (CACHE_LINE_SIZE-1)
    
    #define CACHE_LINE_ROUNDUP(size) 
        (CACHE_LINE_SIZE * ((size + CACHE_LINE_SIZE - 1) / CACHE_LINE_SIZE))
    
    #define smp_rmb()    asm volatile("lfence":::"memory")
    #define smp_mb()    asm volatile("mfence":::"memory")
    #define smp_wmb()    asm volatile("sfence" ::: "memory")
    
    #define __LOCAL(var, line) __ ## var ## line
    #define _LOCAL(var, line) __LOCAL(var, line)
    #define LOCAL(var) _LOCAL(var, __LINE__)
    
    #define container_of(ptr, type, member) ({          
        const typeof(((type *)0)->member) *__mptr = (ptr);  
        (type *)((char *)__mptr - offsetof(type, member)); })
    
    #define likely(x)       __builtin_expect(!!(x), 1)
    #define unlikely(x)     __builtin_expect(!!(x), 0)
    
    #define atomic_compare_and_swap __sync_bool_compare_and_swap
    #define atomic_add __sync_fetch_and_add
    #define atomic_sub __sync_fetch_and_sub
    #define compile_barrier() asm volatile ( "" ::: "memroy" )
    
    typedef int socket_t;
    typedef uint32_t ip_addr_t;
    typedef uint16_t port_t;
    typedef uint64_t mac_addr_t;
    
    #define UNUSED(x) (void)(x)
    
    #define DIV_ROUND_UP(n, d) (((n) + (d) - 1) / (d))
    
    #endif

    网络编程头文件

  • 相关阅读:
    Winget
    全部所学知识
    重装系统
    srs更改端口号导致webrtc播放异常
    .NET性能优化方面的总结(转)
    从自动变换页面背景CSS改写成变换背景图
    网页级在线性能网站测试介绍
    ASP.NET服务器端控件学习(一)
    Nginx源码分析内存池
    使用Memcached提高.NET应用程序的性能
  • 原文地址:https://www.cnblogs.com/unixshell/p/3792807.html
Copyright © 2020-2023  润新知