Chinaunix首页 | 论坛 | 博客
  • 博客访问: 217916
  • 博文数量: 32
  • 博客积分: 410
  • 博客等级: 一等列兵
  • 技术积分: 396
  • 用 户 组: 普通用户
  • 注册时间: 2012-04-03 16:58
文章分类

全部博文(32)

文章存档

2013年(17)

2012年(15)

我的朋友

分类: LINUX

2013-03-28 15:20:18

length:新增数据长度;
       offset:偏移位置;
      U08 ipReassBitmap[];

    

U08 bitmapBits[8] = {0xff, 0x7f, 0x3f, 0x1f, 0x0f, 0x07, 0x03, 0x01};
//1bit--->8BYTE.1BYTE的空间映射(8X8)byte数据量;

if((offset / (8*8)) == ((offset+length) / (8*8)))        //不足一个BYTE单元;((offset+length)/8)不是8的整数倍;
        {//定位到B操作单元;
            ipReassBitmap[offset / (8*8)] |= (bitmapBits[(offset/8)&7] & ~bitmapBits[((offset+length)/8)&7]);
//如果offset==16,length==32bytes,需要4比特位;bitmapBits[((offset+length)/8)&7]==0x03;bitmapBits[(offset/8)&7]=0x3f

        }
        else//跨越不同操作单元;
        {
            ipReassBitmap[offset / (8*8)] |= bitmapBits[(offset / 8) & 7];
            for(i = (1 + offset / (8*8)); i < ((offset + length) / (8*8)); ++i)
            {
                ipReassBitmap[i] = 0xff;
            }
            
            ipReassBitmap[(offset + length) / (8*8)] |= ~bitmapBits[((offset + length) / 8) & 7];
        }
       

阅读(1589) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~