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

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

?? proc.c

?? 話帶數據中傳真解調程序
?? C
字號:
/* *	$Id: proc.c,v 1.2 1999/04/18 19:08:12 mj Exp $ * *	The PCI Library -- Configuration Access via /proc/bus/pci * *	Copyright (c) 1997--1999 Martin Mares <mj@atrey.karlin.mff.cuni.cz> * *	Can be freely distributed and used under the terms of the GNU GPL. */#define _GNU_SOURCE#include <stdio.h>#include <string.h>#include <unistd.h>#include <errno.h>#include <fcntl.h>#include <sys/types.h>#include "internal.h"#include <asm/unistd.h>#if defined(__GLIBC__) && __GLIBC__ == 2 && __GLIBC_MINOR__ < 1#include <syscall-list.h>#endif/* * As libc doesn't support pread/pwrite yet, we have to call them directly * or use lseek/read/write instead. */#if !(defined(__GLIBC__) && __GLIBC__ == 2 && __GLIBC_MINOR__ > 0)#if defined(__GLIBC__) && !(defined(__powerpc__) && __GLIBC__ == 2 && __GLIBC_MINOR__ == 0)#ifndef SYS_pread#define SYS_pread __NR_pread#endifstatic intpread(unsigned int fd, void *buf, size_t size, loff_t where){  return syscall(SYS_pread, fd, buf, size, where);}#ifndef SYS_pwrite#define SYS_pwrite __NR_pwrite#endifstatic intpwrite(unsigned int fd, void *buf, size_t size, loff_t where){  return syscall(SYS_pwrite, fd, buf, size, where);}#elsestatic _syscall4(int, pread, unsigned int, fd, void *, buf, size_t, size, loff_t, where);static _syscall4(int, pwrite, unsigned int, fd, void *, buf, size_t, size, loff_t, where);#endif#endifstatic voidproc_config(struct pci_access *a){  a->method_params[PCI_ACCESS_PROC_BUS_PCI] = PATH_PROC_BUS_PCI;}static intproc_detect(struct pci_access *a){  char *name = a->method_params[PCI_ACCESS_PROC_BUS_PCI];  if (access(name, R_OK))    {      a->warning("Cannot open %s", name);      return 0;    }  a->debug("...using %s", name);  return 1;}static voidproc_init(struct pci_access *a){  a->fd = -1;}static voidproc_cleanup(struct pci_access *a){  if (a->fd >= 0)    {      close(a->fd);      a->fd = -1;    }}static voidproc_scan(struct pci_access *a){  FILE *f;  char buf[256];  if (snprintf(buf, sizeof(buf), "%s/devices", a->method_params[PCI_ACCESS_PROC_BUS_PCI]) == sizeof(buf))    a->error("File name too long");  f = fopen(buf, "r");  if (!f)    a->error("Cannot open %s", buf);  while (fgets(buf, sizeof(buf)-1, f))    {      struct pci_dev *d = pci_alloc_dev(a);      unsigned int dfn, vend;      sscanf(buf,#ifdef HAVE_64BIT_ADDRESS	     "%x %x %x %llx %llx %llx %llx %llx %llx %llx",#else	     "%x %x %x %lx %lx %lx %lx %lx %lx %lx",#endif	     &dfn,	     &vend,	     &d->irq,	     &d->base_addr[0],	     &d->base_addr[1],	     &d->base_addr[2],	     &d->base_addr[3],	     &d->base_addr[4],	     &d->base_addr[5],	     &d->rom_base_addr);      d->bus = dfn >> 8U;      d->dev = PCI_SLOT(dfn & 0xff);      d->func = PCI_FUNC(dfn & 0xff);      d->vendor_id = vend >> 16U;      d->device_id = vend & 0xffff;      d->known_fields = a->buscentric ? PCI_FILL_IDENT				      : (PCI_FILL_IDENT | PCI_FILL_IRQ | PCI_FILL_BASES | PCI_FILL_ROM_BASE);      pci_link_dev(a, d);    }  fclose(f);}static intproc_setup(struct pci_dev *d, int rw){  struct pci_access *a = d->access;  if (a->cached_dev != d || a->fd_rw < rw)    {      char buf[256];      if (a->fd >= 0)	close(a->fd);      if (snprintf(buf, sizeof(buf), "%s/%02x/%02x.%d", a->method_params[PCI_ACCESS_PROC_BUS_PCI],		   d->bus, d->dev, d->func) == sizeof(buf))	a->error("File name too long");      a->fd_rw = a->writeable || rw;      a->fd = open(buf, a->fd_rw ? O_RDWR : O_RDONLY);      if (a->fd < 0)	a->warning("Cannot open %s", buf);      a->cached_dev = d;    }  return a->fd;}static intproc_read(struct pci_dev *d, int pos, byte *buf, int len){  int fd = proc_setup(d, 0);  int res;  if (fd < 0)    return 0;  res = pread(fd, buf, len, pos);  if (res < 0)    {      d->access->warning("proc_read: read failed: %s", strerror(errno));      return 0;    }  else if (res != len)    {      d->access->warning("proc_read: tried to read %d bytes at %d, but got only %d", len, pos, res);      return 0;    }  return 1;}static intproc_write(struct pci_dev *d, int pos, byte *buf, int len){  int fd = proc_setup(d, 1);  int res;  if (fd < 0)    return 0;  res = pwrite(fd, buf, len, pos);  if (res < 0)    {      d->access->warning("proc_write: write failed: %s", strerror(errno));      return 0;    }  else if (res != len)    {      d->access->warning("proc_write: tried to write %d bytes at %d, but got only %d", len, pos, res);      return 0;    }  return 1;}static voidproc_cleanup_dev(struct pci_dev *d){  if (d->access->cached_dev == d)    d->access->cached_dev = NULL;}struct pci_methods pm_linux_proc = {  "/proc/bus/pci",  proc_config,  proc_detect,  proc_init,  proc_cleanup,  proc_scan,  pci_generic_fill_info,  proc_read,  proc_write,  NULL,					/* init_dev */  proc_cleanup_dev};

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99精品久久免费看蜜臀剧情介绍| 欧美精品欧美精品系列| 亚洲国产精品久久久久秋霞影院| 亚洲精品一线二线三线| 91精品福利在线| 激情深爱一区二区| 亚洲成人免费视频| 成人免费在线视频| 欧美va亚洲va在线观看蝴蝶网| 在线精品视频一区二区| 成人精品小蝌蚪| 国产在线不卡一卡二卡三卡四卡| 日日夜夜精品视频天天综合网| 中文字幕一区二区三区四区| 精品福利av导航| 日韩一区二区视频在线观看| 欧美少妇bbb| 欧美最猛性xxxxx直播| 99久久精品国产导航| 丁香婷婷综合色啪| 久久99国产精品久久| 亚洲成人黄色小说| 一区二区三区.www| 中文字幕精品一区二区精品绿巨人| 日韩免费观看2025年上映的电影| 欧美性xxxxxxxx| 欧美中文字幕一区| 色婷婷香蕉在线一区二区| 波多野结衣视频一区| 国产精品88av| 国产很黄免费观看久久| 国产最新精品精品你懂的| 日韩专区在线视频| 日日夜夜精品免费视频| 五月激情六月综合| 亚洲成人三级小说| 日韩中文字幕不卡| 毛片一区二区三区| 蜜臀av性久久久久av蜜臀妖精 | 亚洲一区二区欧美日韩| 亚洲情趣在线观看| 日韩美女啊v在线免费观看| 国产亲近乱来精品视频| 国产欧美日韩精品在线| 国产欧美一区二区精品性色| 国产欧美一区二区在线观看| 中文字幕不卡在线| 中文字幕一区二区三区乱码在线| 亚洲欧美在线观看| 伊人夜夜躁av伊人久久| 亚洲国产精品嫩草影院| 日日欢夜夜爽一区| 精品一区二区在线免费观看| 国产成人h网站| av一区二区三区黑人| 一本色道久久综合亚洲精品按摩| 欧美在线不卡视频| 欧美精品日韩一区| 久久午夜老司机| 国产精品―色哟哟| 亚洲第一成人在线| 免费黄网站欧美| 国产999精品久久| 色诱亚洲精品久久久久久| 欧美美女一区二区三区| 欧美成人r级一区二区三区| 国产女主播视频一区二区| 中文字幕亚洲区| 日韩电影免费一区| 国产精品综合一区二区三区| 色呦呦网站一区| 555夜色666亚洲国产免| 久久久久久亚洲综合影院红桃| 中文字幕在线观看一区二区| 亚洲一本大道在线| 国内成人精品2018免费看| 91免费观看在线| 日韩三级.com| 亚洲女爱视频在线| 免费成人美女在线观看| 99精品欧美一区二区蜜桃免费 | 2021中文字幕一区亚洲| 亚洲欧洲综合另类| 久久精品国产亚洲aⅴ| 成人综合日日夜夜| 欧美高清一级片在线| 国产精品拍天天在线| 五月婷婷欧美视频| 成人精品国产一区二区4080| 欧美伦理影视网| 亚洲三级视频在线观看| 久久不见久久见免费视频1| 色www精品视频在线观看| 日韩一级片在线观看| 中文字幕佐山爱一区二区免费| 麻豆成人av在线| 在线亚洲免费视频| 欧美激情一区在线| 久久精品国产澳门| 欧美亚洲综合另类| 国产精品不卡一区| 国产乱一区二区| 日韩欧美一级片| 亚洲aaa精品| 色呦呦日韩精品| 国产精品九色蝌蚪自拍| 国产真实乱子伦精品视频| 国产午夜久久久久| 五月激情综合网| 在线观看亚洲一区| 1024亚洲合集| 粉嫩一区二区三区性色av| 日韩精品一区二区在线| 亚洲成在人线在线播放| 色天使久久综合网天天| 国产精品久久久久久久久晋中| 国产一区二区三区免费在线观看 | 日韩女优av电影在线观看| 亚洲一区二区欧美| 9色porny自拍视频一区二区| 亚洲精品一区二区三区蜜桃下载| 日本欧美一区二区三区乱码| 欧美性极品少妇| 一区二区三区在线不卡| 播五月开心婷婷综合| 国产欧美精品区一区二区三区| 国产一区二区三区香蕉| 91精品国产综合久久福利| 亚洲电影中文字幕在线观看| 欧美视频一区在线| 亚洲综合色丁香婷婷六月图片| 色哟哟精品一区| 亚洲精品日韩综合观看成人91| 97久久超碰精品国产| 亚洲色图视频网| 91老司机福利 在线| 亚洲欧美视频在线观看| 91国产免费看| 亚洲成人综合网站| 51久久夜色精品国产麻豆| 日韩成人一级大片| 91精品国产综合久久久久久| 美日韩黄色大片| 久久免费看少妇高潮| 国产精品亚洲一区二区三区在线| 国产欧美视频一区二区三区| eeuss鲁片一区二区三区在线观看| 国产精品免费av| 91视视频在线观看入口直接观看www | 色一区在线观看| 亚洲午夜电影网| 8x8x8国产精品| 久久精品国产亚洲高清剧情介绍 | 日本午夜精品视频在线观看| 欧美电影免费观看完整版| 久久99久久99小草精品免视看| 国产欧美精品一区| 色女孩综合影院| 午夜欧美2019年伦理| 日韩欧美在线观看一区二区三区| 久久激五月天综合精品| 国产精品私房写真福利视频| 色噜噜狠狠一区二区三区果冻| 日韩精品色哟哟| 久久久久久久久久久黄色| 91亚洲精华国产精华精华液| 亚洲不卡av一区二区三区| 日韩免费观看高清完整版| 成人av集中营| 午夜激情一区二区| 久久久久久免费| 色悠悠久久综合| 久久精品国产精品亚洲红杏| 国产精品久久看| 91麻豆精品国产自产在线观看一区| 久久国产剧场电影| 亚洲乱码国产乱码精品精的特点| 欧美精品免费视频| 成人综合在线观看| 丝袜亚洲精品中文字幕一区| 国产日韩精品视频一区| 欧美日韩一区久久| 国产成人精品三级| 午夜精品一区二区三区电影天堂| 久久久亚洲高清| 在线成人免费视频| 成人app在线观看| 蜜臀av一区二区在线免费观看| 国产精品视频在线看| 日韩一区二区三区视频在线观看| www.亚洲激情.com| 奇米精品一区二区三区四区| 日韩一区日韩二区| 久久婷婷综合激情| 欧美日韩国产一二三| 99久久精品久久久久久清纯| 国产一区二区毛片| 图片区小说区区亚洲影院| 中文字幕色av一区二区三区| 亚洲精品一区二区三区99|