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

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

?? sys_arch.txt

?? atmel at91sam9260 LWIP移植工程
?? TXT
字號:
sys_arch interface for lwIP 0.6++Author: Adam DunkelsThe operating system emulation layer provides a common interfacebetween the lwIP code and the underlying operating system kernel. Thegeneral idea is that porting lwIP to new architectures requires onlysmall changes to a few header files and a new sys_archimplementation. It is also possible to do a sys_arch implementationthat does not rely on any underlying operating system.The sys_arch provides semaphores and mailboxes to lwIP. For the fulllwIP functionality, multiple threads support can be implemented in thesys_arch, but this is not required for the basic lwIPfunctionality. Previous versions of lwIP required the sys_arch toimplement timer scheduling as well but as of lwIP 0.5 this isimplemented in a higher layer.In addition to the source file providing the functionality of sys_arch,the OS emulation layer must provide several header files definingmacros used throughout lwip.  The files required and the macros theymust define are listed below the sys_arch description.Semaphores can be either counting or binary - lwIP works with bothkinds. Mailboxes are used for message passing and can be implementedeither as a queue which allows multiple messages to be posted to amailbox, or as a rendez-vous point where only one message can beposted at a time. lwIP works with both kinds, but the former type willbe more efficient. A message in a mailbox is just a pointer, nothingmore. Semaphores are represented by the type "sys_sem_t" which is typedef'din the sys_arch.h file. Mailboxes are equivalently represented by thetype "sys_mbox_t". lwIP does not place any restrictions on howsys_sem_t or sys_mbox_t are represented internally.The following functions must be implemented by the sys_arch:- void sys_init(void)  Is called to initialize the sys_arch layer.- sys_sem_t sys_sem_new(u8_t count)  Creates and returns a new semaphore. The "count" argument specifies  the initial state of the semaphore.- void sys_sem_free(sys_sem_t sem)  Deallocates a semaphore.- void sys_sem_signal(sys_sem_t sem)  Signals a semaphore.- u32_t sys_arch_sem_wait(sys_sem_t sem, u32_t timeout)  Blocks the thread while waiting for the semaphore to be  signaled. If the "timeout" argument is non-zero, the thread should  only be blocked for the specified time (measured in  milliseconds).  If the timeout argument is non-zero, the return value is the number of  milliseconds spent waiting for the semaphore to be signaled. If the  semaphore wasn't signaled within the specified time, the return value is  SYS_ARCH_TIMEOUT. If the thread didn't have to wait for the semaphore  (i.e., it was already signaled), the function may return zero.  Notice that lwIP implements a function with a similar name,  sys_sem_wait(), that uses the sys_arch_sem_wait() function.- sys_mbox_t sys_mbox_new(void)  Creates an empty mailbox.- void sys_mbox_free(sys_mbox_t mbox)  Deallocates a mailbox. If there are messages still present in the  mailbox when the mailbox is deallocated, it is an indication of a  programming error in lwIP and the developer should be notified.- void sys_mbox_post(sys_mbox_t mbox, void *msg)  Posts the "msg" to the mailbox.- u32_t sys_arch_mbox_fetch(sys_mbox_t mbox, void **msg, u32_t timeout)  Blocks the thread until a message arrives in the mailbox, but does  not block the thread longer than "timeout" milliseconds (similar to  the sys_arch_sem_wait() function). The "msg" argument is a result  parameter that is set by the function (i.e., by doing "*msg =  ptr"). The "msg" parameter maybe NULL to indicate that the message  should be dropped.  The return values are the same as for the sys_arch_sem_wait() function:  Number of milliseconds spent waiting or SYS_ARCH_TIMEOUT if there was a  timeout.  Note that a function with a similar name, sys_mbox_fetch(), is  implemented by lwIP.   - struct sys_timeouts *sys_arch_timeouts(void)  Returns a pointer to the per-thread sys_timeouts structure. In lwIP,  each thread has a list of timeouts which is repressented as a linked  list of sys_timeout structures. The sys_timeouts structure holds a  pointer to a linked list of timeouts. This function is called by  the lwIP timeout scheduler and must not return a NULL value.   In a single threadd sys_arch implementation, this function will  simply return a pointer to a global sys_timeouts variable stored in  the sys_arch module.  If threads are supported by the underlying operating system and ifsuch functionality is needed in lwIP, the following function will haveto be implemented as well:- sys_thread_t sys_thread_new(void (* thread)(void *arg), void *arg, int prio)  Starts a new thread with priority "prio" that will begin its execution in the  function "thread()". The "arg" argument will be passed as an argument to the  thread() function. The id of the new thread is returned. Both the id and  the priority are system dependent.- sys_prot_t sys_arch_protect(void)  This optional function does a "fast" critical region protection and returns  the previous protection level. This function is only called during very short  critical regions. An embedded system which supports ISR-based drivers might  want to implement this function by disabling interrupts. Task-based systems  might want to implement this by using a mutex or disabling tasking. This  function should support recursive calls from the same task or interrupt. In  other words, sys_arch_protect() could be called while already protected. In  that case the return value indicates that it is already protected.  sys_arch_protect() is only required if your port is supporting an operating  system.- void sys_arch_unprotect(sys_prot_t pval)  This optional function does a "fast" set of critical region protection to the  value specified by pval. See the documentation for sys_arch_protect() for  more information. This function is only required if your port is supporting  an operating system.Note:Be carefull with using mem_malloc() in sys_arch. When malloc() refers tomem_malloc() you can run into a circular function call problem. In mem.cmem_init() tries to allcate a semaphore using mem_malloc, which of coursecan't be performed when sys_arch uses mem_malloc.-------------------------------------------------------------------------------Additional files required for the "OS support" emulation layer:-------------------------------------------------------------------------------cc.h       - Architecture environment, some compiler specific, some             environment specific (probably should move env stuff              to sys_arch.h.)  Typedefs for the types used by lwip -    u8_t, s8_t, u16_t, s16_t, u32_t, s32_t, mem_ptr_t  Compiler hints for packing lwip's structures -    PACK_STRUCT_FIELD(x)    PACK_STRUCT_STRUCT    PACK_STRUCT_BEGIN    PACK_STRUCT_END  Platform specific diagnostic output -    LWIP_PLATFORM_DIAG(x)    - non-fatal, print a message.    LWIP_PLATFORM_ASSERT(x)  - fatal, print message and abandon execution.  "lightweight" synchronization mechanisms -    SYS_ARCH_DECL_PROTECT(x) - declare a protection state variable.    SYS_ARCH_PROTECT(x)      - enter protection mode.    SYS_ARCH_UNPROTECT(x)    - leave protection mode.  If the compiler does not provide memset() this file must include a  definition of it, or include a file which defines it.  This file must either include a system-local <errno.h> which defines  the standard *nix error codes, or it should #define LWIP_PROVIDE_ERRNO  to make lwip/arch.h define the codes which are used throughout.perf.h     - Architecture specific performance measurement.  Measurement calls made throughout lwip, these can be defined to nothing.    PERF_START               - start measuring something.    PERF_STOP(x)             - stop measuring something, and record the result.sys_arch.h - Tied to sys_arch.c  Arch dependent types for the following objects:    sys_sem_t, sys_mbox_t, sys_thread_t,  And, optionally:    sys_prot_t  Defines to set vars of sys_mbox_t and sys_sem_t to NULL.    SYS_MBOX_NULL NULL    SYS_SEM_NULL NULL

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲天天做日日做天天谢日日欢 | 国产精品免费av| 美女一区二区三区在线观看| 欧美日韩中文国产| 亚洲成人动漫av| 欧美一区二区三区白人| 久久精品99国产国产精| 欧美精品一区二| 大美女一区二区三区| 中文字幕国产一区| 亚洲一卡二卡三卡四卡无卡久久| 亚洲国产精品一区二区久久恐怖片| 国产精品乡下勾搭老头1| 国产精品亚洲人在线观看| 成人av网站在线| 91在线视频免费观看| 福利电影一区二区| 丁香网亚洲国际| 国产精品一品二品| 欧美一区二区三区在线观看| 欧美伊人久久久久久久久影院| 亚洲精品一区二区三区福利| 成人av集中营| 亚洲韩国精品一区| 精品国产3级a| 91福利在线播放| 麻豆精品在线播放| 中文字幕人成不卡一区| 欧美日韩国产经典色站一区二区三区 | 日韩亚洲欧美一区| 国产91精品久久久久久久网曝门 | 日韩高清国产一区在线| 国产亚洲va综合人人澡精品 | 欧美日韩久久不卡| 国产精品一区二区在线播放| 亚洲美腿欧美偷拍| 26uuu国产日韩综合| 欧美制服丝袜第一页| 六月丁香婷婷色狠狠久久| 亚洲欧洲www| 精品黑人一区二区三区久久 | 亚洲欧美偷拍三级| 精品国产91久久久久久久妲己| 91亚洲精品久久久蜜桃| 国产在线精品国自产拍免费| 亚洲一卡二卡三卡四卡无卡久久| 久久夜色精品国产噜噜av| 欧美午夜在线一二页| 国产精品99久久久久久似苏梦涵 | 一级日本不卡的影视| 国产欧美日韩另类视频免费观看| 欧美精品vⅰdeose4hd| 成人av在线资源| 激情成人综合网| 亚洲国产成人va在线观看天堂| 日本一区二区视频在线| 日韩欧美中文一区| 欧美亚洲尤物久久| 99久久精品国产毛片| 91亚洲国产成人精品一区二三| 日韩在线播放一区二区| 亚洲与欧洲av电影| 国产精品日韩精品欧美在线| 久久亚洲私人国产精品va媚药| 欧美日韩视频不卡| 欧美专区亚洲专区| 91国偷自产一区二区开放时间| 成人动漫一区二区三区| 高清shemale亚洲人妖| 国产一区在线观看视频| 久久成人18免费观看| 日韩av不卡在线观看| 石原莉奈在线亚洲三区| 亚洲成av人在线观看| 亚洲第一成年网| 亚洲综合丁香婷婷六月香| 一区二区理论电影在线观看| 亚洲男女毛片无遮挡| 亚洲欧美日韩国产手机在线| 自拍视频在线观看一区二区| **欧美大码日韩| 亚洲精品国产一区二区精华液| 亚洲乱码精品一二三四区日韩在线| ...av二区三区久久精品| 亚洲人成网站在线| 亚洲中国最大av网站| 亚洲成人精品一区| 日韩黄色片在线观看| 日本午夜一本久久久综合| 美女精品一区二区| 国产精品69毛片高清亚洲| 懂色av一区二区三区蜜臀| 国产.精品.日韩.另类.中文.在线.播放| 国产伦理精品不卡| 成人黄色片在线观看| 一本久道久久综合中文字幕| 在线观看视频一区| 91精品国产综合久久久久| 日韩精品影音先锋| 欧美经典一区二区三区| 亚洲丝袜精品丝袜在线| 亚洲尤物视频在线| 免费观看日韩电影| 国产成人在线观看| 在线观看精品一区| 日韩视频中午一区| 欧美高清在线精品一区| 亚洲综合精品自拍| 久久电影网电视剧免费观看| 岛国av在线一区| 欧洲一区二区三区在线| 日韩欧美精品在线视频| 国产精品黄色在线观看| 视频一区中文字幕国产| 国产成人精品免费一区二区| 91精彩视频在线观看| 精品久久久久99| 自拍偷拍欧美激情| 久久99热这里只有精品| 色欧美日韩亚洲| 精品女同一区二区| 亚洲狠狠丁香婷婷综合久久久| 麻豆精品视频在线| 色综合中文字幕国产 | 成人午夜又粗又硬又大| 91久久人澡人人添人人爽欧美| 日韩欧美亚洲另类制服综合在线| 中文字幕av一区二区三区| 国产一区二区在线电影| 成人激情视频网站| 日韩一区二区三区视频| 日韩一区欧美小说| 九色综合国产一区二区三区| 色欧美日韩亚洲| 久久精品一区二区| 午夜国产精品影院在线观看| 成人av电影在线| 欧美videos大乳护士334| 亚洲高清中文字幕| 99精品视频在线观看| 久久综合色一综合色88| 日韩精品亚洲专区| 欧美午夜精品久久久久久超碰| 中文在线资源观看网站视频免费不卡| 五月综合激情婷婷六月色窝| 91在线码无精品| 久久久蜜桃精品| 蜜臀av一区二区在线免费观看| 欧美在线不卡视频| 亚洲色图视频免费播放| 粉嫩高潮美女一区二区三区| 欧美一区二区三区在线电影| 亚洲国产一区二区a毛片| 99久久伊人精品| 久久久精品天堂| 黄页视频在线91| 欧美不卡视频一区| 日本不卡视频在线| 欧美日韩不卡一区| 亚洲一二三四在线观看| 91麻豆自制传媒国产之光| 国产精品久久久久久久久晋中| 国产精品一区二区三区网站| www亚洲一区| 狠狠色综合色综合网络| 精品欧美一区二区三区精品久久| 蜜桃av噜噜一区| 日韩一区二区三区四区五区六区| 日韩av在线发布| 欧美一级一区二区| 美国一区二区三区在线播放| 欧美美女视频在线观看| 日韩一区欧美二区| 欧美一区日韩一区| 久久精品国产第一区二区三区| 日韩精品中文字幕在线不卡尤物| 精品一区二区三区免费观看| 日韩精品一区二区三区在线| 精品一二线国产| 久久久精品国产99久久精品芒果| 国产白丝网站精品污在线入口| 欧美激情一区二区| 99国产精品久| 亚洲综合视频在线| 欧美一级日韩一级| 韩国午夜理伦三级不卡影院| 国产午夜亚洲精品午夜鲁丝片| 成人的网站免费观看| 午夜精品一区二区三区免费视频 | 欧美日韩一区二区三区在线| 视频精品一区二区| 久久综合九色综合欧美亚洲| 丁香激情综合国产| 一区二区三区四区激情| 91精品国产综合久久福利软件| 精品一区二区三区久久久| 中文字幕亚洲精品在线观看| 欧美专区亚洲专区| 麻豆国产91在线播放| 欧美国产精品久久|