<div>hi,I port a usb driver form freebsd for 4G dongle, it work ,but I cannot use gethostbyname ,I add some code for debug,find in freebsd/lib/libc/net/gethostnamadr.c line 581  _nsdispatch  return failure, in function _nsdispatch ,</div><div><br></div><div><div>if (isthreaded) {</div><div><span class="Apple-tab-span" style="white-space:pre">         </span>result = _pthread_rwlock_rdlock(&nss_lock);</div><div><span class="Apple-tab-span" style="white-space:pre">              </span>if (result != 0) {</div><div><span class="Apple-tab-span" style="white-space:pre">                   </span>printf("nsdispatch pthread rd lock failure %d!\n",result);</div><div><span class="Apple-tab-span" style="white-space:pre">                 </span>result = NS_UNAVAIL;</div><div><span class="Apple-tab-span" style="white-space:pre">                 </span>goto fin;</div><div><span class="Apple-tab-span" style="white-space:pre">            </span>}</div><div><span class="Apple-tab-span" style="white-space:pre">    </span>}</div></div><div>_pthread_rwlock_rdlock  return invalid, can you give me some advise? how can i let gethostbyname work?</div><div>below is shell print for application information</div><div><br></div><div><br></div><div><br></div><div><div>tftp 0x81000000 rtems-app.img;bootm;</div><div>Auto negotitation failed</div><div>link up on port 0, speed 100, full duplex</div><div>Using cpsw device</div><div>TFTP from server 192.168.1.2; our IP address is 192.168.1.25</div><div>Filename 'rtems-app.img'.</div><div>Load address: 0x81000000</div><div>Loading: #################################################################</div><div>         ################################</div><div>done</div><div>Bytes transferred = 1415847 (159aa7 hex)</div><div>## Booting kernel from Legacy Image at 81000000 ...</div><div>   Image Name:   RTEMS</div><div>   Image Type:   ARM RTEMS Kernel Image (gzip compressed)</div><div>   Data Size:    1415783 Bytes = 1.4 MiB</div><div>   Load Address: 80000000</div><div>   Entry Point:  80000000</div><div>   Verifying Checksum ... OK</div><div>   Uncompressing Kernel Image ... OK</div><div>## Transferring control to RTEMS (at address 80000000) ...</div><div><br></div><div>RTEMS AM335X: am335x-card</div><div><br></div><div><br></div><div>RTEMS Kernel Image Booting</div><div><br></div><div><br></div><div>*** RTEMS Info ***</div><div>COPYRIGHT (c) 1989-2008.</div><div>On-Line Applications Research Corporation (OAR).</div><div>rtems-4.10.99.0(ARM/ARMv4/am335x)</div><div><br></div><div><br></div><div> BSP Ticks Per Second = 100</div><div>*** End RTEMS info ***</div><div><br></div><div>fsmount: mounting of "/dev/nand1" to "/mnt/etc" succeeded</div><div>fsmount: mounting of "/dev/nand2" to "/mnt/data" succeeded</div><div>detect card on board,begin initial card ...!</div><div>initial card failure!</div><div>init mmc/sd device failure!</div><div>mmcsd_card_register: Error: SC = 13: Register disk SD Card driver</div><div>no disk register !</div><div>setup filesystem returned with status of 0.</div><div>load bmp 125 files</div><div>open index failure!</div><div>load cfg failure!</div><div>start dmtimer init!</div><div>clkctrl 44e00084 : clksel 44e0050c</div><div>start configure dmtimer 1!</div><div>register dmtimer period callback!</div><div>Starting RTEMS network configuration</div><div>nexus0: <RTEMS Nexus device></div><div>cpsw0: <3-port Switch Ethernet Subsystem> on nexus0</div><div>sc->irq_res[0] = 80b0ed60</div><div>cpsw0: CPSW SS Version 1.12 (0)</div><div>cpsw0: Initial queue size TX=128 RX=384</div><div>cpswp0: <Ethernet Switch Port> on cpsw0</div><div>miibus0: <MII bus> on cpswp0</div><div>atphy0: <Atheros F1 10/100/1000 PHY> PHY 4 on miibus0</div><div>atphy0:  none, 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseSX-FDX, 1000baseT-FDX, 1000baseT-FDX-master, auto</div><div>devctl: +atphy0 at phyno=4 oui=0xc82e model=0x7 rev=0x2 on miibus0</div><div>devctl: +miibus0 at   on cpswp0</div><div>devctl: !system=IFNET subsystem=cpswp0 type=ATTACH</div><div>cpswp0: Ethernet address: -2141651040</div><div>devctl: +cpswp0 at   on cpsw0</div><div>cpswp1: <Ethernet Switch Port> on cpsw0</div><div>miibus1: <MII bus> on cpswp1</div><div>atphy1: <Atheros F1 10/100/1000 PHY> PHY 6 on miibus1</div><div>atphy1:  none, 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseSX-FDX, 1000baseT-FDX, 1000baseT-FDX-master, auto</div><div>devctl: +atphy1 at phyno=6 oui=0xc82e model=0x7 rev=0x2 on miibus1</div><div>devctl: +miibus1 at   on cpswp1</div><div>devctl: !system=IFNET subsystem=cpswp1 type=ATTACH</div><div>cpswp1: Ethernet address: -2141651040</div><div>devctl: +cpswp1 at   on cpsw0</div><div>devctl: +cpsw0 at   on nexus0</div><div>usbss0: <TI AM33xx integrated USB OTG controller> on nexus0</div><div>usbss0: TI AM335X USBSS v0.0.13</div><div>musbotg0: <TI AM33xx integrated USB OTG controller> on usbss0</div><div>usbus0: Dynamic FIFO sizing detected, assuming 16Kbytes of FIFO RAM</div><div>usbus0 on musbotg0</div><div>devctl: +usbus0 at   on musbotg0</div><div>devctl: +musbotg0 at   on usbss0</div><div>musbotg1: <TI AM33xx integrated USB OTG controller> on usbss0</div><div>usbus1: Dynamic FIFO sizing detected, assuming 16Kbytes of FIFO RAM</div><div>usbus1 on musbotg1</div><div>devctl: +usbus1 at   on musbotg1</div><div>devctl: +musbotg1 at   on usbss0</div><div>devctl: +usbss0 at   on nexus0</div><div>devctl: +nexus0 at   on root0</div><div>devctl: !system=IFNET subsystem=lo0 type=ATTACH</div><div>Device: /dev/pty0../dev/pty4 (5)pseudo-terminals registered.</div><div>telnetd started with stacksize = 81920 and priority = 198</div><div>info: ?: ftpd: FTP daemon started (4 sessions max)</div><div>web server start ...</div><div>usbus0: 480Mbps High Speed USB v2.0</div><div>usbus1: 480Mbps High Speed USB v2.0</div><div>webs begin of loop!</div><div><br></div><div>RTEMS Shell on /dev/console. Use 'help' to list commands.</div><div>[/] # uhub0: <Mentor Graphics OTG Root HUB, class 9/0, rev 2.00/1.00, addr 1> on usbus0</div><div>uhub1: <Mentor Graphics OTG Root HUB, class 9/0, rev 2.00/1.00, addr 1> on usbus1</div><div>uhub0: 1 port with 1 removable, self powered</div><div>devctl: +uhub0 at   on usbus0</div><div>uhub1: 1 port with 1 removable, self powered</div><div>devctl: +uhub1 at   on usbus1</div><div>uhub2: <vendor 0x0424 product 0x2514, class 9/0, rev 2.00/b.b3, addr 2> on usbus1</div><div>uhub2: MTT enabled</div><div>uhub2: 4 ports with 4 removable, self powered</div><div>devctl: +uhub2 at bus=1 hubaddr=1 port=1 devaddr=2 interface=0 ugen=? vendor=0x0424 product=0x2514 devclass=0x09 devsubclass=0x00 sernum="" release=0x0bb3 mode=host intclass=0x09 intsubclass=0x00 intprotocol=0x02 on uhub1</div><div>cdce0: <USB-Ecm> on usbus1</div><div>devctl: +cdce0 at bus=2 hubaddr=4 port=1 devaddr=3 interface=0 ugen=? vendor=0x19d2 product=0x0536 devclass=0x02 devsubclass=0x00 sernum="ZTE" release=0x0100 mode=host intclass=0x02 intsubclass=0x06 intprotocol=0x00 on uhub2</div><div>ue0: <USB Ethernet> on cdce0</div><div>devctl: !system=IFNET subsystem=ue0 type=ATTACH</div><div>ue0: Ethernet address: -2134217956</div><div>ubser0: <USB-AT> on usbus1</div><div>AT</div><div>:</div><div>OK</div><div><br></div><div>AT+CIMI</div><div>:</div><div>+CIMI: 460021904851492</div><div><br></div><div>OK</div><div><br></div><div>AT+CMEE=1</div><div>:</div><div>OK</div><div><br></div><div>ATE0</div><div>:</div><div><br></div><div>OK</div><div><br></div><div>AT+CGDCONT=1,"IP","CMNET"</div><div>:</div><div>OK</div><div><br></div><div>AT+CFUN?</div><div>:</div><div>+CFUN: 1</div><div><br></div><div>OK</div><div><br></div><div>AT+CFUN=1</div><div>:</div><div>OK</div><div><br></div><div>AT^SYSCONFIG=2,2,1,3</div><div>:</div><div>OK</div><div><br></div><div>AT+CEREG=1</div><div>:</div><div>OK</div><div><br></div><div>AT+CGACT=1,1</div><div>:</div><div>OK</div><div><br></div><div>+ZGIPDNS: 1,1,"IP","10.129.178.121","0.0.0.0","112.4.1.36","112.4.12.200"</div><div><br></div><div>AT+ZGACT=1,1</div><div>:</div><div>OK</div><div><br></div><div>+ZCONSTAT: 1,1</div><div><br></div><div>devctl: +ubser0 at bus=2 hubaddr=4 port=1 devaddr=3 interface=2 ugen=? vendor=0x19d2 product=0x0536 devclass=0x02 devsubclass=0x00 sernum="ZTE" release=0x0100 mode=host intclass=0xff intsubclass=0xff intprotocol=0xff on uhub2</div><div>devctl: ? at bus=2 hubaddr=4 port=1 devaddr=3 interface=3 ugen=? vendor=0x19d2 product=0x0536 devclass=0x02 devsubclass=0x00 sernum="ZTE" release=0x0100 mode=host intclass=0xff intsubclass=0xff intprotocol=0xff on uhub2</div><div>devctl: ? at bus=2 hubaddr=4 port=1 devaddr=3 interface=4 ugen=? vendor=0x19d2 product=0x0536 devclass=0x02 devsubclass=0x00 sernum="ZTE" release=0x0100 mode=host intclass=0xff intsubclass=0xff intprotocol=0xff on uhub2</div><div>info: dhcpcd: version 6.2.1 starting</div><div>info: dhcpcd: DUID 00:01:00:01:1e:85:d3:69:00:a0:c6:00:00:00</div><div>info: dhcpcd: ue0: IAID c6:00:00:00</div><div>info: dhcpcd: ue0: soliciting an IPv6 router</div><div>info: dhcpcd: ue0: soliciting a DHCP lease</div><div><br></div><div>[/] # </div><div>[/] # </div><div>[/] # </div><div>[/] # info: dhcpcd: ue0: offered 10.129.178.121 from 10.129.179.121</div><div><br></div><div>[/] # </div><div>[/] # </div><div>[/] # </div><div>[/] # info: dhcpcd: ue0: leased 10.129.178.121 for 86400 seconds</div><div>info: dhcpcd: ue0: adding host route to 10.129.178.121 via 127.0.0.1</div><div>info: dhcpcd: ue0: adding route to 10.129.0.0/16</div><div>err: dhcpcd: ue0: ipv4_addroute: File exists</div><div>info: dhcpcd: ue0: adding default route via 10.129.179.121</div><div>info: dhcpcd: ue0: removing default route via 10.129.179.121</div><div><br></div><div>[/] # </div><div>[/] # </div><div>[/] # </div><div>[/] # ping www.baidu.com</div><div>nsdispatch pthread rd lock failure 22!</div></div><div><br></div><div><br></div><div><br></div><div><br></div>