自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 资源 (7)
  • 收藏
  • 关注

转载 __attribute__

<br />GNU C的一大特色(却不被初学者所知)就是__attribute__机制。__attribute__可以设置函数属性(Function     Attribute)、变量属性(Variable Attribute)和类型属性(Type Attribute)。<br />__attribute__书写特征是:__attribute__前后都有两个下划线,并切后面会紧跟一对原括弧,括弧里面是相应的__attribute__参数。<br />__attribute__语法格式为:<br />__at

2010-12-28 10:25:00 447

原创 queue.h usage

<br /> queue.h usage<br /> /*<br /> * TAILQ example program.<br />*/<br />#include <stdlib.h><br />#include <stdio.h><br />/*<br /> * On many OpenBSD/NetBSD/FreeBSD you could include <sys/queue.h>, but<br /> * for portability we’ll include the local copy.<

2010-12-23 19:24:00 814

原创 对一个结构体取下标

<br /> <br /> <br />如下:<br /><br />  wh = (struct ieee80211_frame *) skb->data;<br />  frm = (u_int8_t *)&wh[1];<br /><br /><br />wh是一个指针<br />frm = wh + sizeof(struct ieee80211_frame) <br />&wh[1] 即frm是wh偏移这一段结构体大小size后的地址。<br /> <br />这是一种写代码的技巧,在协议相关代码里

2010-12-23 19:21:00 2059

原创 Linux内核中结构体的特殊初始化方法

