<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic sys$qio IO$_WRITEVBLK with full-duplex card configuration in Operating System - OpenVMS</title>
    <link>https://community.hpe.com/t5/operating-system-openvms/sys-qio-io-writevblk-with-full-duplex-card-configuration/m-p/6974763#M46436</link>
    <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;Someone knows why the following function detecs correctly the cable disconnection for an ethernet card when is configured on half-duplex mode and when is configured on full-duplex mode doesn't detect the disconnection?&lt;/P&gt;&lt;P&gt;Really thanks in advance!&lt;/P&gt;&lt;PRE&gt;void check_hubs(int hub)
{
   unsigned int stat,error_dev;
   float waittime = 0.1;			/* needed time to obtain a qio answer */
   P5_PARAM xmt_param={0xAB,0,0x04,0,0,0};	/* broadcast multicast address */
   char xmt_buffer[1];				/* transmit buffer */

   /* transmits a multicast message */
   _qio_iosb[hub].w_err = 0;
   stat = sys$qio(0,_network_channel[hub].channel,IO$_WRITEVBLK,&amp;amp;_qio_iosb[hub],0,0,&amp;amp;xmt_buffer[0],0,0,0,&amp;amp;xmt_param,0);
   if (stat &amp;amp; 1)
   {
		  /* qio success. wait a time to access to the returned information */
		  lib$wait(&amp;amp;waittime);
		
		  /* checks qio status */
		  if (_qio_iosb[hub].w_err == 0)
		  {
			 /* timeout in write operation */
			 error_dev = TRUE;
		  }
		  else if ($FAIL(_qio_iosb[hub].w_err))
		  {
			 /* network error */
			 error_dev = TRUE;
		  }
		  else
		  {
			 /* success in write operation */
		   error_dev = FALSE;	
		  }
   }
   else
   {
     
	    /* qio error */
      if (_network_channel[hub].critical)
      {
          lib$stop(stat,0,0);
      }
      else if (!_error_in_hub[hub])
      {
           printf("QUIO ERROR CONTROL_DEVFAIL\n");
         lib$signal(CONTROL_DEVFAIL, 1, &amp;amp;_dvc_dsc);
      }
      error_dev = TRUE;
   }
}       &lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Thu, 24 Aug 2017 14:50:52 GMT</pubDate>
    <dc:creator>jordi-koro</dc:creator>
    <dc:date>2017-08-24T14:50:52Z</dc:date>
    <item>
      <title>sys$qio IO$_WRITEVBLK with full-duplex card configuration</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/sys-qio-io-writevblk-with-full-duplex-card-configuration/m-p/6974763#M46436</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;Someone knows why the following function detecs correctly the cable disconnection for an ethernet card when is configured on half-duplex mode and when is configured on full-duplex mode doesn't detect the disconnection?&lt;/P&gt;&lt;P&gt;Really thanks in advance!&lt;/P&gt;&lt;PRE&gt;void check_hubs(int hub)
{
   unsigned int stat,error_dev;
   float waittime = 0.1;			/* needed time to obtain a qio answer */
   P5_PARAM xmt_param={0xAB,0,0x04,0,0,0};	/* broadcast multicast address */
   char xmt_buffer[1];				/* transmit buffer */

   /* transmits a multicast message */
   _qio_iosb[hub].w_err = 0;
   stat = sys$qio(0,_network_channel[hub].channel,IO$_WRITEVBLK,&amp;amp;_qio_iosb[hub],0,0,&amp;amp;xmt_buffer[0],0,0,0,&amp;amp;xmt_param,0);
   if (stat &amp;amp; 1)
   {
		  /* qio success. wait a time to access to the returned information */
		  lib$wait(&amp;amp;waittime);
		
		  /* checks qio status */
		  if (_qio_iosb[hub].w_err == 0)
		  {
			 /* timeout in write operation */
			 error_dev = TRUE;
		  }
		  else if ($FAIL(_qio_iosb[hub].w_err))
		  {
			 /* network error */
			 error_dev = TRUE;
		  }
		  else
		  {
			 /* success in write operation */
		   error_dev = FALSE;	
		  }
   }
   else
   {
     
	    /* qio error */
      if (_network_channel[hub].critical)
      {
          lib$stop(stat,0,0);
      }
      else if (!_error_in_hub[hub])
      {
           printf("QUIO ERROR CONTROL_DEVFAIL\n");
         lib$signal(CONTROL_DEVFAIL, 1, &amp;amp;_dvc_dsc);
      }
      error_dev = TRUE;
   }
}       &lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 24 Aug 2017 14:50:52 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/sys-qio-io-writevblk-with-full-duplex-card-configuration/m-p/6974763#M46436</guid>
      <dc:creator>jordi-koro</dc:creator>
      <dc:date>2017-08-24T14:50:52Z</dc:date>
    </item>
  </channel>
</rss>

