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

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

?? ul_djgpp.c

?? linux下的RS485的驅動 值得一看
?? C
字號:
/*******************************************************************  uLan Communication - uL_DRV - multiplatform uLan driver  ul_djgpp.c	- DOS DJGPP specific routines  (C) Copyright 1996-2004 by Pavel Pisa - project originator        http://cmp.felk.cvut.cz/~pisa  (C) Copyright 1996-2004 PiKRON Ltd.        http://www.pikron.com  (C) Copyright 2002-2004 Petr Smolik    The uLan driver project can be used and distributed   in compliance with any of next licenses   - GPL - GNU Public License     See file COPYING for details.   - LGPL - Lesser GNU Public License   - MPL - Mozilla Public License   - and other licenses added by project originator  Code can be modified and re-distributed under any combination  of the above listed licenses. If contributor does not agree with  some of the licenses, he/she can delete appropriate line.  WARNING: if you delete all lines, you are not allowed to  distribute code or sources in any form. *******************************************************************/#include <go32.h>#ifdef ENABLE_UL_MEM_CHECKvoid * ul_mem_check_malloc(size_t size){ void *ptr;  ptr=malloc(size);  if(ptr){    ul_mem_check_counter++;    _go32_dpmi_lock_data(ptr,size);  }  return ptr;}void ul_mem_check_free(void *ptr){  if(!ptr) {    LOG_FATAL(KERN_CRIT "ul_mem_check_free : triing to free NULL ptr\n");  }else{    ul_mem_check_counter--;    free(ptr);  }}#endif /* ENABLE_UL_MEM_CHECK */static _go32_dpmi_seginfo wrapper;static __dpmi_paddr old_handler, new_handler;uchar pic1_old, pic2_old, pic_mask;int pm_irq;void *uld_djgpp_dev_id=NULL;int uld_djgpp_irq_mask_set(int irqline, int enable){  unsigned long irq_flags;  unsigned mask;  if(irqline>=16) return -1;  __save_flags(irq_flags);__cli();  if(irqline<8){    mask=inportb(0x21);    mask=enable?mask&~(1<<irqline):mask|(1<<irqline);    outportb(0x21,mask);                /* Change IRQ mask */  }else{    outportb(0x21,inportb(0x21)&0xFB);  /* Enable IRQ2 */    mask=inportb(0xA1);    mask=enable?mask&~(1<<(irqline-8)):mask|(1<<(irqline-8));    outportb(0xA1,mask);                /* Change IRQ mask */  }  __restore_flags(irq_flags);  return 0;}void uld_djgpp_irq_eoi(int irqline){  if(irqline<8){    outportb(0x20,0x20|0x40|irqline);  }else{    outportb(0xA0,0x20|0x40|(irqline&7));    outportb(0x20,0x20|0x40|0x2);  }}/* !!!!!!!!!!!! */void uld_djgpp_call_irq(void){  return;  if(ul_drv_arr[0])    uld_irq_handler(0, ul_drv_arr[0], NULL);}void uld_djgpp_proc_irq(void){  if(uld_djgpp_dev_id){    uld_irq_handler(0, uld_djgpp_dev_id, NULL);    uld_djgpp_irq_eoi(((ul_drv*)uld_djgpp_dev_id)->irq);  }else{    outportb(0xA0,0x20);    outportb(0x20,0x20);  }}int request_irq(int irq,void *handler,int flags,char *name,void *dev_id){ #if 1  /* !!!!!!!!!!!! */  handler=uld_djgpp_proc_irq;  uld_djgpp_dev_id=dev_id;  pic1_old=inportb(0x21);  pic2_old=inportb(0xA1);  if(irq<8) {    pm_irq=irq+0x08;  } else {    pm_irq=irq+0x68;  }  uld_djgpp_irq_mask_set(irq,0);  wrapper.pm_offset=(int)handler;  wrapper.pm_selector=_my_cs();  _go32_dpmi_allocate_iret_wrapper(&wrapper);  new_handler.offset32=wrapper.pm_offset;  new_handler.selector=wrapper.pm_selector;  __dpmi_get_protected_mode_interrupt_vector(pm_irq,&old_handler);  if(__dpmi_set_protected_mode_interrupt_vector(pm_irq,&new_handler)<0)  { LOG_FATAL("uLan request_irq: DPMI set interrupt failed\n");    return -1;  };  uld_djgpp_irq_mask_set(irq,1); #endif  return irq;}int free_irq(int irq,void *ctx){  uld_djgpp_irq_mask_set(irq,0);  __dpmi_set_protected_mode_interrupt_vector(irq,&old_handler);  outportb(0x21,pic1_old);  outportb(0xA1,pic2_old);  _go32_dpmi_free_iret_wrapper(&wrapper);  return 0;}#include <crt0.h>int _crt0_startup_flags = _CRT0_FLAG_LOCK_MEMORY;int uld_djgpp_data_end;void uld_djgpp_code_end(void) {;};void uld_djgpp_do_atexit(void){ int i;  for(i=0;i<UL_MINORS;i++)  {    if(ul_drv_arr[i])    {      ul_drv_free(ul_drv_arr[i]);      ul_drv_arr[i]=NULL;    }  }  UL_PRINTF("ulan_driver : atexit finished driver\n");  #ifdef ENABLE_UL_MEM_CHECK    UL_PRINTF("              mem_check_counter = %ld\n",ul_mem_check_counter);  #endif /* ENABLE_UL_MEM_CHECK */  uld_printk_flush();}void uld_djgpp_do_atinit(void) __attribute__((constructor));void uld_djgpp_do_atinit(void){  if(!uld_debug_flg) uld_debug_flg=ULD_DEBUG_DEFAULT;  if((_go32_dpmi_lock_code(&uld_djgpp_code_beg,(char*)&uld_djgpp_code_end-(char*)&uld_djgpp_code_beg))||     (_go32_dpmi_lock_data(&uld_djgpp_data_beg,(char*)&uld_djgpp_data_end-(char*)&uld_djgpp_data_beg)))  {    UL_PRINTF("ulan_driver : Cannot lock code and data in memory !\n");  }  atexit(uld_djgpp_do_atexit);  uld_check_timeout();  UL_PRINTF("ulan_driver : atinit finished\n");  uld_printk_flush();}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产乱码精品一区二区三区忘忧草 | 久久人人爽人人爽| 精品乱人伦一区二区三区| 国产亚洲综合性久久久影院| 中文字幕免费不卡| 亚洲视频你懂的| 亚洲18色成人| 狠狠色丁香久久婷婷综合_中| 国产资源在线一区| 成人天堂资源www在线| 91蜜桃传媒精品久久久一区二区| 92精品国产成人观看免费| 91国偷自产一区二区三区成为亚洲经典 | 国产精品国产自产拍高清av | 麻豆91在线播放| 欧美日韩国产综合视频在线观看| 欧美日韩国产一级片| 日韩三级视频在线观看| 久久久久国产成人精品亚洲午夜| 国产精品传媒入口麻豆| 亚洲bt欧美bt精品777| 精品一区二区三区在线观看国产| 欧美一区二区免费观在线| 久久久国产精品不卡| 一区二区视频在线看| 极品少妇一区二区| 91精品福利视频| 国产日韩欧美在线一区| 午夜伦理一区二区| av在线一区二区| 久久综合久久久久88| 五月天激情综合网| 99国内精品久久| 欧美精品一区二区高清在线观看| 亚洲一区二区三区免费视频| 成人一级视频在线观看| 日韩欧美资源站| 亚洲一二三区视频在线观看| 成人午夜在线免费| 日韩一区二区三区免费观看| 亚洲最新在线观看| www.亚洲精品| 久久精品在这里| 欧美aaaaa成人免费观看视频| 91美女精品福利| 欧美激情一区二区三区| 韩国欧美国产1区| 欧美一区二区国产| 亚洲成人在线网站| 色成人在线视频| 亚洲欧洲精品天堂一级| 国产在线视频一区二区三区| 欧美一区二区美女| 视频一区欧美精品| 欧美日韩不卡在线| 亚洲愉拍自拍另类高清精品| 91免费在线播放| 国产精品国产三级国产普通话三级| 九一久久久久久| 精品久久久久久久久久久久久久久 | 99re亚洲国产精品| 国产精品美女久久久久久久久久久| 精品一区二区免费视频| 日韩三级精品电影久久久| 日韩成人精品在线| 88在线观看91蜜桃国自产| 亚洲韩国一区二区三区| 欧美日韩高清在线| 午夜精品免费在线观看| 欧美日韩美少妇| 天天av天天翘天天综合网色鬼国产| 在线观看91视频| 一区二区国产视频| 欧美性猛片aaaaaaa做受| 亚洲精品国产精华液| 在线看日本不卡| 不卡的av电影在线观看| 国产性做久久久久久| 国产成人午夜精品影院观看视频| 国产亚洲精品中文字幕| 成人综合婷婷国产精品久久蜜臀| 中文字幕欧美日本乱码一线二线| 成人精品免费网站| 国产精品久久午夜夜伦鲁鲁| 色综合夜色一区| 亚洲午夜羞羞片| 制服丝袜一区二区三区| 国模娜娜一区二区三区| 国产亚洲一区二区三区四区| 成人精品小蝌蚪| 一级做a爱片久久| 欧美精品第1页| 激情成人综合网| 日本一区二区三区久久久久久久久不| www.久久久久久久久| 一区二区三区av电影| 欧美一级夜夜爽| 国产精品一卡二卡| 亚洲日本电影在线| 欧美日韩视频专区在线播放| 久久精品99国产精品| 国产人成亚洲第一网站在线播放| 91性感美女视频| 午夜精品久久久久久久| 久久免费的精品国产v∧| 91片在线免费观看| 日本特黄久久久高潮| 国产亚洲自拍一区| 在线观看欧美精品| 日韩中文字幕区一区有砖一区 | 国产夫妻精品视频| 亚洲欧美国产高清| 日韩欧美国产1| 成人黄色国产精品网站大全在线免费观看| 亚洲欧美日韩国产综合| 制服.丝袜.亚洲.另类.中文| 国产不卡在线视频| 亚洲主播在线播放| 久久久99精品久久| 欧美午夜精品理论片a级按摩| 美女视频一区二区| 日韩毛片精品高清免费| 日韩欧美一级二级| 不卡电影免费在线播放一区| 午夜精品在线视频一区| 欧美韩国日本一区| 6080午夜不卡| av电影在线不卡| 激情国产一区二区| 亚洲午夜久久久久久久久电影网| 久久蜜臀中文字幕| 欧美日韩精品福利| 99久久精品免费看| 九九精品一区二区| 亚洲一区二区精品3399| 国产精品欧美一区喷水| 欧美一区二区三区视频免费| 91在线观看美女| 国产在线不卡视频| 丝袜美腿亚洲综合| 亚洲免费观看在线观看| 欧美激情一区二区三区在线| 日韩美女在线视频| 欧美图区在线视频| 欧美mv和日韩mv国产网站| 欧美最新大片在线看| 成人av中文字幕| 国产美女在线精品| 蜜臀久久久99精品久久久久久| 亚洲人成网站色在线观看 | 成人免费高清在线| 蜜臀av性久久久久蜜臀aⅴ流畅 | 欧美另类变人与禽xxxxx| 99v久久综合狠狠综合久久| 国产精品99久久久久久久女警| 欧美aaaaa成人免费观看视频| 亚洲曰韩产成在线| 亚洲精品中文在线| 亚洲视频免费看| 国产精品国产三级国产aⅴ入口 | 99精品一区二区三区| 国产精品一区二区久激情瑜伽| 麻豆91精品91久久久的内涵| 亚洲国产精品久久不卡毛片 | 9191国产精品| 欧美三级电影网站| 欧美性受极品xxxx喷水| 91论坛在线播放| 成av人片一区二区| 成人小视频免费在线观看| 国产成人精品网址| 国产剧情av麻豆香蕉精品| 国内精品免费**视频| 久久精品国产**网站演员| 美女免费视频一区二区| 三级一区在线视频先锋| 日韩电影在线观看一区| 首页国产丝袜综合| 天天色综合天天| 日本怡春院一区二区| 三级久久三级久久久| 日韩国产欧美在线观看| 肉肉av福利一精品导航| 午夜精品久久久久久久| 天堂资源在线中文精品| 日本aⅴ亚洲精品中文乱码| 日韩激情一二三区| 免费成人在线视频观看| 老司机精品视频在线| 蜜臀av一区二区三区| 蜜臀av一区二区在线观看| 极品少妇xxxx偷拍精品少妇| 国产成人免费高清| 成人激情电影免费在线观看| 色婷婷综合久久久久中文| 精品污污网站免费看| 欧美一区二区三区思思人| 久久一日本道色综合| 亚洲国产精品传媒在线观看| 亚洲精品ww久久久久久p站|