📄 iwlib.h
字号:
iw_get_range_info(int skfd, const char * ifname, iwrange * range);int iw_get_priv_info(int skfd, const char * ifname, iwprivargs ** ppriv);int iw_get_basic_config(int skfd, const char * ifname, wireless_config * info);int iw_set_basic_config(int skfd, const char * ifname, wireless_config * info);/* --------------------- PROTOCOL SUBROUTINES --------------------- */int iw_protocol_compare(const char * protocol1, const char * protocol2);/* -------------------- FREQUENCY SUBROUTINES --------------------- */void iw_float2freq(double in, iwfreq * out);double iw_freq2float(const iwfreq * in);void iw_print_freq_value(char * buffer, int buflen, double freq);void iw_print_freq(char * buffer, int buflen, double freq, int channel, int freq_flags);int iw_freq_to_channel(double freq, const struct iw_range * range);int iw_channel_to_freq(int channel, double * pfreq, const struct iw_range * range);void iw_print_bitrate(char * buffer, int buflen, int bitrate);/* ---------------------- POWER SUBROUTINES ----------------------- */int iw_dbm2mwatt(int in);int iw_mwatt2dbm(int in);void iw_print_txpower(char * buffer, int buflen, struct iw_param * txpower);/* -------------------- STATISTICS SUBROUTINES -------------------- */int iw_get_stats(int skfd, const char * ifname, iwstats * stats, const iwrange * range, int has_range);void iw_print_stats(char * buffer, int buflen, const iwqual * qual, const iwrange * range, int has_range);/* --------------------- ENCODING SUBROUTINES --------------------- */void iw_print_key(char * buffer, int buflen, const unsigned char * key, int key_size, int key_flags);int iw_in_key(const char * input, unsigned char * key);int iw_in_key_full(int skfd, const char * ifname, const char * input, unsigned char * key, __u16 * flags);/* ----------------- POWER MANAGEMENT SUBROUTINES ----------------- */void iw_print_pm_value(char * buffer, int buflen, int value, int flags);void iw_print_pm_mode(char * buffer, int buflen, int flags);/* --------------- RETRY LIMIT/LIFETIME SUBROUTINES --------------- */void iw_print_retry_value(char * buffer, int buflen, int value, int flags);/* ----------------------- TIME SUBROUTINES ----------------------- */void iw_print_timeval(char * buffer, int buflen, const struct timeval * time, const struct timezone * tz);/* --------------------- ADDRESS SUBROUTINES ---------------------- */int iw_check_mac_addr_type(int skfd, const char * ifname);int iw_check_if_addr_type(int skfd, const char * ifname);#if 0int iw_check_addr_type(int skfd, const char * ifname);#endif#if 0int iw_get_mac_addr(int skfd, const char * name, struct ether_addr * eth, unsigned short * ptype);#endifchar * iw_mac_ntop(const unsigned char * mac, int maclen, char * buf, int buflen);void iw_ether_ntop(const struct ether_addr * eth, char * buf);char * iw_sawap_ntop(const struct sockaddr * sap, char * buf);int iw_mac_aton(const char * orig, unsigned char * mac, int macmax);int iw_ether_aton(const char* bufp, struct ether_addr* eth);int iw_in_inet(char *bufp, struct sockaddr *sap);int iw_in_addr(int skfd, const char * ifname, char * bufp, struct sockaddr * sap);/* ----------------------- MISC SUBROUTINES ------------------------ */int iw_get_priv_size(int args);/* ---------------------- EVENT SUBROUTINES ---------------------- */void iw_init_event_stream(struct stream_descr * stream, char * data, int len);int iw_extract_event_stream(struct stream_descr * stream, struct iw_event * iwe, int we_version);/* --------------------- SCANNING SUBROUTINES --------------------- */int iw_process_scan(int skfd, char * ifname, int we_version, wireless_scan_head * context);int iw_scan(int skfd, char * ifname, int we_version, wireless_scan_head * context);/**************************** VARIABLES ****************************//* Modes as human readable strings */extern const char * const iw_operation_mode[];#define IW_NUM_OPER_MODE 7/************************* INLINE FUNTIONS *************************//* * Functions that are so simple that it's more efficient inlining them *//* * Note : I've defined wrapper for the ioctl request so that * it will be easier to migrate to other kernel API if needed *//*------------------------------------------------------------------*//* * Wrapper to push some Wireless Parameter in the driver */static inline intiw_set_ext(int skfd, /* Socket to the kernel */ const char * ifname, /* Device name */ int request, /* WE ID */ struct iwreq * pwrq) /* Fixed part of the request */{ /* Set device name */ strncpy(pwrq->ifr_name, ifname, IFNAMSIZ); /* Do the request */ return(ioctl(skfd, request, pwrq));}/*------------------------------------------------------------------*//* * Wrapper to extract some Wireless Parameter out of the driver */static inline intiw_get_ext(int skfd, /* Socket to the kernel */ const char * ifname, /* Device name */ int request, /* WE ID */ struct iwreq * pwrq) /* Fixed part of the request */{ /* Set device name */ strncpy(pwrq->ifr_name, ifname, IFNAMSIZ); /* Do the request */ return(ioctl(skfd, request, pwrq));}/*------------------------------------------------------------------*//* * Close the socket used for ioctl. */static inline voidiw_sockets_close(int skfd){ close(skfd);}/*------------------------------------------------------------------*//* * Display an Ethernet Socket Address in readable format. */static inline char *iw_saether_ntop(const struct sockaddr *sap, char* bufp){ iw_ether_ntop((const struct ether_addr *) sap->sa_data, bufp); return bufp;}/*------------------------------------------------------------------*//* * Input an Ethernet Socket Address and convert to binary. */static inline intiw_saether_aton(const char *bufp, struct sockaddr *sap){ sap->sa_family = ARPHRD_ETHER; return iw_ether_aton(bufp, (struct ether_addr *) sap->sa_data);}/*------------------------------------------------------------------*//* * Create an Ethernet broadcast address */static inline voidiw_broad_ether(struct sockaddr *sap){ sap->sa_family = ARPHRD_ETHER; memset((char *) sap->sa_data, 0xFF, ETH_ALEN);}/*------------------------------------------------------------------*//* * Create an Ethernet NULL address */static inline voidiw_null_ether(struct sockaddr *sap){ sap->sa_family = ARPHRD_ETHER; memset((char *) sap->sa_data, 0x00, ETH_ALEN);}/*------------------------------------------------------------------*//* * Compare two ethernet addresses */static inline intiw_ether_cmp(const struct ether_addr* eth1, const struct ether_addr* eth2){ return memcmp(eth1, eth2, sizeof(*eth1));}#ifdef __cplusplus}#endif#endif /* IWLIB_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -