亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? memory_check_vx.h

?? VxWorks Memory Pool VxWorks Memory Pool
?? H
字號:
/**
 * VxWorks Memory Pool Check                                   V1.00, 14.6.2002
 * -------------------------                           (c) Rene H. Straub, 2002
 * 
 * This software checks a VxWorks memory pool for consistency. It allows
 * to find to buffer overwrites which often corrupt the VxWorks memory list. 
 * I wrote this software while looking for a nasty bug in our software. By
 * using this code I finally was able to isolate and find the bug within
 * some hours (after 4 days of debugging). I hope you will find this code
 * as useful as I did.
 *
 * Principles of Operation:
 *  Each VxWorks memory pool contains a double linked list of free memory nodes. 
 *  Each node represents one block of free memory. Blocksizes can range from 16 
 *  bytes to some megabytes.
 *  Each free node is also a starting point to the list of allocated memory.
 *  In contrast to the free node list, this is a single linked list. 
 * 
 *  The memory check function walks through the free memory list and for each 
 *  node, checks the allocated memory it manages.
 *  All pointers are checked versus the memory boundaries you specified in the 
 *  call to memCheckSetup(). Next and previous node pointers are checked 
 *  for consistency. 
 *  If any of these tests fail a message is displayed and the error counter
 *  is increased. If errors have been found the function halts the current task,
 *  at the end of the test.
 *
 * Application Notes:
 *  1. Locate the file "/h/private/mempartlibp.h" and change the #include 
 *     statement in this file accordingly.
 *  2. Compile and link the memory check implementation to your project.
 *  3. Call memCheckSetup() once, specifying the memory pool you'd like to check.
 *     You can specify 0 to select the default memory pool. Also specify the
 *     memory range this pool covers.
 *  4. Call memCheck() from within your code. If you are looking for a bug you
 *     will most likely place calls to memCheck() around the erraneous code.
 *     Otherwise you'll have to decide on your own, where a check is useful.
 *  
 *  For a quick test of the functions call memCheckTest(). If everything works
 *  as expected, it should report an error in the memory list.
 *
 *
 * Important:
 *  1. In order to check a memory pool, the pool must be locked to prevent
 *     other tasks from modifying the memory list. The memCheck() function takes
 *     the sempahore of the pool at the start of the test and releases it at
 *     the end. While the test is running no memory can be allocated or freed
 *     in this pool by other tasks. So you better not call this in a time-critical 
 *     situation.
 *  2. Don't call this method from an ISR.
 *  3. In order not to fall in endless loops the code aborts if too many
 *     memory blocks are detected. If your code allocated a lot of memory blocks
 *     you might need to adapt the defines MAX_FREE_NODES and MAX_ALLOC_BLOCKS.
 *
 * Supported targets:
 *  This code has been successfully used on the following platforms.
 *  - VxWorks 5.4, Motorola Power PC
 *
 * Warranty:
 *  This software is provided as-is. There is no warranty whatsoever. You use 
 *  this software at your own risk. 
 *  In no way shall the author be made responsible for any damage caused by the
 *  use of this software.
 *
 * Copyright and Terms Of Use:
 *  You may use and redistribute this software as long as the original
 *  copyright statement remains intact. You are free to modify the code.
 *  Please let me know if you find this software useful, or if you found
 *  improvements (or bugs).
 * 
 * @author   : Rene Straub, rene.straub@yetnet.ch
 * @date     : 14.6.2002
 * @version  : 1.00
 **/

//--- includes ----------------------------------------------------------------