<br />在阅读GNU/Linux内核代码时,我们会遇到一种特殊的结构初始化方式。该方式是某些C教材(如谭二版、K&R二版)中没有介绍过的。这种方式称为指定初始化(designated initializer)。下面我们看一个例子,Linux-2.6.x/drivers/usb/storage/usb.c中有这样一个结构体初始化项目: static struct usb_driver usb_storage_driver = {        .owner = THIS_MODULE,        .n

2010-12-19 09:13:00 1208 1

原创 结构体内的#define宏定义

<br />关于宏的作用域<br />1.     宏没有可见域。<br />        如果说有,那就是从本文件(包括被包含的文件)中,该宏定义处开始,至文件的尾部或取消宏(#undef)为止。<br />2.     考虑一种特殊情况:<br />        一个宏定义,如果写在结构体之内,即使与结构体之外的宏定义名字重复了最多是编译警告。可是如果不在结构体之内,名字重复可肯定是error。(未证实,可以做实验,而且可以把两处的宏定义成不同的值,会是什么情况?)<br />        定义在

2010-12-18 23:29:00 18262 3

转载 Madwifi 整理

//hardware:wireless chip ar9132<br />  // software: "LSDK-WLAN-ap81fus-7.1.2.32.tgz" supported by atheros<br />  //20080303 init<br />  一, 关键结构体变量<br />  ath_ar_ops<br />  net80211_ops<br />  ar5416hal<br /><br />  (struct ath_softc_net80211)->sc_ops = ath

2010-12-17 17:20:00 2707

原创 ioctl 学习之路 (3)

<br />一般的说,,用户空间的IOCTL系统调用如下所示: ioctl(int fd, int command, (char *) argstruct)因为这个调用拥有与网络相关的代码,所以文件描述符号fd就是socket()系统调用所返回的,而command参数可以是/usr/include/linux/sockios.h头文件中的任何一个,这些个命令根据它可以解决的问题所涉及的方面被分为多种的类型.<br />  比如:<br />  改变路由表(SIOCADDRT, SIOCDELRT)<br /

2010-12-10 18:13:00 699

转载 ioctl 学习之路 (2)

<br />我这里说的ioctl函数是在驱动程序里的,因为我不知道还有没有别的场合用到了ioctl, 所以就规定了我们讨论的范围。为什么要写篇文章呢,是因为我前一阵子被ioctl给搞混了,这几天才弄明白它,于是在这里清理一下头脑。<br />一、 什么是ioctl。<br />ioctl是设备驱动程序中对设备的I/O通道进行管理的函数。所谓对I/O通道进行管理,就是对设备的一些特性进行控制,例如串口的传输波特率、马达的转速等等。它的调用个数如下:<br />int ioctl(int fd, ind cmd

2010-12-10 17:45:00 719

原创 ioctl 学习之路 (1)

<br /><br />设备文件应该表现物理设备。大多物理设备既作为输出也作为输入,因此必须有某个机制使内核中的设备驱动程序得到来自进程的输出以便发送到设备。通过为输出打开设备文件并向其写而做到这个,就像写一个普通文件。在下面的例子中,这是用 device_write 实现的。<br />这不总是足够的。想象你有一个串行口连接到一个调制解调器(即使你有一个内置的调制解调器,从CPU的观点看它仍然是通过串行口连接到调制解调器,因此你不必责备你的想象力)。自然而然的事情是使用设备文件向调制解调器写(要么是调制解

2010-12-09 16:48:00 1581

原创 proc文件系统与ctl_table

<br />三、系统参数数据结构的组织 <br /><br /><br /><br />系统参数的数据结构是按层次结构进行组织的,最高一层是root,下面的一层依次 <br /><br />kernel、net、proc、fs、debug、dev。它们下面再分层,例如net下面又分为core <br /><br />、ipv4等,这样依次类推,直到最底层。 <br /><br />树中各个层次的结点,不管是父结点还是子结点,都用一个结构ctl_table组成的数 <br /><br />组来表示。所有的系统

2010-12-06 14:13:00 7129

原创 alloc_skb()

<br /> <br />sock_alloc_send_pskb() --> alloc_skb()<br /><br />    alloc_skb()用于分配缓冲区的函数。由于"数据缓冲区"和"缓冲区的描述结构"(sk_buff结构)是两种不同的实体,这就意味着,在分配一个缓冲区时,需要分配两块内存(一个是缓冲区,一个是缓冲区的描述结构sk_buff)。<br /><br />/usr/src/linux-2.6.19/include/linux/skbuff.h<br />static inline

2010-12-01 11:18:00 1833

Linkers and Loaders 链接器和加载器

Whatever your programming language, whatever your platform, you probably tap into linker and loader functions all the time. But do you know how to use them to their greatest possible advantage? Only now, with the publication of Linkers & Loaders, is there an authoritative book devoted entirely to these deep-seated compile-time and run-time processes.

2017-12-07

Draft P802.11ax_D1.0

802.11ax Draft D1.0 802.11ax标准的首要目标之一是将独立网络客户端的无线速度提升4倍。国内厂商华为已经透露(IEEE 802.11ax标准工作组就有他们的工程师),802.11ax标准在5GHz频段上可以带来高达10.53Gbps的Wi-Fi连接速度。

2017-12-07

CWNA官方学习指南 第3版 认证无线网络管理员PW0-105 完整版.z02

由于限制上传大小是110M,所以把文档分成了3份上传 - CWNA官方学习指南 第3版 认证无线网络管理员PW0-105 完整版.z01 - CWNA官方学习指南 第3版 认证无线网络管理员PW0-105 完整版.z02 - CWNA官方学习指南 第3版 认证无线网络管理员PW0-105 完整版.zip 下载以后放在同一个目录里面,然后解压即可

2017-12-07

CWNA官方学习指南 第3版 认证无线网络管理员PW0-105 完整版.z01

由于限制上传大小是110M,所以把文档分成了3份上传 - CWNA官方学习指南 第3版 认证无线网络管理员PW0-105 完整版.z01 - CWNA官方学习指南 第3版 认证无线网络管理员PW0-105 完整版.z02 - CWNA官方学习指南 第3版 认证无线网络管理员PW0-105 完整版.zip 下载以后放在同一个目录里面,然后解压即可

2017-12-07

Sybex.CWNA.Official.Study.Guide.CWNA-106

the officially endorsed CWNA test prep for the leading wireless certification. Expert authors and CWNEs David D. Coleman and David A. Westcott guide readers through the skills and concepts candidates need to know for the exam, using hands-on methods to convey an in-depth understanding of wireless network administration. Readers should have a basic knowledge of Radio Frequency behavior, experience with WLAN hardware peripherals and protocols, and an interest in designing, installing, and managing wireless networks. 非常专业的WIFI入门资料, 比802.11协议可读性高,强烈推荐 CWNA是CWAP的前置要求,属于CWNP考试的必修课。

2017-12-07

Sybex.CWAP.Official.Study.Guide.Exam.PW0-270.Mar.2011

Sybex.CWAP.Certified.Wireless.Analysis.Professional.Official.Study.Guide.Exam.PW0-270.Mar.2011.ISBN.978-0-470-76903-4 CWNP中的CWAP认证官方考试指导,比802.11协议更加具有可读性,是入门wifi协议的不二选择

2017-12-07

YouMoney(有钱记账)一个python写的开源的个人记账程序

一个python写的开源的个人记账程序。 YouMoney(有钱记账)是一个跨平台的个人记账软件。 它可以运行在windows, linux, macos x。 他使用简单,只有记账的核心功能。作者认为simple is better,简单够用就好。不需要大而全的东西。 界面支持英文,简体中文和日文。

2010-04-21

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除