亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? uip.h

?? avr版本的uip(一個超小型的TCPIP棧,支持tcpudparpicmp.
?? H
?? 第 1 頁 / 共 3 頁
字號:
#   endif /* BYTE_ORDER == BIG_ENDIAN */
#endif /* HTONS */

/**
 * Convert 16-bit quantity from host byte order to network byte order.
 *
 * This function is primarily used for converting variables from host
 * byte order to network byte order. For converting constants to
 * network byte order, use the HTONS() macro instead.
 */
#ifndef htons
u16_t htons(u16_t val);
#endif /* htons */

/** @} */

/**
 * Pointer to the application data in the packet buffer.
 *
 * This pointer points to the application data when the application is
 * called. If the application wishes to send data, the application may
 * use this space to write the data into before calling uip_send().
 */
extern volatile u8_t *uip_appdata;
extern volatile u8_t *uip_sappdata; 

#if UIP_URGDATA > 0 
/* u8_t *uip_urgdata:
 *
 * This pointer points to any urgent data that has been received. Only
 * present if compiled with support for urgent data (UIP_URGDATA).
 */
extern volatile u8_t *uip_urgdata; 
#endif /* UIP_URGDATA > 0 */


/* u[8|16]_t uip_len:
 *
 * When the application is called, uip_len contains the length of any
 * new data that has been received from the remote host. The
 * application should set this variable to the size of any data that
 * the application wishes to send. When the network device driver
 * output function is called, uip_len should contain the length of the
 * outgoing packet.
 */
extern volatile u16_t uip_len, uip_slen;

#if UIP_URGDATA > 0 
extern volatile u8_t uip_urglen, uip_surglen;
#endif /* UIP_URGDATA > 0 */


/**
 * Representation of a uIP TCP connection.
 *
 * The uip_conn structure is used for identifying a connection. All
 * but one field in the structure are to be considered read-only by an
 * application. The only exception is the appstate field whos purpose
 * is to let the application store application-specific state (e.g.,
 * file pointers) for the connection. The size of this field is
 * configured in the "uipopt.h" header file.
 */
struct uip_conn {
  u16_t ripaddr[2];   /**< The IP address of the remote host. */
  
  u16_t lport;        /**< The local TCP port, in network byte order. */
  u16_t rport;        /**< The local remote TCP port, in network byte
			 order. */  
  
  u8_t rcv_nxt[4];    /**< The sequence number that we expect to
			 receive next. */
  u8_t snd_nxt[4];    /**< The sequence number that was last sent by
                         us. */
  u16_t len;          /**< Length of the data that was previously sent. */
  u16_t mss;          /**< Current maximum segment size for the
			 connection. */
  u16_t initialmss;   /**< Initial maximum segment size for the
			 connection. */  
  u8_t sa;            /**< Retransmission time-out calculation state
			 variable. */
  u8_t sv;            /**< Retransmission time-out calculation state
			 variable. */
  u8_t rto;           /**< Retransmission time-out. */
  u8_t tcpstateflags; /**< TCP state and flags. */
  u8_t timer;         /**< The retransmission timer. */
  u8_t nrtx;          /**< The number of retransmissions for the last
			 segment sent. */

  /** The application state. */
  u8_t appstate[UIP_APPSTATE_SIZE];  
};


/* Pointer to the current connection. */
extern struct uip_conn *uip_conn;
/* The array containing all uIP connections. */
extern struct uip_conn uip_conns[UIP_CONNS];
/**
 * \addtogroup uiparch
 * @{
 */

/**
 * 4-byte array used for the 32-bit sequence number calculations.
 */
extern volatile u8_t uip_acc32[4];

/** @} */


#if UIP_UDP
/**
 * Representation of a uIP UDP connection.
 */
struct uip_udp_conn {
  u16_t ripaddr[2];   /**< The IP address of the remote peer. */
  u16_t lport;        /**< The local port number in network byte order. */
  u16_t rport;        /**< The remote port number in network byte order. */
};

extern struct uip_udp_conn *uip_udp_conn;
extern struct uip_udp_conn uip_udp_conns[UIP_UDP_CONNS];
#endif /* UIP_UDP */

/**
 * The structure holding the TCP/IP statistics that are gathered if
 * UIP_STATISTICS is set to 1.
 *
 */
struct uip_stats {
  struct {
    uip_stats_t drop;     /**< Number of dropped packets at the IP
			     layer. */
    uip_stats_t recv;     /**< Number of received packets at the IP
			     layer. */
    uip_stats_t sent;     /**< Number of sent packets at the IP
			     layer. */
    uip_stats_t vhlerr;   /**< Number of packets dropped due to wrong
			     IP version or header length. */
    uip_stats_t hblenerr; /**< Number of packets dropped due to wrong
			     IP length, high byte. */
    uip_stats_t lblenerr; /**< Number of packets dropped due to wrong
			     IP length, low byte. */
    uip_stats_t fragerr;  /**< Number of packets dropped since they
			     were IP fragments. */
    uip_stats_t chkerr;   /**< Number of packets dropped due to IP
			     checksum errors. */
    uip_stats_t protoerr; /**< Number of packets dropped since they
			     were neither ICMP, UDP nor TCP. */
  } ip;                   /**< IP statistics. */
  struct {
    uip_stats_t drop;     /**< Number of dropped ICMP packets. */
    uip_stats_t recv;     /**< Number of received ICMP packets. */
    uip_stats_t sent;     /**< Number of sent ICMP packets. */
    uip_stats_t typeerr;  /**< Number of ICMP packets with a wrong
			     type. */
  } icmp;                 /**< ICMP statistics. */
  struct {
    uip_stats_t drop;     /**< Number of dropped TCP segments. */
    uip_stats_t recv;     /**< Number of recived TCP segments. */
    uip_stats_t sent;     /**< Number of sent TCP segments. */
    uip_stats_t chkerr;   /**< Number of TCP segments with a bad
			     checksum. */
    uip_stats_t ackerr;   /**< Number of TCP segments with a bad ACK
			     number. */
    uip_stats_t rst;      /**< Number of recevied TCP RST (reset) segments. */
    uip_stats_t rexmit;   /**< Number of retransmitted TCP segments. */
    uip_stats_t syndrop;  /**< Number of dropped SYNs due to too few
			     connections was avaliable. */
    uip_stats_t synrst;   /**< Number of SYNs for closed ports,
			     triggering a RST. */
  } tcp;                  /**< TCP statistics. */
};

/**
 * The uIP TCP/IP statistics.
 *
 * This is the variable in which the uIP TCP/IP statistics are gathered.
 */
extern struct uip_stats uip_stat;


/*-----------------------------------------------------------------------------------*/
/* All the stuff below this point is internal to uIP and should not be
 * used directly by an application or by a device driver.
 */
/*-----------------------------------------------------------------------------------*/
/* u8_t uip_flags:
 *
 * When the application is called, uip_flags will contain the flags
 * that are defined in this file. Please read below for more
 * infomation.
 */
extern volatile u8_t uip_flags;

/* The following flags may be set in the global variable uip_flags
   before calling the application callback. The UIP_ACKDATA and
   UIP_NEWDATA flags may both be set at the same time, whereas the
   others are mutualy exclusive. Note that these flags should *NOT* be
   accessed directly, but through the uIP functions/macros. */

#define UIP_ACKDATA   1     /* Signifies that the outstanding data was
			       acked and the application should send
			       out new data instead of retransmitting
			       the last data. */
#define UIP_NEWDATA   2     /* Flags the fact that the peer has sent
			       us new data. */
#define UIP_REXMIT    4     /* Tells the application to retransmit the
			       data that was last sent. */
#define UIP_POLL      8     /* Used for polling the application, to
			       check if the application has data that
			       it wants to send. */
#define UIP_CLOSE     16    /* The remote host has closed the
			       connection, thus the connection has
			       gone away. Or the application signals
			       that it wants to close the
			       connection. */
#define UIP_ABORT     32    /* The remote host has aborted the
			       connection, thus the connection has
			       gone away. Or the application signals
			       that it wants to abort the
			       connection. */
#define UIP_CONNECTED 64    /* We have got a connection from a remote
                               host and have set up a new connection
                               for it, or an active connection has
                               been successfully established. */

#define UIP_TIMEDOUT  128   /* The connection has been aborted due to
			       too many retransmissions. */


/* uip_process(flag):
 *
 * The actual uIP function which does all the work.
 */
void uip_process(u8_t flag);

/* The following flags are passed as an argument to the uip_process()
   function. They are used to distinguish between the two cases where
   uip_process() is called. It can be called either because we have
   incoming data that should be processed, or because the periodic
   timer has fired. */

#define UIP_DATA    1     /* Tells uIP that there is incoming data in
                             the uip_buf buffer. The length of the
                             data is stored in the global variable
                             uip_len. */
#define UIP_TIMER   2     /* Tells uIP that the periodic timer has
                             fired. */
#if UIP_UDP
#define UIP_UDP_TIMER 3
#endif /* UIP_UDP */

/* The TCP states used in the uip_conn->tcpstateflags. */
#define CLOSED      0
#define SYN_RCVD    1
#define SYN_SENT    2
#define ESTABLISHED 3
#define FIN_WAIT_1  4
#define FIN_WAIT_2  5
#define CLOSING     6
#define TIME_WAIT   7
#define LAST_ACK    8
#define TS_MASK     15
  
#define UIP_STOPPED      16

#define UIP_TCPIP_HLEN 40

/* The TCP and IP headers. */
typedef struct {
  /* IP header. */
  u8_t vhl,
    tos,          
    len[2],       
    ipid[2],        
    ipoffset[2],  
    ttl,          
    proto;     
  u16_t ipchksum;
  u16_t srcipaddr[2], 
    destipaddr[2];
  
  /* TCP header. */
  u16_t srcport,
    destport;
  u8_t seqno[4],  
    ackno[4],
    tcpoffset,
    flags,
    wnd[2];     
  u16_t tcpchksum;
  u8_t urgp[2];
  u8_t optdata[4];
} uip_tcpip_hdr;

/* The ICMP and IP headers. */
typedef struct {
  /* IP header. */
  u8_t vhl,
    tos,          
    len[2],       
    ipid[2],        
    ipoffset[2],  
    ttl,          
    proto;     
  u16_t ipchksum;
  u16_t srcipaddr[2], 
    destipaddr[2];
  /* ICMP (echo) header. */
  u8_t type, icode;
  u16_t icmpchksum;
  u16_t id, seqno;  
} uip_icmpip_hdr;


/* The UDP and IP headers. */
typedef struct {
  /* IP header. */
  u8_t vhl,
    tos,          
    len[2],       
    ipid[2],        
    ipoffset[2],  
    ttl,          
    proto;     
  u16_t ipchksum;
  u16_t srcipaddr[2], 
    destipaddr[2];
  
  /* UDP header. */
  u16_t srcport,
    destport;
  u16_t udplen;
  u16_t udpchksum;
} uip_udpip_hdr;

#define UIP_PROTO_ICMP  1
#define UIP_PROTO_TCP   6
#define UIP_PROTO_UDP   17

#if UIP_FIXEDADDR
extern const u16_t uip_hostaddr[2];
#else /* UIP_FIXEDADDR */
extern u16_t uip_hostaddr[2];
#endif /* UIP_FIXEDADDR */

#endif /* __UIP_H__ */


/** @} */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品天干天干在线综合| 天堂久久一区二区三区| 亚洲日本一区二区三区| 午夜电影一区二区三区| 成人国产精品免费观看视频| 91精选在线观看| 亚洲视频 欧洲视频| 国产一区二区主播在线| 精品国产一区二区亚洲人成毛片| 亚洲自拍偷拍麻豆| 成人国产视频在线观看| 精品久久一二三区| 性做久久久久久久久| 一本一本久久a久久精品综合麻豆| 精品捆绑美女sm三区| 三级在线观看一区二区| 色成年激情久久综合| 欧美极品aⅴ影院| 韩日av一区二区| 日韩一卡二卡三卡四卡| 日韩中文字幕区一区有砖一区| 一本久道久久综合中文字幕| 国产精品丝袜久久久久久app| 久久99精品久久久久久 | 亚洲超丰满肉感bbw| 成人国产精品免费网站| 国产婷婷色一区二区三区在线| 麻豆成人久久精品二区三区小说| 欧美日韩一卡二卡三卡| 亚洲国产一二三| 欧美日韩免费观看一区二区三区| 亚洲视频小说图片| 色先锋资源久久综合| 亚洲激情自拍视频| 99久久伊人网影院| 亚洲欧美国产毛片在线| 欧美最猛性xxxxx直播| 亚洲一区二区欧美| 欧美一区二区三区色| 男男视频亚洲欧美| 日韩免费高清电影| 国产黄人亚洲片| 一区在线观看免费| 欧洲精品在线观看| 亚洲高清免费观看高清完整版在线观看| 日本韩国欧美一区二区三区| 亚洲一区二区高清| 日韩欧美国产三级| 粉嫩一区二区三区性色av| 国产精品成人免费在线| 欧美亚洲图片小说| 日本女人一区二区三区| 久久蜜臀精品av| 91色婷婷久久久久合中文| 亚洲一二三四区| 欧美成人三级在线| kk眼镜猥琐国模调教系列一区二区| 亚洲欧美一区二区久久| 91精品国产综合久久福利软件| 国产精品综合二区| 伊人婷婷欧美激情| 日韩久久免费av| 99热99精品| 久久国产精品99久久久久久老狼| 国产日产欧美一区| 欧美色图一区二区三区| 久久成人免费电影| 亚洲精品视频在线观看网站| 日韩三级高清在线| 色综合久久99| 激情欧美一区二区| 亚洲精品视频免费看| 日韩欧美激情一区| 一本大道久久a久久精二百| 欧美aaaaa成人免费观看视频| 国产精品乱码人人做人人爱| 欧美一区在线视频| 色噜噜狠狠色综合欧洲selulu| 久久精品99久久久| 一二三四社区欧美黄| 久久先锋影音av鲁色资源| 欧洲av一区二区嗯嗯嗯啊| 福利视频网站一区二区三区| 天天色综合天天| 亚洲欧美另类图片小说| 精品国产成人系列| 91精品国产一区二区三区香蕉| 成人午夜免费视频| 国产老女人精品毛片久久| 日本欧美一区二区在线观看| 亚洲色图制服诱惑| 国产性色一区二区| 日韩欧美另类在线| 制服丝袜在线91| 欧美亚洲自拍偷拍| 一本到不卡免费一区二区| 国产成人av一区二区| 老司机免费视频一区二区三区| 亚洲韩国一区二区三区| 亚洲精品精品亚洲| 国产精品免费av| 国产欧美精品一区aⅴ影院 | 日本午夜一本久久久综合| 亚洲蜜桃精久久久久久久| 国产精品美女久久福利网站| 久久先锋资源网| 欧美精品一区二区久久婷婷| 欧美久久高跟鞋激| 欧美综合欧美视频| 在线视频观看一区| 91久久精品国产91性色tv| 一本到一区二区三区| 色婷婷综合久久久中文字幕| 91首页免费视频| 91美女视频网站| 在线日韩av片| 欧美欧美午夜aⅴ在线观看| 欧美女孩性生活视频| 欧美丰满美乳xxx高潮www| 777奇米四色成人影色区| 欧美精品日韩综合在线| 欧美一卡在线观看| www日韩大片| 国产欧美日本一区二区三区| 国产精品剧情在线亚洲| 亚洲日本中文字幕区| 一区二区三区四区精品在线视频| 尤物在线观看一区| 日韩在线a电影| 精品夜夜嗨av一区二区三区| 国内精品免费在线观看| 国产福利精品一区| 91视频.com| 日韩一区二区影院| 日本一区二区三区四区在线视频 | 久久综合视频网| 国产日韩综合av| 亚洲欧美综合另类在线卡通| 亚洲国产一区二区三区| 麻豆传媒一区二区三区| 成人三级在线视频| 欧美三级乱人伦电影| 精品久久久久久久久久久久久久久 | 一本大道久久a久久精二百| 欧美猛男gaygay网站| 欧美变态口味重另类| 国产精品美女久久久久久久久久久| 亚洲精品视频在线看| 美女视频网站黄色亚洲| 粉嫩13p一区二区三区| 欧美性受极品xxxx喷水| 欧美草草影院在线视频| 亚洲欧美激情视频在线观看一区二区三区| 亚洲a一区二区| 岛国一区二区三区| 欧美日韩一区二区不卡| 国产亚洲va综合人人澡精品| 亚洲国产综合人成综合网站| 国产一区二区看久久| 欧美性色黄大片手机版| 久久久91精品国产一区二区三区| 一区二区三区色| 国产一区二区美女诱惑| 欧美日韩高清影院| 中文字幕av一区二区三区免费看| 亚洲国产欧美在线| 成人avav影音| 亚洲精品一区二区三区精华液| 夜夜精品浪潮av一区二区三区| 国产一区二区三区美女| 欧美乱妇15p| 亚洲三级久久久| 国产精品88888| 日韩欧美一级精品久久| 亚洲精品成a人| av电影在线观看完整版一区二区| 欧美精三区欧美精三区| 最好看的中文字幕久久| 国产一区欧美一区| 欧美电影免费观看高清完整版在 | 国产精品欧美久久久久无广告 | 成人蜜臀av电影| 精品国产乱码久久久久久久| 亚洲成av人片| 欧美午夜在线一二页| 成人免费小视频| av网站免费线看精品| 久久精品人人做| 韩国毛片一区二区三区| 日韩欧美一级二级三级久久久| 偷拍亚洲欧洲综合| 欧美视频在线一区二区三区 | 欧美激情一区二区| 国产精品一级二级三级| 欧美电视剧在线观看完整版| 美女一区二区视频| 日韩精品一区二| 精品无码三级在线观看视频| 欧美大胆一级视频| 国内外成人在线|