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

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

?? linux.c

?? usb user mode lib
?? C
?? 第 1 頁 / 共 2 頁
字號:
  DIR *dir;  struct dirent *entry;  dir = opendir(usb_path);  if (!dir)    USB_ERROR_STR(-errno, "couldn't opendir(%s): %s", usb_path,	strerror(errno));  while ((entry = readdir(dir)) != NULL) {    struct usb_bus *bus;    /* Skip anything starting with a . */    if (entry->d_name[0] == '.')      continue;    if (!strchr("0123456789", entry->d_name[strlen(entry->d_name) - 1])) {      if (usb_debug >= 2)        fprintf(stderr, "usb_os_find_busses: Skipping non bus directory %s\n",		entry->d_name);      continue;    }    bus = malloc(sizeof(*bus));    if (!bus)      USB_ERROR(-ENOMEM);    memset((void *)bus, 0, sizeof(*bus));    strncpy(bus->dirname, entry->d_name, sizeof(bus->dirname) - 1);    bus->dirname[sizeof(bus->dirname) - 1] = 0;    LIST_ADD(fbus, bus);    if (usb_debug >= 2)       fprintf(stderr, "usb_os_find_busses: Found %s\n", bus->dirname);  }  closedir(dir);  *busses = fbus;  return 0;}int usb_os_find_devices(struct usb_bus *bus, struct usb_device **devices){  struct usb_device *fdev = NULL;  DIR *dir;  struct dirent *entry;  char dirpath[PATH_MAX + 1];  snprintf(dirpath, PATH_MAX, "%s/%s", usb_path, bus->dirname);  dir = opendir(dirpath);  if (!dir)    USB_ERROR_STR(-errno, "couldn't opendir(%s): %s", dirpath,	strerror(errno));  while ((entry = readdir(dir)) != NULL) {    char filename[PATH_MAX + 1];    struct usb_device *dev;    int i, fd, ret;    /* Skip anything starting with a . */    if (entry->d_name[0] == '.')      continue;    dev = malloc(sizeof(*dev));    if (!dev)      USB_ERROR(-ENOMEM);    memset((void *)dev, 0, sizeof(*dev));    dev->bus = bus;    strncpy(dev->filename, entry->d_name, sizeof(dev->filename) - 1);    dev->filename[sizeof(dev->filename) - 1] = 0;    snprintf(filename, sizeof(filename) - 1, "%s/%s", dirpath, entry->d_name);    fd = open(filename, O_RDONLY);    if (fd < 0) {      if (usb_debug >= 2)        fprintf(stderr, "usb_os_find_devices: Couldn't open %s\n",		filename);      free(dev);      continue;    }    ret = read(fd, (void *)&dev->descriptor, sizeof(dev->descriptor));    if (ret < 0) {      if (usb_debug)        fprintf(stderr, "usb_os_find_devices: Couldn't read descriptor\n");      free(dev);      goto err;    }    LIST_ADD(fdev, dev);    if (usb_debug >= 2)      fprintf(stderr, "usb_os_find_devices: Found %s on %s\n",		dev->filename, bus->dirname);    /* Now try to fetch the rest of the descriptors */    if (dev->descriptor.bNumConfigurations > USB_MAXCONFIG)      /* Silent since we'll try again later */      goto err;    if (dev->descriptor.bNumConfigurations < 1)      /* Silent since we'll try again later */      goto err;    dev->config = (struct usb_config_descriptor *)malloc(dev->descriptor.bNumConfigurations * sizeof(struct usb_config_descriptor));    if (!dev->config)      /* Silent since we'll try again later */      goto err;    memset(dev->config, 0, dev->descriptor.bNumConfigurations *          sizeof(struct usb_config_descriptor));    for (i = 0; i < dev->descriptor.bNumConfigurations; i++) {      char buffer[8], *bigbuffer;      struct usb_config_descriptor *desc = (struct usb_config_descriptor *)buffer;      /* Get the first 8 bytes so we can figure out what the total length is */      ret = read(fd, (void *)buffer, 8);      if (ret < 8) {        if (usb_debug >= 1) {          if (ret < 0)            fprintf(stderr, "Unable to get descriptor (%d)\n", ret);          else            fprintf(stderr, "Config descriptor too short (expected %d, got %d)\n", 8, ret);        }        goto err;      }      USB_LE16_TO_CPU(desc->wTotalLength);      bigbuffer = malloc(desc->wTotalLength);      if (!bigbuffer) {        if (usb_debug >= 1)          fprintf(stderr, "Unable to allocate memory for descriptors\n");        goto err;      }      /* Copy over the first 8 bytes we read */      memcpy(bigbuffer, buffer, 8);      ret = read(fd, (void *)(bigbuffer + 8), desc->wTotalLength - 8);      if (ret < desc->wTotalLength - 8) {        if (usb_debug >= 1) {          if (ret < 0)            fprintf(stderr, "Unable to get descriptor (%d)\n", ret);          else            fprintf(stderr, "Config descriptor too short (expected %d, got %d)\n", desc->wTotalLength, ret);        }        free(bigbuffer);        goto err;      }      ret = usb_parse_configuration(&dev->config[i], bigbuffer);      if (usb_debug >= 2) {        if (ret > 0)          fprintf(stderr, "Descriptor data still left\n");        else if (ret < 0)          fprintf(stderr, "Unable to parse descriptors\n");      }      free(bigbuffer);    }err:    close(fd);  }  closedir(dir);  *devices = fdev;  return 0;}static int check_usb_vfs(const unsigned char *dirname){  DIR *dir;  struct dirent *entry;  int found = 0;  dir = opendir(dirname);  if (!dir)    return 0;  while ((entry = readdir(dir)) != NULL) {    /* Skip anything starting with a . */    if (entry->d_name[0] == '.')      continue;    /* We assume if we find any files that it must be the right place */    found = 1;    break;  }  closedir(dir);  return found;}void usb_os_init(void){  /* Find the path to the virtual filesystem */  if (getenv("USB_DEVFS_PATH")) {    if (check_usb_vfs(getenv("USB_DEVFS_PATH"))) {      strncpy(usb_path, getenv("USB_DEVFS_PATH"), sizeof(usb_path) - 1);      usb_path[sizeof(usb_path) - 1] = 0;    } else if (usb_debug)      fprintf(stderr, "usb_os_init: couldn't find USB VFS in USB_DEVFS_PATH\n");  }  if (!usb_path[0]) {    if (check_usb_vfs("/proc/bus/usb")) {      strncpy(usb_path, "/proc/bus/usb", sizeof(usb_path) - 1);      usb_path[sizeof(usb_path) - 1] = 0;    } else if (check_usb_vfs("/sys/bus/usb")) { /* 2.6 Kernel with sysfs */      strncpy(usb_path, "/sys/bus/usb", sizeof(usb_path) -1);      usb_path[sizeof(usb_path) - 1] = 0;    } else if (check_usb_vfs("/dev/usb")) {      strncpy(usb_path, "/dev/usb", sizeof(usb_path) - 1);      usb_path[sizeof(usb_path) - 1] = 0;    } else      usb_path[0] = 0;	/* No path, no USB support */  }  if (usb_debug) {    if (usb_path[0])      fprintf(stderr, "usb_os_init: Found USB VFS at %s\n", usb_path);    else      fprintf(stderr, "usb_os_init: No USB VFS found, is it mounted?\n");  }}int usb_resetep(usb_dev_handle *dev, unsigned int ep){  int ret;  ret = ioctl(dev->fd, IOCTL_USB_RESETEP, &ep);  if (ret)    USB_ERROR_STR(-errno, "could not reset ep %d: %s", ep,    	strerror(errno));  return 0;}int usb_clear_halt(usb_dev_handle *dev, unsigned int ep){  int ret;  ret = ioctl(dev->fd, IOCTL_USB_CLEAR_HALT, &ep);  if (ret)    USB_ERROR_STR(-errno, "could not clear/halt ep %d: %s", ep,    	strerror(errno));  return 0;}int usb_reset(usb_dev_handle *dev){  int ret;  ret = ioctl(dev->fd, IOCTL_USB_RESET, NULL);  if (ret)     USB_ERROR_STR(-errno, "could not reset: %s", strerror(errno));  return 0;}int usb_get_driver_np(usb_dev_handle *dev, int interface, char *name,	unsigned int namelen){  struct usb_getdriver getdrv;  int ret;  getdrv.interface = interface;  ret = ioctl(dev->fd, IOCTL_USB_GETDRIVER, &getdrv);  if (ret)    USB_ERROR_STR(-errno, "could not get bound driver: %s", strerror(errno));  strncpy(name, getdrv.driver, namelen - 1);  name[namelen - 1] = 0;  return 0;}int usb_detach_kernel_driver_np(usb_dev_handle *dev, int interface){  struct usb_ioctl command;  int ret;  command.ifno = interface;  command.ioctl_code = IOCTL_USB_DISCONNECT;  command.data = NULL;  ret = ioctl(dev->fd, IOCTL_USB_IOCTL, &command);  if (ret)    USB_ERROR_STR(-errno, "could not detach kernel driver from interface %d: %s",        interface, strerror(errno));  return 0;}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲精品国产无套在线观| 欧美美女网站色| 国产日韩成人精品| 国产不卡视频一区| 国产精品激情偷乱一区二区∴| 福利一区在线观看| 中文字幕一区不卡| 欧美做爰猛烈大尺度电影无法无天| 亚洲乱码国产乱码精品精的特点| 色婷婷av一区二区| 性做久久久久久久免费看| 91精品国产综合久久久久久久| 日本一道高清亚洲日美韩| 精品久久久久99| 国产suv一区二区三区88区| 日韩美女啊v在线免费观看| 欧美三区在线观看| 捆绑调教一区二区三区| 久久精品人人做人人综合| 日韩三级中文字幕| 国产精品亚洲专一区二区三区| 欧美韩日一区二区三区| 色妹子一区二区| 午夜久久久久久久久久一区二区| 日韩久久久久久| 不卡的看片网站| 亚洲成人动漫在线免费观看| 欧美xxxxxxxx| 北岛玲一区二区三区四区| 亚洲成人精品在线观看| 国产日产欧美精品一区二区三区| 91免费版在线看| 毛片av一区二区| 亚洲天天做日日做天天谢日日欢| 8x8x8国产精品| 成人免费电影视频| 亚洲成人动漫精品| 中文成人综合网| 51久久夜色精品国产麻豆| 成人性视频免费网站| 日一区二区三区| 中文字幕亚洲视频| 日韩欧美一区在线观看| 色综合欧美在线视频区| 韩日av一区二区| 亚洲午夜电影网| 日本一区二区不卡视频| 日韩一区二区三区视频在线观看| aaa欧美大片| 精品亚洲成a人在线观看| 亚洲成人精品一区| 一区视频在线播放| 国产三级精品视频| 欧美一区二区福利视频| 日本韩国欧美国产| 国产xxx精品视频大全| 久久国产精品99久久久久久老狼| 亚洲夂夂婷婷色拍ww47| 国产精品麻豆网站| 久久免费美女视频| 欧美成人免费网站| 91精品国产综合久久精品图片| 91网站在线播放| 成人a区在线观看| 国产精品影视网| 精品一区二区久久| 蜜桃视频一区二区三区 | 日韩精品一区二区三区蜜臀| 欧美午夜片在线观看| 91麻豆成人久久精品二区三区| 国产成人午夜高潮毛片| 极品美女销魂一区二区三区免费| 日韩成人精品在线观看| 天天综合天天综合色| 国产91丝袜在线播放| 黑人巨大精品欧美一区| 狠狠色狠狠色综合| 九色|91porny| 国产一区二区影院| 国产精品亚洲专一区二区三区| 激情丁香综合五月| 国产精品一区二区无线| 国产不卡视频在线观看| 国产成人精品www牛牛影视| 国产福利不卡视频| 国产成人亚洲精品狼色在线| 国产黑丝在线一区二区三区| 国产成人午夜高潮毛片| av亚洲精华国产精华精| 99精品国产视频| 在线视频你懂得一区| 欧美日韩精品三区| 91精品国产品国语在线不卡 | 777精品伊人久久久久大香线蕉| 欧美日韩黄色一区二区| 欧美一区2区视频在线观看| 日韩免费性生活视频播放| 久久这里只有精品视频网| 国产日韩欧美精品一区| 国产精品成人一区二区艾草 | 久久亚洲精精品中文字幕早川悠里| 久久综合成人精品亚洲另类欧美 | 国产精品久久久久久久午夜片 | 狠狠色丁香婷婷综合| 国产成人综合在线观看| 91视频xxxx| 欧美美女一区二区| 久久久久久久综合| 亚洲乱码国产乱码精品精98午夜 | 成人av资源下载| 91麻豆.com| 在线成人av网站| 久久女同互慰一区二区三区| 日韩毛片在线免费观看| 香蕉久久一区二区不卡无毒影院| 久久精品国产亚洲a| av电影在线观看不卡| 亚洲视频在线观看三级| 天使萌一区二区三区免费观看| 精品一区精品二区高清| 91麻豆国产福利精品| 欧美videos中文字幕| 亚洲免费观看高清完整版在线 | 成人污污视频在线观看| 欧美午夜精品一区二区蜜桃| 久久亚洲精精品中文字幕早川悠里 | 国精品**一区二区三区在线蜜桃| 成人毛片视频在线观看| 欧美一区二区视频网站| 亚洲三级小视频| 狠狠色综合播放一区二区| 欧美影院午夜播放| 国产日韩欧美亚洲| 久久机这里只有精品| 欧美午夜片在线看| 国产精品私人影院| 久久国产精品第一页| 欧美网站一区二区| 日韩一区日韩二区| 国产一区二三区| 91精品国产综合久久福利软件| 亚洲色图视频网| 国产风韵犹存在线视精品| 欧美一级二级三级乱码| 亚洲在线中文字幕| 99热这里都是精品| 国产欧美日韩精品一区| 国内精品视频666| 91精品国产91热久久久做人人| 一区二区在线免费观看| 成人理论电影网| 国产亚洲精品超碰| 国产原创一区二区| www国产精品av| 毛片av一区二区| 欧美一级免费观看| 午夜精品一区二区三区免费视频| 色婷婷av一区二区三区软件| 综合欧美亚洲日本| 成人精品视频一区二区三区| 久久精品亚洲一区二区三区浴池| 久久精品国产精品亚洲精品| 制服丝袜中文字幕一区| 视频一区在线播放| 亚洲视频在线一区二区| 成人不卡免费av| 国产精品久久久久久亚洲毛片| 国产99精品国产| 国产色综合一区| 国v精品久久久网| 日本一区二区动态图| 成人深夜在线观看| 国产精品久久久久影院色老大| 成人国产视频在线观看| 成人欧美一区二区三区小说| av亚洲精华国产精华精| 一区二区在线观看免费| 在线精品视频免费观看| 亚洲午夜久久久久久久久电影网| 欧美网站一区二区| 婷婷中文字幕一区三区| 91精品国产一区二区三区| 久久精品999| 国产亚洲精品7777| 99久久精品免费看国产| 亚洲综合色丁香婷婷六月图片| 欧美主播一区二区三区美女| 日韩精彩视频在线观看| 精品嫩草影院久久| 高清成人免费视频| 一区二区三区在线影院| 欧美精品在线一区二区| 久久99国产精品久久99 | 日韩一区二区三区四区| 韩国在线一区二区| 国产精品久久久久久久久动漫| 在线免费观看视频一区| 日本va欧美va瓶| 欧美激情中文不卡| 欧美无砖专区一中文字|