linux 0.11 内核学习 bitmap.c
/*
* linux/fs/bitmap.c
*
* (C) 1991 Linus Torvalds
*/
/* bitmap.c contains the code that handles the inode and block bitmaps */
#include <string.h>
#include <linux/sched.h>
#include <linux/kernel.h> // 一些内核常用函数的原形定义
/* 将指定地址(addr)处的一块内存清零 */
#define clear_block(addr) \
__asm__("cld\n\t" \
"rep\n\t" \
"stosl" \
::"a" (0),"c" (BLOCK_SIZE/4),"D" ((long) (addr)):"cx","di")
/* 置位指定地址开始的第nr 个位偏移处的比特位 */
#define set_bit(nr,addr) ({\
register int res __asm__("ax"); \
__asm__ __volatile__("btsl %2,%3\n\tsetb %%al": \
"=a" (res):"0" (0),"r" (nr),"m" (*(addr))); \
res;})
/* 复位指定地址addr开始的第nr 位偏移处的比特位 */
#define clear_bit(nr,addr) ({\
register int res __asm__("ax"); \
__asm__ __volatile__("btrl %2,%3\n\tsetnb %%al": \
"=a" (res):"0" (0),"r" (nr),"m" (*(addr))); \
res;})
/* 从addr 开始寻找第1 个0 值比特位,并将其距离addr 的比特位偏移值返回 */
#define find_first_zero(addr) ({ \
int __res; \
__asm__("cld\n" \
"1:\tlodsl\n\t" \
"notl %%eax\n\t" \
"bsfl %%eax,%%edx\n\t" \
"je 2f\n\t" \
"addl %%edx,%%ecx\n\t" \
"jmp 3f\n" \
"2:\taddl $32,%%ecx\n\t" \
"cmpl $8192,%%ecx\n\t" \
"jl 1b\n" \
"3:" \
:"=c" (__res):"c" (0),"S" (addr):"ax","dx","si"); \
__res;})
/* 复位指定逻辑块block (相对于磁盘而言)的逻辑块位图比特位 */
void free_block(int dev, int block)
{
struct super_block * sb;
struct buffer_head * bh;
if (!(sb = get_super(dev))) // 取指定设备dev 的超级块
panic("trying to free block on nonexistent device"); // 设备不存在
// 若逻辑块号小于首个逻辑块号或者大于设备上总逻辑块数
if (block < sb->s_firstdatazone || block >= sb->s_nzones)
panic("trying to free block not in datazone");
bh = get_hash_table(dev,block); // 从hash 表中寻找该块数据
if (bh) // 合法?
{
if (bh->b_count != 1) // 只有该进程占据block
{
printk("trying to free block (%04x:%d), count=%d\n",
相关文档:
本文档的Copyleft归yfydz所有,使用GPL发布,可以自由拷贝,转载,转载时请保持文档的完整性,严禁用于任何商业用途。
msn: yfydz_no1@hotmail.com
来源:http://yfydz.cublog.cn
1. 前言
对IP碎片的重组是防火墙提高安全性的一个重要手段,通过提前进行碎片重组,可以有效防御各种碎片攻击,Linux内核的防火墙 ......
-、概念
1、DHCP:动态主机配置协议
作用:用于简化IP配管理的TCP/IP标准。
2、DHCP工作流程:
&nb ......
http://www.ej38.com/showinfo/linux-111338.html
1. HCI层协议概述:
HCI提供一套统一的方法来访问Bluetooth底层。如图所示:
从图上可以看出,Host
Controller Interface(HCI) 就是用来沟通Host和Module。Host通常就是PC,
Module则是以各种物理连接形式(USB,serial,pc-card等)连接到PC上的bluetooth D ......
J2ee程序员应该掌握的linux知识
开发者在线 Builder.com.cn 更新时间:2007-09-01作者:中国IT实验室 来源:中国IT实验室
本文关键词: Linux J2ee
一般大型J2EE应用都在建构在linux环境下的。开发环境下我们可以通过samba映射成本地的网络驱动器,直接在windows环境下进行编程调试。但是最后的发布还是要到linux环境, ......
下载 SDK
系统和软件需求
用Android sdk的代码和工具开发Android应用程序,你需要下面列出来的合适开发电脑和开发环境.
所需操作系统:
•Windows XP 或 Vista
•Mac OS X 10.4.8 或更高版本 (仅支持x86)
•Linux ( Linux Ubuntu Dapper Drake 版本已测试)
所需开发环境:
•Eclipse IDE
◦Ecli ......