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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? device.c

?? Bycore是一個嵌入式操作系統(tǒng)內(nèi)核。Bycore包括內(nèi)存管理、任務(wù)管理、中斷管理、任務(wù)互斥、同步與通信管理等功能。Bycore全部由C語言完成
?? C
字號:
/** *  device.h * *  Copyright (C) 2008  ZhangHu *  All rights reserved. *  E-MAIL: anmnmnly@gmail.com * *  This program is free software: you can redistribute it and/or modify *  it under the terms of the GNU General Public License as published by *  the Free Software Foundation, either version 3 of the License, or *  (at your option) any later version. * *  This program is distributed in the hope that it will be useful, *  but WITHOUT ANY WARRANTY; without even the implied warranty of *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the *  GNU General Public License for more details. * *  You should have received a copy of the GNU General Public License *  along with this program.  If not, see <http://www.gnu.org/licenses/>. */#include "include/irq.h"#include "common/string.h"#include "device.h"/* Device list that store all device nodes. */static list_t device_list[DEVICE_NR];/* All entrys of device are stored here. */extern device_init_func dev_init_func[DEVICE_NR];/** * device_add - Add a device to device list. * @Dev: Pointer to device node. * @Name: Device name. * @Mid: Main ID. * @Sid: Secondary ID. * @return: DEV_OK if successful, otherwise DEV_NO_MEM. * * @notes: */static word_t device_add(device_t *Dev, const char_t *Name,                         char_t Mid, char_t Sid) {    char_t *pname;    if((pname = (char_t*)kmalloc(sizeof(Name) + 1)) == NULL) {        return DEV_NO_MEM;    }    lib_strcpy(pname, Name);    Dev->name = pname;    Dev->mid = Mid;    Dev->sid = Sid;    spin_init(&Dev->lock);    mac_disable_irq();    add_node_list_rear(&device_list[Dev->mid], &Dev->link);    mac_enable_irq();    return DEV_OK;}/** * device_init - Initialize device list and all devices. * @return: * * @notes: */void device_init(void) {    word_t i;    for(i=0; i<DEVICE_NR; i++) {        device_list[i].next = &device_list[i];        device_list[i].prev = &device_list[i];    }	i = 0;	while((dev_init_func[i] != NULL) && (i < DEVICE_NR)) {		dev_init_func[i]();		i++;	}}/** * char_device_register - Add a device to device list. * @Dev: Pointer to device node. * @Name: Device name. * @Mid: Main ID. * @Sid: Secondary ID. * @return: DEV_OK if successful, otherwise DEV_NO_MEM. * * @notes: */word_t char_device_register(device_t *dev, const char_t *Name,                       char_t Mid, char_t Sid) {    dev->dev_type = CHDEV;    dev->used_cnt = 0;    dev->delete_flag = FALSE;    return device_add(dev, Name, Mid, Sid);}/** * device_delete - Delete a device from device list. * @Mid: Main ID. * @Sid: Secondary ID. * @return: DEV_OK if successful, otherwise DEV_NO_MEM. * * @notes: */device_t *device_delete(uword_t chdevMID, uword_t chdevSID) {    list_t *plist;    device_t *dev;    if(chdevMID >= DEVICE_NR) {        return NULL;    }    mac_disable_irq();    plist = device_list[chdevMID].next;    if(plist == &device_list[chdevMID]) {        mac_enable_irq();        return NULL;    }    do {        dev = mac_find_entry(plist, device_t, link);        if(dev->sid == chdevSID) {            if(dev->delete_flag == TRUE && dev->used_cnt <= 0) {                del_node_list(&device_list[chdevMID], plist);                mac_enable_irq();                kfree(dev->name);                return dev;            } else {                dev->delete_flag = TRUE;                break;            }        }        plist = plist->next;    } while(plist !=  &device_list[chdevMID]);    mac_enable_irq();    return NULL;}/** * device_open - Open a device. * @Mid: Main ID. * @Sid: Secondary ID. * @return: Device node. * * @notes: */device_t *device_open(const char_t *name) {    word_t i;    list_t *list;    device_t *dev;    mac_disable_irq();    for(i = 0; i < DEVICE_NR; i++) {        list = device_list[i].next;        do {            dev = mac_find_entry(list, device_t, link);            if(lib_strcmp(dev->name, name) == 0) {                mac_enable_irq();                dev->delete_flag = FALSE;                dev->used_cnt++;                return dev;            } else {                list = list->next;            }        }while(list != device_list[i].next);    }    mac_disable_irq();    return NULL;}/** * device_close - Close a device. * @Dev: Pointer to device node. * @return: * * @notes: Just descread used count. */void device_close(device_t *dev) {    dev->used_cnt--;}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
韩国视频一区二区| 亚洲激情欧美激情| 国产在线播放一区三区四| 日韩一区二区三区观看| 欧美aaaaa成人免费观看视频| 在线播放日韩导航| 久久精品二区亚洲w码| 精品sm在线观看| 成人av在线观| 亚洲综合一二三区| 日韩欧美第一区| 国产成人精品亚洲777人妖 | 在线影视一区二区三区| 亚洲一区国产视频| 日韩无一区二区| 国产成人免费视频一区| 亚洲精选视频免费看| 欧美一区二区三区四区视频| 久久se精品一区二区| 久久久夜色精品亚洲| 91蜜桃传媒精品久久久一区二区| 亚洲一区中文在线| 日韩久久久久久| av电影天堂一区二区在线观看| 一区二区三区精品视频在线| 在线播放中文字幕一区| 国产精品性做久久久久久| 亚洲色图欧美偷拍| 欧美videos中文字幕| 成年人午夜久久久| 免费xxxx性欧美18vr| 中文字幕一区二区三区蜜月| 欧美高清视频www夜色资源网| 国产精品香蕉一区二区三区| 亚洲电影视频在线| 国产精品国产精品国产专区不蜜| 欧美日韩极品在线观看一区| 国产美女精品人人做人人爽| 一区二区三区精密机械公司| 精品久久久久久无| 欧美性猛交一区二区三区精品| 久久精品国产秦先生| 一级中文字幕一区二区| 亚洲激情欧美激情| 91精品国产综合久久香蕉的特点| 国产精品一区二区在线看| 丝袜美腿亚洲综合| 亚洲视频 欧洲视频| 精品久久久久久最新网址| 欧美在线一二三| 国产suv精品一区二区883| 日韩国产欧美三级| 亚洲一二三专区| 国产精品网站在线播放| 日韩欧美国产午夜精品| 欧美日本高清视频在线观看| 91在线porny国产在线看| 国产精品99久久久| 九九久久精品视频| 免费精品视频最新在线| 夜夜精品浪潮av一区二区三区| 日本一区二区三区dvd视频在线| 日韩一区二区三区精品视频 | 欧美午夜一区二区三区| 99re这里只有精品首页| 顶级嫩模精品视频在线看| 黑人巨大精品欧美一区| 美女国产一区二区| 免费成人在线影院| 免费成人在线网站| 美女视频免费一区| 免费成人在线观看视频| 久久爱www久久做| 蜜桃视频一区二区三区在线观看| 日韩—二三区免费观看av| 亚洲成人自拍一区| 石原莉奈在线亚洲三区| 偷拍日韩校园综合在线| 亚洲成av人片在www色猫咪| 亚洲线精品一区二区三区| 亚洲国产精品一区二区www| 一区二区三区精品视频| 亚洲一区二区三区四区五区中文 | 91亚洲永久精品| 成人激情动漫在线观看| 成人激情电影免费在线观看| eeuss影院一区二区三区| 99天天综合性| 欧美在线免费观看亚洲| 91麻豆精品国产91久久久| 欧美电影免费观看高清完整版 | 777久久久精品| 欧美一区二区三区四区久久| 精品蜜桃在线看| 国产欧美视频一区二区三区| 国产精品久久久久一区| 亚洲免费观看高清完整版在线| 亚洲精品午夜久久久| 天天色天天爱天天射综合| 毛片av中文字幕一区二区| 国产精品一区三区| 色噜噜狠狠色综合中国| 69久久99精品久久久久婷婷 | 国产日韩一级二级三级| 日韩一区在线播放| 午夜av一区二区| 精品亚洲成a人在线观看| 波多野结衣一区二区三区 | 蜜桃视频第一区免费观看| 狠狠色狠狠色综合日日91app| 国产激情一区二区三区| 色综合天天视频在线观看| 欧美三级三级三级| 精品电影一区二区三区| 亚洲美女免费在线| 青草av.久久免费一区| 风间由美性色一区二区三区| 欧美性大战久久久久久久蜜臀| 日韩三级.com| 最新久久zyz资源站| 免费看日韩a级影片| 成人av午夜电影| 日韩欧美一卡二卡| 亚洲精品免费一二三区| 国产一区二区在线观看免费| 色婷婷综合五月| 久久久久久9999| 丝袜a∨在线一区二区三区不卡| 国产九色精品成人porny| 欧美在线一区二区| 中文字幕av一区 二区| 日日摸夜夜添夜夜添精品视频| 成人午夜又粗又硬又大| 欧美一级日韩免费不卡| 综合在线观看色| 国产精品一区在线观看乱码| 欧美精选一区二区| 亚洲精选免费视频| 国产成人av影院| 日韩三级视频在线看| 亚洲资源在线观看| 99热这里都是精品| 久久久久久久久久久99999| 五月天精品一区二区三区| 日本电影亚洲天堂一区| 日本一区二区三区国色天香| 捆绑调教美女网站视频一区| 91国产成人在线| 亚洲人成精品久久久久| 成人综合在线网站| 国产亚洲精品精华液| 久久99精品国产麻豆婷婷洗澡| 欧美三级三级三级| 亚洲国产日韩在线一区模特 | 激情久久五月天| 91精品午夜视频| 亚洲午夜激情av| 欧美午夜精品免费| 亚洲精品国产无天堂网2021| av一二三不卡影片| 国产精品不卡一区二区三区| 韩国成人精品a∨在线观看| 91精品黄色片免费大全| 欧美a级理论片| 91精品欧美久久久久久动漫| 亚洲国产精品激情在线观看| 精品一区二区三区免费观看| 91年精品国产| 国产精品三级av| 成人小视频在线| 自拍偷拍国产亚洲| 色婷婷综合久久久久中文一区二区| 国产精品久久久久久亚洲伦| 国产a级毛片一区| 国产精品视频免费看| 成人免费电影视频| 成人免费在线视频观看| 欧美变态tickling挠脚心| 奇米888四色在线精品| 一区在线播放视频| 国产成a人亚洲精品| 精品国产一区二区三区不卡| 婷婷久久综合九色综合绿巨人| 99久久国产综合精品色伊| 精品少妇一区二区三区在线视频| 一区二区三区视频在线看| 从欧美一区二区三区| 国产亚洲短视频| 国产一区二区美女诱惑| 日韩亚洲欧美成人一区| 丝袜美腿成人在线| 欧美日韩一区高清| 亚洲欧美日韩久久精品| av在线不卡网| 亚洲欧美在线aaa| 国产91精品入口| 久久久欧美精品sm网站| 狠狠色丁香婷婷综合| 久久免费看少妇高潮| 国产一区二区调教|