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

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

?? ltmodem.c,v

?? 話帶數據中傳真解調程序
?? C,V
?? 第 1 頁 / 共 4 頁
字號:
  if (!pci_read_block(p, 0, d->config, how_much))    die("Unable to read %d bytes of configuration space.", how_much);  if (how_much < 128 && (d->config[PCI_HEADER_TYPE] & 0x7f) == PCI_HEADER_TYPE_CARDBUS)    {      /* For cardbus bridges, we need to fetch 64 bytes more to get the full standard header... */      if (!pci_read_block(p, 0, d->config+64, 64))	die("Unable to read cardbus bridge extension data.");      how_much = 128;    }  d->config_cnt = how_much;  pci_setup_cache(p, d->config, d->config_cnt);  pci_fill_info(p, PCI_FILL_IDENT | PCI_FILL_IRQ | PCI_FILL_BASES | PCI_FILL_ROM_BASE);  return d;}static voidscan_devices(void){  struct device *d;  struct pci_dev *p;  pci_scan_bus(pacc);  for(p=pacc->devices; p; p=p->next)    if (d = scan_device(p))      {	d->next = first_dev;	first_dev = d;      }}static intcheck_root(void){  static int is_root = -1;  if (is_root < 0)    is_root = !geteuid();  return is_root;}static intconfig_fetch(struct device *d, unsigned int pos, unsigned int len){  if (pos + len < d->config_cnt)    return 1;  if (pacc->method != PCI_ACCESS_DUMP && !check_root())    return 0;  return pci_read_block(d->dev, pos, d->config + pos, len);}/* Config space accesses */static inline byteget_conf_byte(struct device *d, unsigned int pos){  return d->config[pos];}static wordget_conf_word(struct device *d, unsigned int pos){  return d->config[pos] | (d->config[pos+1] << 8);}static u32get_conf_long(struct device *d, unsigned int pos){  return d->config[pos] |    (d->config[pos+1] << 8) |    (d->config[pos+2] << 16) |    (d->config[pos+3] << 24);}/* Sorting */static intcompare_them(const void *A, const void *B){  const struct pci_dev *a = (*(const struct device **)A)->dev;  const struct pci_dev *b = (*(const struct device **)B)->dev;  if (a->bus < b->bus)    return -1;  if (a->bus > b->bus)    return 1;  if (a->dev < b->dev)    return -1;  if (a->dev > b->dev)    return 1;  if (a->func < b->func)    return -1;  if (a->func > b->func)    return 1;  return 0;}static voidsort_them(void){  struct device **index, **h, **last_dev;  int cnt;  struct device *d;  cnt = 0;  for(d=first_dev; d; d=d->next)    cnt++;  h = index = alloca(sizeof(struct device *) * cnt);  for(d=first_dev; d; d=d->next)    *h++ = d;  qsort(index, cnt, sizeof(struct device *), compare_them);  last_dev = &first_dev;  h = index;  while (cnt--)    {      *last_dev = *h;      last_dev = &(*h)->next;      h++;    }  *last_dev = NULL;}/* Normal output */static voidshow_bases(struct device *d, int cnt){  struct pci_dev *p = d->dev;  word cmd = get_conf_word(d, PCI_COMMAND);  int i;  for(i=0; i<cnt; i++)    {      pciaddr_t pos = p->base_addr[i];      u32 flg = get_conf_long(d, PCI_BASE_ADDRESS_0 + 4*i);      if (flg == 0xffffffff)	flg = 0;      if (!pos && !flg) continue;      printf("\tRegion %d: ", i);      if (pos && !flg)			/* Reported by the OS, but not by the device */	{	  printf("[virtual] ");	  flg = pos;	}      if (flg & PCI_BASE_ADDRESS_SPACE_IO)	{	  pciaddr_t a = pos & PCI_BASE_ADDRESS_IO_MASK;	  printf("I/O ports at ");	  if (a) {	    portbase = (unsigned int) a;	    printf(IO_FORMAT, a); 	  }	  else if (flg & PCI_BASE_ADDRESS_IO_MASK)	    printf("<ignored>");	  else	    printf("<unassigned>");	  if (!(cmd & PCI_COMMAND_IO))	    printf(" [disabled]");	}      else	{	  int t = flg & PCI_BASE_ADDRESS_MEM_TYPE_MASK;	  pciaddr_t a = pos & PCI_ADDR_MEM_MASK;	  int done = 0;	  u32 z = 0;	  printf("Memory at ");	  if (t == PCI_BASE_ADDRESS_MEM_TYPE_64)	    {	      if (i >= cnt - 1)		{		  printf("<invalid-64bit-slot>\n");		  done = 1;		}	      else		{		  i++;		  z = get_conf_long(d, PCI_BASE_ADDRESS_0 + 4*i);		  if (buscentric_view)		    {		      if (a || z)			printf("%08x" ADDR_FORMAT, z, a);		      else			printf("<unassigned>");		      done = 1;		    }		}	    }	  if (!done)	    {	      if (a)		printf(ADDR_FORMAT, a);	      else		printf(((flg & PCI_BASE_ADDRESS_MEM_MASK) || z) ? "<ignored>" : "<unassigned>");	    }	  printf(" (%s, %sprefetchable)",		 (t == PCI_BASE_ADDRESS_MEM_TYPE_32) ? "32-bit" :		 (t == PCI_BASE_ADDRESS_MEM_TYPE_64) ? "64-bit" :		 (t == PCI_BASE_ADDRESS_MEM_TYPE_1M) ? "low-1M" : "type 3",		 (flg & PCI_BASE_ADDRESS_MEM_PREFETCH) ? "" : "non-");	  if (!(cmd & PCI_COMMAND_MEMORY))	    printf(" [disabled]");	}      putchar('\n');    }}static voidshow_htype0(struct device *d){  unsigned long rom = d->dev->rom_base_addr;  show_bases(d, htype0_cnt);  if (rom & 1)    printf("\tExpansion ROM at %08lx%s\n", rom & PCI_ROM_ADDRESS_MASK,	   (rom & PCI_ROM_ADDRESS_ENABLE) ? "" : " [disabled]");  if (get_conf_word(d, PCI_STATUS) & PCI_STATUS_CAP_LIST)    {      int where = get_conf_byte(d, PCI_CAPABILITY_LIST);      while (where)	{	  int id, next, cap;	  printf("\tCapabilities: ");	  if (!config_fetch(d, where, 4))	    {	      puts("<available only to root>");	      break;	    }	  id = get_conf_byte(d, where + PCI_CAP_LIST_ID);	  next = get_conf_byte(d, where + PCI_CAP_LIST_NEXT);	  cap = get_conf_word(d, where + PCI_CAP_FLAGS);	  printf("[%02x] ", where);	  if (id == 0xff)	    {	      printf("<chain broken>\n");	      break;	    }	  switch (id)	    {	    case PCI_CAP_ID_PM:	       printf("Power Management version %d\n", cap & PCI_PM_CAP_VER_MASK);	      break;	    case PCI_CAP_ID_AGP:	      break;	    default:	      printf("#%02x [%04x]", id, cap);	    }	  where = next;	}    }}static struct bus *find_bus(struct bridge *b, unsigned int n){  struct bus *bus;  for(bus=b->first_bus; bus; bus=bus->sibling)    if (bus->number == n)      break;  return bus;}static struct bus *new_bus(struct bridge *b, unsigned int n){  struct bus *bus = xmalloc(sizeof(struct bus));  bus = xmalloc(sizeof(struct bus));  bus->number = n;  bus->sibling = b->first_bus;  bus->first_dev = NULL;  bus->last_dev = &bus->first_dev;  b->first_bus = bus;  return bus;}static voidinsert_dev(struct device *d, struct bridge *b){  struct pci_dev *p = d->dev;  struct bus *bus;  if (! (bus = find_bus(b, p->bus)))    {      struct bridge *c;      for(c=b->child; c; c=c->next)	if (c->secondary <= p->bus && p->bus <= c->subordinate)	  return insert_dev(d, c);      bus = new_bus(b, p->bus);    }  /* Simple insertion at the end _does_ guarantee the correct order as the   * original device list was sorted by (bus, devfn) lexicographically   * and all devices on the new list have the same bus number.   */  *bus->last_dev = d;  bus->last_dev = &d->next;  d->next = NULL;}/* Bus mapping mode */static voiddo_map_bridges(int bus, int min, int max){  struct bus_info *bi = bus_info + bus;  struct bus_bridge *b;  bi->guestbook = 1;  for(b=bi->bridges; b; b=b->next)    {      if (bus_info[b->first].guestbook)	b->bug = 1;      else if (b->first < min || b->last > max)	b->bug = 2;      else	{	  bus_info[b->first].via = b;	  do_map_bridges(b->first, b->first, b->last);	}    }}/*  Show hexadecimal dump of first 64 bytes of the PCI configuration space    (the standard header). Useful for debugging of drivers and lspci itself. */static voidshow_hex_dump(struct device *d){  unsigned int i;  printf("Command reg: ");   printf(" %02x", get_conf_byte(d, 5));  printf(" %02x", get_conf_byte(d, 4));  putchar('\t');  printf("Status reg: ");   printf(" %02x", get_conf_byte(d, 7));  printf(" %02x", get_conf_byte(d, 6));  putchar('\n');    /* Note! the byte order is lsb msb */    printf("Base address regs: ");   for(i=0x10; i<0x24; i++){	printf(" %02x", get_conf_byte(d, i));  }  putchar('\n');}// Lucent modem specific stuff.  void dp_onhook_cmd(void){#if 0  printf( "Should call cell_onhook()\n" );  dp_modem_command(0x13, 0, 0);  x_output(   7);  x_output(0x0e);  x_output(0x14);  x_output(0x10);  if (byte_59ED2 == 0) {    x_output(0x19);    x_output(   3);    x_output(0x12);  } else byte_59ED2 = 0x0a;  dp_write_dsp_ram(0xf20, 0x42f8);  dp_regwrite(0xd8, 0xff);  dp_regwrite(0xb7, 0xff);  /* dp_tad_downloaded = dp_fax_downloaded = 0; */  if (byte_59ED4 == 1) {    byte_59ED4 = 0;    byte_59EB2 = 0;  }  v8bis_app_reset();  dp_init_local_phone_state();  V34Mode = 0;  dp_update_diagnostics();  if (x_status != 0)    goto l2D1;  x_status = 1;  ll_save_diagnostics(); l2D1:  if (byte_59ED2 != 0)    goto l2E7;  if (x_modem_mode == 3)    goto l2E7;  dp_run_rom(); l2E7:  dp_first_call = 0;#endif}voidgo_onhook(void){  dp_onhook_cmd();}void io_init(void){   struct pci_dev *p = modem_dev->dev;   bool bMarsChipset;   /* Only cards with device ID 044? are mars chipset based. */   bMarsChipset = ((p->device_id & 0xfff0) == 0x0440);	     // Set up the port IO.   port_io_init(io_address[1], io_address[2], bMarsChipset);}@1.3log@Added some changes from Pavel Machek <pavel@@ucw.cz>. Added support for port offset.@text@d2 1a2 1 *	$Id: ltmodem.c,v 1.2 1999/07/05 04:04:46 root Exp root $d13 6a18 1#include "portIO.h"d22 1a22 2intmain(int argc, char **argv)d26 3d53 1a53 1  while ((c = getopt(argc, argv, "im" )) != -1) {d59 27d89 4d94 4a97 1      printf( "Usage: ltmodem [-i]\n" );d101 1a101 1 exit:d107 18d162 2a163 4/* Show any found modem. */static voidshow_modem(void)d334 2a335 1            for (j=0; j<io_length[i]; j++)d337 3d443 1a443 1	   printf ("Writing %8.8x to I/O port %x + %x.\n", input, io_address[i], offset);d445 1a445 1       WRITE_PORT_ULONG  ((io_address[i] + offset), input);d450 1a450 1	   printf("Read back value: %8.8x.\n", READ_PORT_ULONG(io_address[i] + offset));d657 4a660 2	  if (a)	    printf(IO_FORMAT, a);d856 66@1.2log@Added monitoring functions to enable user to select I/O or registermonitoring and to set the monitoring interval in milliseconds.@text@d2 1a2 1 *	$Id: ltmodem.c,v 0.3 1999/07/05 03:51:18 root Exp root $d7 1d13 1d20 3a22 5  if (argc == 2 && !strcmp(argv[1], "--version"))    {      puts("ltmodem version " LTMODEM_VERSION);      return 0;    }d38 7a44 3  if ( find_modem() ) {	/* Display summary information. */	show_modem();d46 13a58 10    /* Display main menu and accept commands. */	main_menu();  }  else {	printf ("***************************************************\n");	printf ("Sorry, no Lucent PCI modem that I know of was found.\n");	printf ("If you have one fitted then please mail me with the details\n");	printf ("at: richard@@close.u-net.com please include an output from\n");	printf ("cat /proc/pci and as much info. on the card as possible.\n");	printf ("***************************************************\n");d60 1d94 1d192 2a193 4	  printf ("             Monitoring menu\n");	  printf (" M - monitor, T - set type, I - set interval Q - Quit\n");	  printf ("***************************************************\n");	  printf ("Enter command: ");a200 3	case 'T':	  monitor_type = set_monitoring_type();	  break;d202 12d232 2a233 3  // Choose monitoring type:  printf ("***************************************************\n");  printf ("Set interval of scan for monitoring activity (in mS): \n");a247 28int set_monitoring_type(void){  // Value input by user.  int input = 0;  char trash;   // Choose monitoring type:  printf ("***************************************************\n");  printf ("Set type of monitoring activity: 1 - Reg's 2 - I/O\n");  scanf ("%d%c", &input, &trash);  // Display monitoring setting.  switch (input) {  case 1: {     printf ("Monitoring registers.\n"); 	 return 1;     }  case 2: {     printf ("Monitoring I/O ports.\n");      return 2;     }  default: {     printf ("Illegal choice, defaulting to registers.\n");     // Default to registers.	 return 1;     }   }}d252 1a252 1  int i;d257 1a257 1    if (monitor_type == 1) {       d264 1a264 1    else {d272 1a272 1         printf("I/O ports. ");d274 6a279 6    	 for (i=1;i<=io_cnt;i++) {		    printf("%x: %8.8x ", io_address[i], inl(io_address[i]));		    }         putchar('\n');		 // Free the ports.		 iopl(0);d281 2d284 1d305 1a305 5	  printf ("***************************************************\n");	  printf ("Modem write menu\n");	  printf ("Commands: C - control reg, I - I/O, Q - quit\n");	  printf ("***************************************************\n");	  printf ("Enter command: ");a329 1	printf ("***************************************************\n");d346 1a346 2   printf ("***************************************************\n");   printf ("Set control register. Enter value in hex: ");a347 1   printf ("\n***************************************************\n");d356 1a356 1   int i;d358 2a359 1   int input = 0;a362 1   printf ("***************************************************\n");d368 2a369 1	 printf ("Choose a port to write to: ");d371 1d373 1a373 1	   /* Allow user to write to selected I/O port. */d375 1a375 2	   printf ("***************************************************\n");	   printf ("Write to I/O port %x. Enter value in hex: ", io_address[i]);d377 14a390 17	   printf ("\n***************************************************\n");	   /* Get access to all of I/O space. */	   if (iopl(3) < 0) {		 perror("ltmodem: iopl()");		 fprintf(stderr, "This program must be run as root.\n");	   }	   else {		 printf ("Writing %8.8x to I/O port %x.\n", input, io_address[i]);		 /* Write value to port. */		 outl(input, io_address[i]);		 /* Delay 10ms. */		 usleep(10000);		 /* Read back the port. */		 printf("Read back value: %8.8x.\n", inl(io_address[i]));		 /* Free the ports. */		 iopl(0);	   }d406 1a406 5	  printf ("***************************************************\n");	  printf ("                    Main Menu\n");	  printf ("Commands: M - monitor, W - write, Q - quit\n");	  printf ("***************************************************\n");	  printf ("Enter command: ");@1.1log@Initial revision@text@d2 1a2 1 *	$Id: ltmodem.c,v 0.0.3 1999/07/04 22:50:44 rjmc Exp $d94 1a94 1/* Shown any found modem. */d256 1a256 1     // Default to regisiters.@

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线观看精品一区| 欧美极品另类videosde| 久久蜜桃av一区二区天堂 | 亚洲国产精品久久久男人的天堂| 日韩av电影一区| aaa亚洲精品| 精品精品国产高清a毛片牛牛| 亚洲天堂福利av| 国产精品一区久久久久| 欧美美女激情18p| 亚洲欧美另类综合偷拍| 国产精品99久| 日韩免费高清视频| 天天综合色天天| 日本高清不卡一区| 国产精品久久久久久久久免费桃花| 久久精品99国产精品| 宅男噜噜噜66一区二区66| 亚洲男人的天堂在线aⅴ视频| 国产v综合v亚洲欧| 2021久久国产精品不只是精品| 丝袜美腿亚洲色图| 欧美日韩日日骚| 亚洲午夜羞羞片| 91成人免费在线视频| 国产精品视频看| 大桥未久av一区二区三区中文| 欧美videos中文字幕| 久久精品国产99国产| 在线综合+亚洲+欧美中文字幕| 天天亚洲美女在线视频| 欧美三级视频在线| 亚洲成av人片在线| 欧美精品丝袜久久久中文字幕| 亚洲成人免费影院| 欧美系列在线观看| 日本欧美大码aⅴ在线播放| 欧美三级视频在线播放| 视频一区国产视频| 欧美videossexotv100| 国产精品影视网| 国产精品日韩成人| 91丨porny丨在线| 亚洲欧美经典视频| 欧美日韩国产片| 免费在线观看精品| 精品国产免费一区二区三区香蕉| 国产一区二区三区四区五区美女| 精品国产99国产精品| 岛国精品在线播放| 一区二区三区日韩| 欧美精品777| 精品无人码麻豆乱码1区2区| 国产午夜精品久久久久久久| 成人sese在线| 日韩精品1区2区3区| 久久这里只有精品视频网| 成人黄色在线网站| 亚洲动漫第一页| 久久久夜色精品亚洲| av中文字幕不卡| 婷婷丁香久久五月婷婷| 欧美精品一区男女天堂| 99re亚洲国产精品| 日本不卡视频一二三区| 国产人成亚洲第一网站在线播放| 色综合天天综合在线视频| 日韩不卡免费视频| 国产精品久久久久久亚洲伦| 欧美性猛片aaaaaaa做受| 久久精品国产99国产| 亚洲欧美激情插| 精品少妇一区二区三区日产乱码 | 中文成人综合网| 精品视频在线看| 国产成人在线网站| 亚洲免费看黄网站| 久久久欧美精品sm网站| 欧美怡红院视频| 成人午夜精品在线| 免费日本视频一区| 一区二区日韩电影| 国产清纯美女被跳蛋高潮一区二区久久w| 91精品1区2区| 国产盗摄一区二区三区| 三级在线观看一区二区 | 亚洲第一av色| 中文字幕巨乱亚洲| 日韩精品中午字幕| 欧美三级一区二区| 色老头久久综合| 成人美女视频在线观看18| 麻豆国产欧美日韩综合精品二区| 一区二区三区免费| 一区视频在线播放| 国产午夜精品在线观看| 精品成人一区二区三区| 欧美日韩高清一区二区不卡| av在线不卡免费看| 丁香五精品蜜臀久久久久99网站| 久久精品72免费观看| 免费看欧美美女黄的网站| 亚洲电影第三页| 亚洲另类色综合网站| 国产精品久久夜| 国产欧美精品一区二区色综合朱莉| 日韩欧美国产高清| 91精品国产丝袜白色高跟鞋| 欧美色偷偷大香| 欧美最新大片在线看 | 欧美大片在线观看一区| 欧美剧在线免费观看网站 | 91丨porny丨蝌蚪视频| 粗大黑人巨茎大战欧美成人| 国产一区在线看| 国产一区二区三区电影在线观看| 久久成人免费网| 国产一区二区成人久久免费影院 | 天天操天天色综合| 亚洲3atv精品一区二区三区| 亚洲不卡av一区二区三区| 婷婷激情综合网| 青娱乐精品在线视频| 麻豆精品国产91久久久久久| 激情综合五月天| 国产成人av电影| 91在线视频网址| 欧美日韩在线一区二区| 欧美一区二区精品| 久久精品日产第一区二区三区高清版| 国产亚洲一区二区在线观看| 国产精品女人毛片| 亚洲精品国产一区二区三区四区在线| 亚洲综合免费观看高清在线观看| 天天av天天翘天天综合网| 麻豆精品一区二区av白丝在线| 国产一区二区三区免费看 | 成人伦理片在线| 91久久线看在观草草青青| 欧美日韩精品欧美日韩精品| 精品国产乱码久久久久久夜甘婷婷 | 日韩av电影天堂| 国产麻豆9l精品三级站| 99精品视频一区二区| 欧美日韩激情一区二区三区| 欧美大度的电影原声| 国产精品免费看片| 午夜欧美大尺度福利影院在线看 | 三级不卡在线观看| 国产精品白丝jk黑袜喷水| 91丨九色丨蝌蚪丨老版| 欧美一区二区网站| 国产精品美女久久久久久久网站| 一区二区三区国产精华| 精品一区二区三区不卡| 99re6这里只有精品视频在线观看| 欧美日韩国产另类一区| 久久精品一区二区三区四区| 亚洲最新在线观看| 国产精品一区二区久久不卡| 在线一区二区三区四区五区| 337p粉嫩大胆噜噜噜噜噜91av| 亚洲欧美视频一区| 国产精品一区二区三区99| 欧美性感一区二区三区| 国产精品无人区| 美女在线一区二区| 在线免费观看日本一区| 国产欧美日韩麻豆91| 蜜臀久久久99精品久久久久久| 一本色道久久综合亚洲91| 26uuuu精品一区二区| 午夜国产精品一区| 一本到不卡免费一区二区| 国产拍欧美日韩视频二区| 日产国产高清一区二区三区| 色拍拍在线精品视频8848| 国产拍揄自揄精品视频麻豆| 久久精品国产77777蜜臀| 欧美日韩电影一区| 亚洲综合在线第一页| aa级大片欧美| 国产精品国产三级国产普通话三级| 麻豆91免费看| 日韩一卡二卡三卡国产欧美| 亚洲mv大片欧洲mv大片精品| 91国偷自产一区二区使用方法| 国产精品污网站| 国产成人鲁色资源国产91色综| 欧美成人女星排名| 乱一区二区av| 日韩三级精品电影久久久| 蜜桃一区二区三区在线观看| 欧美人妖巨大在线| 亚洲成人av中文| 欧美日韩精品三区| 日本不卡高清视频| 精品国产免费一区二区三区四区| 久久国产尿小便嘘嘘| 欧美sm美女调教|