#ifdef __cplusplus
extern "C" {
#endif

// Need to access some VxWorks internals...
#include </rtos_vob/h/private/mempartlibp.h>    // select your path ...

#include <tasklib.h>


//--- defines -----------------------------------------------------------------

// A handy macro to call the memory check
#define MEM_CHECK()   memCheck(__FILE__, __LINE__)

// Debug level (specify 0 for normal use, use 1 and 2 for debugging only)
#define SHOW_LEVEL_ERROLY    0           // 0: Errors only.
                                  // 1: Errors, free nodes and summary
                                  // 2: All messages (be warned this may
                                  //    produce thousands of messages !)
#define SHOW_LEVEL_ERRFRR    1           
#define SHOW_LEVEL_ERRALL    2           

//--- prototypes --------------------------------------------------------------

/**
 * Configures the check function.
 * Call this function once before calling memCheck(). If you want to check more
 * than one memory partition, you must call memCheckSetup() again before using 
 * another partition.
 *
 * @param   partition     In. VxWorks memory partition. If 0 the default
 *                            partition is used.
 * @param   lowAddr       In. Lowest valid address in this memory partition.
 * @param   highAddr      In. Highest valid address in this memory partition.
 * @see     memCheck()
 **/
extern void memCheckSetup(PART_ID partition, void* lowAddr, void* highAddr);

/**
 * Checks VxWorks memory list.
 * If the memory list is ok, the function returns without an error. Otherwise
 * a debug message is printed and the calling task is suspended.
 *
 * @param   pszFile       In. File name, from where test is called.
 * @param   line          In. Line number, from where test is called.
 * @see     memCheckSetup()
 **/
extern void memCheck(const char* pszFile, unsigned line);

/**
 * Tests memory check function (only for debugging)
 *
 * This function intentionally corrupts a memory-node and then calls the check
 * function to find the corrupt memory node. 
 * If everything works well, the function will report an error and stop the 
 * calling task.
 * @note: This function is only for debugging, never use it in a real project.
 **/ 
extern void memCheckTest(void);



#ifdef __cplusplus
} /* end extern "C" */
#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品成人在线观看| 成人一级视频在线观看| 欧美亚洲综合久久| 亚洲一区二区av在线| 在线精品视频免费播放| 午夜精品久久久久久久99水蜜桃 | 亚洲欧洲精品一区二区精品久久久| 精品一区二区三区在线视频| 精品欧美一区二区三区精品久久 | 久久久综合激的五月天| 成人国产在线观看| 一区二区三区成人在线视频| 欧美精品123区| 精品综合免费视频观看| 亚洲国产高清不卡| 91福利在线观看| 日韩1区2区日韩1区2区| 久久久99精品免费观看不卡| 99久久精品国产观看| 亚洲男同1069视频| 日韩午夜电影在线观看| 国产精品性做久久久久久| 中文字幕一区二区三区在线播放| 91精品办公室少妇高潮对白| 麻豆精品新av中文字幕| 亚洲国产精品激情在线观看| 欧亚一区二区三区| 国产一二精品视频| 亚洲午夜羞羞片| 国产免费成人在线视频| 在线观看亚洲专区| 国产精品自在在线| 亚洲国产日日夜夜| 国产精品国产自产拍高清av王其| 欧美三级中文字幕| 成人黄色av电影| 免费不卡在线视频| 一区二区三区四区五区视频在线观看 | 亚洲高清在线视频| 久久久美女艺术照精彩视频福利播放| 日本电影欧美片| 国产麻豆成人传媒免费观看| 婷婷激情综合网| 国产成人av电影在线播放| 日韩高清一区二区| 国产一二三精品| 欧美v日韩v国产v| 亚洲免费观看高清完整版在线观看熊| 一本到三区不卡视频| 久久五月婷婷丁香社区| 一区二区三区欧美视频| 欧美日韩另类国产亚洲欧美一级| 亚洲成人av福利| 欧美国产精品久久| 欧美www视频| 欧美一区二区精品| 欧美亚洲国产一区在线观看网站 | 亚洲国产一区视频| 国产精品全国免费观看高清| 欧美一级xxx| 欧美乱妇20p| 欧美最猛黑人xxxxx猛交| 菠萝蜜视频在线观看一区| 精品一区二区三区免费播放 | 欧美性一区二区| 成人激情免费电影网址| 国产综合久久久久久久久久久久| 午夜欧美视频在线观看| 亚洲美女精品一区| 中文字幕电影一区| 中文字幕国产一区| 欧美激情在线观看视频免费| 精品电影一区二区三区| 日韩免费高清视频| 欧美mv日韩mv国产网站| 日韩欧美一区二区久久婷婷| 欧美一区二区在线不卡| 欧美日韩在线播放一区| 欧美在线|欧美| 在线观看亚洲一区| 欧美视频中文字幕| 欧美美女直播网站| 欧美二区三区的天堂| 欧美久久高跟鞋激| 日韩一区二区电影网| 日韩一级完整毛片| 亚洲精品一线二线三线| 欧美大白屁股肥臀xxxxxx| 51精品秘密在线观看| 欧美一区二区三区在线观看视频| 欧美精品九九99久久| 日韩欧美综合在线| 久久婷婷国产综合国色天香| 亚洲电影视频在线| 亚洲人吸女人奶水| 欧美日韩久久一区| 日韩一区二区三区在线视频| 欧美一级国产精品| 久久这里只有精品6| 久久老女人爱爱| av一区二区三区在线| 男女性色大片免费观看一区二区| 亚洲资源在线观看| 三级精品在线观看| 另类人妖一区二区av| 国产一区二区三区四区在线观看| 国产精品正在播放| 91蜜桃视频在线| 欧美一区二区三区电影| 久久品道一品道久久精品| 国产精品久久久久久福利一牛影视 | 亚洲精品国产高清久久伦理二区| 一区二区三区国产豹纹内裤在线| 天堂影院一区二区| 国产精品一品视频| 色猫猫国产区一区二在线视频| 欧美日韩一区三区| 久久久精品tv| 亚州成人在线电影| 国产一区二区不卡在线| 91久久国产最好的精华液| 日韩精品一区二区三区在线播放 | 精品国产99国产精品| 亚洲色图在线看| 老色鬼精品视频在线观看播放| 国产成人亚洲综合色影视| 91麻豆精品视频| 26uuu欧美日本| 亚洲一区影音先锋| 国产成人综合在线播放| 欧美日韩国产小视频| 中文在线资源观看网站视频免费不卡| 一区二区三区日韩欧美| 国产一区免费电影| 在线播放国产精品二区一二区四区| 国产欧美精品区一区二区三区| 亚洲第一会所有码转帖| 99久久精品一区| 精品久久久久久久久久久久包黑料 | 国产精品毛片大码女人 | 久久99精品久久久久久久久久久久| 不卡的电视剧免费网站有什么| 91精品综合久久久久久| 亚洲激情综合网| 国产凹凸在线观看一区二区| 在线播放中文一区| 一区二区三区在线免费| 不卡一区二区三区四区| 26uuu欧美日本| 青娱乐精品视频| 欧美三级视频在线| 亚洲精品免费在线| 成人福利视频网站| 久久精品人人做人人爽人人| 在线成人高清不卡| 极品美女销魂一区二区三区| 伦理电影国产精品| 91精品国产一区二区三区蜜臀| 亚洲已满18点击进入久久| 99精品视频在线播放观看| 国产日韩欧美精品综合| 成人高清视频在线| 99综合影院在线| 久久 天天综合| 精品无人码麻豆乱码1区2区 | 国产精品一区三区| 日韩免费高清av| 日本不卡一二三区黄网| 欧美区一区二区三区| 亚洲国产另类av| 欧美色区777第一页| 亚洲激情综合网| 欧美日韩免费在线视频| 亚洲国产视频直播| 欧美精品丝袜久久久中文字幕| 午夜精品一区二区三区免费视频| 欧美私人免费视频| 午夜视频一区在线观看| 欧美精品18+| 蜜桃视频一区二区三区在线观看 | 色88888久久久久久影院野外| 国产精品久久久久久久久免费樱桃| 懂色一区二区三区免费观看| 国产精品麻豆久久久| 97久久超碰国产精品| 亚洲日本在线看| 在线亚洲免费视频| 午夜国产不卡在线观看视频| 欧美二区乱c少妇| 国产久卡久卡久卡久卡视频精品| 久久久久久影视| 99久久夜色精品国产网站| 亚洲免费观看高清完整| 欧美日韩中文字幕精品| 男女激情视频一区| 国内精品久久久久影院薰衣草| 精品久久久久久久久久久久久久久久久 | 中文字幕欧美日韩一区| 91麻豆免费观看| 蜜臀av性久久久久蜜臀aⅴ流畅|