易截截图软件、单文件、免安装、纯绿色、仅160KB

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",


相关文档:

一个入侵linux的实例

我发现了一个网站,于是常规入侵。很好,它的FINGER开着,于是我编了一个SHELL,aaa帐号试到zzz(这是我发现的一个网上规律,那就是帐号的长度与口令的强度成正比, 如果一个帐号只有两三位长,那它的口令一般也很简单,反之亦然,故且称之为若氏定理吧),结果一个帐号也不存在,我没有再试它的帐号。因为我被它开的端口吸 ......

Linux学习笔记——DHCP服务


-、概念
       1、DHCP:动态主机配置协议
                     作用:用于简化IP配管理的TCP/IP标准。
       2、DHCP工作流程:
 &nb ......

RedHat Linux安装Oracle10g(图文详解 教程)

RedHat Linux安装Oracle10g(图文详解 教程)
http://winie.javaeye.com/blog/405120
关键字: redhat linux安装oracle10g(图文详解 教程)

另,本人有Word电子文档格式,如需要,请联系本人:asima127@gmail.com
  
1     
安装RedHat Enterprise Linux 3 ......

Linux一句话问题解答之二

1101 linux中刻录iso的方法(hutuworm)
方法一:使用xcdroast,选择制作光碟,选择ISO文件,刻录!
参见[url]http://www.xcdroast.org/xcdr098/faq-a15.html#17[/url]
方法二:找刻录机的命令:
cdrecord --scanbus
输出结果为:
0,0,0 0) 'ATAPI ' 'CD-R/RW 8X4X32 ' '5.EZ' Removable CD-ROM
刻录的命令:
cdrecord ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号