⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mopacutl.cpp

📁 MONA是为数不多的C++语言编写的一个很小的操作系统
💻 CPP
字号:
/*!    \file   MoPacUtl.cpp    \brief  Mona 僷働僢僩儐乕僥傿儕僥傿僋儔僗    Copyright (c) 2004 Yamami    All rights reserved.    License=MIT/X License    \author  Yamami    \version $Revision: 1.2 $    \date   create:2004/08/18 update:$Date: 2004/09/20 15:29:03 $*//*! \class MoPacUtl *  \brief Mona 僷働僢僩儐乕僥傿儕僥傿僋儔僗 */#include "MoPacUtl.h"/*!    \brief initialize         MoPacUtl 僐儞僗僩儔僋僞    \author Yamami    \date   create:2004/08/12 update:*/MoPacUtl::MoPacUtl(){}/*!    \brief initialize         MoEther init    \author Yamami    \date   create:2004/08/12 update:*//*!    \brief initialize         MoPacUtl 僨僗僋僩儔僋僞    \author Yamami    \date   create:2004/08/12 update:*/MoPacUtl::~MoPacUtl() {}/*!    \brief packet_get_4byte         4僶僀僩僷働僢僩庢摼         僱僢僩儚乕僋僄儞僨傿傾儞曄姺    \param  byte *buf [in] 懳徾僶僢僼傽    \param  int offset [in] 懳徾僆僼僙僢僩    \return dword 庢摼抣        \author Yamami    \date   create:2004/08/18 update:*/dword MoPacUtl::packet_get_4byte(byte *buf, int offset){    dword a, b, c;    a = (dword)buf[offset++] << 24;    b = (dword)buf[offset++] << 16;    c = (dword)buf[offset++] << 8;    return a | b | c | buf[offset];}/*!    \brief packet_get_2byte         2僶僀僩僷働僢僩庢摼         僱僢僩儚乕僋僄儞僨傿傾儞曄姺    \param  byte *buf [in] 懳徾僶僢僼傽    \param  int offset [in] 懳徾僆僼僙僢僩    \return word 庢摼抣        \author Yamami    \date   create:2004/08/18 update:*/word MoPacUtl::packet_get_2byte(byte *buf, dword offset){    word a;    a = buf[offset++] << 8;        return a | buf[offset];}/*!    \brief packet_put_4byte         4僶僀僩僷働僢僩愝掕         僱僢僩儚乕僋僄儞僨傿傾儞曄姺    \param  byte *buf [in] 懳徾僶僢僼傽    \param  int offset [in] 懳徾僆僼僙僢僩    \param  idword [in] 愝掕抣    \return void 柍偟        \author Yamami    \date   create:2004/08/18 update:*/void MoPacUtl::packet_put_4byte(byte* buf, int offset, dword val){    buf += offset;    *buf++ = (val >> 24) & 0xff;    *buf++ = (val >> 16) & 0xff;    *buf++ = (val >>  8) & 0xff;    *buf = val & 0xff;}/*!    \brief packet_put_2byte         2僶僀僩僷働僢僩愝掕         僱僢僩儚乕僋僄儞僨傿傾儞曄姺    \param  byte *buf [in] 懳徾僶僢僼傽    \param  int offset [in] 懳徾僆僼僙僢僩    \param  iword [in] 愝掕抣    \return void 柍偟        \author Yamami    \date   create:2004/08/18 update:*/void MoPacUtl::packet_put_2byte(byte* buf, int offset, word val){    buf += offset;    *buf++ = (val >> 8) & 0xff;    *buf = val & 0xff;}/*!    \brief calcCheckSum         僠僃僢僋僒儉娭悢    \param  dword *data [in] 僠僃僢僋懳徾    \param  int size [in] 僠僃僢僋懳徾僒僀僘    \return word         \author Yamami    \date   create:2004/09/20 update:*/word MoPacUtl::calcCheckSum(dword *data,int size){    union{        unsigned long long u64;        dword            u32[2];        word             u16[4];    }sum;    dword tmp;    sum.u64=0;    for(;size>=sizeof(dword);size-=sizeof(dword))        sum.u64+=*data++;    if(size>0)sum.u64+=*data&((1<<(size*8))-1);    tmp=sum.u32[1];    sum.u32[1]=0;    sum.u64+=tmp;    tmp=sum.u32[1];    sum.u32[1]=0;    sum.u32[0]+=tmp;    tmp=sum.u16[1];    sum.u16[1]=0;    sum.u32[0]+=tmp;    tmp=sum.u16[1];    sum.u16[1]=0;    sum.u16[0]+=tmp;    return ~sum.u16[0];}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -