Esempio n. 1
0
u32 diff_sec(long long start,long long end)
{
	u64 diff;

	diff = diff_ticks(start,end);
	return ticks_to_secs(diff);
}
Esempio n. 2
0
static s32 tcp_connect(char *host, const u16 port)
{
	struct hostent *hp;
	struct sockaddr_in sa;
	struct in_addr val;
	s32 s, res;
	u64 t1;

	s = tcp_socket();
	if (s < 0)
		return s;

	memset(&sa, 0, sizeof(struct sockaddr_in));
	sa.sin_family= PF_INET;
	sa.sin_len = sizeof(struct sockaddr_in);
	sa.sin_port= htons(port);

	if(strlen(host) < 16 && inet_aton(host, &val))
	{
		sa.sin_addr.s_addr = val.s_addr;
	}
	else
	{
		hp = net_gethostbyname (host);
		if (!hp || !(hp->h_addrtype == PF_INET))
			return errno;

		memcpy((char *) &sa.sin_addr, hp->h_addr_list[0], hp->h_length);
	}

	t1=ticks_to_secs(gettime());
	do 
	{
		res = net_connect(s,(struct sockaddr*) &sa, sizeof (sa));
		if(ticks_to_secs(gettime())-t1 > TCP_CONNECT_TIMEOUT*1000) break; 
		usleep(500);
	}while(res != -EISCONN);
	if(res != -EISCONN)
	{		
		net_close(s);
		return -1;
	}

	
	return s;
}
Esempio n. 3
0
s32 USBStorage_Write(usbstorage_handle *dev, u8 lun, u32 sector, u16 n_sectors, const u8 *buffer)
{
	u8 status = 0;
	s32 retval;
	u8 cmd[] = {
		SCSI_WRITE_10,
		lun << 5,
		sector >> 24,
		sector >> 16,
		sector >> 8,
		sector,
		0,
		n_sectors >> 8,
		n_sectors,
		0
	};

	if(lun >= dev->max_lun || dev->sector_size[lun] == 0)
		return IPC_EINVAL;

	// more than 60s since last use - make sure drive is awake
	if(ticks_to_secs(gettime() - usb_last_used) > 60)
	{
		usbtimeout = 10;

		if(method==0)
		{
		
			USB_ResumeDevice(dev->usb_fd);
		
			if(dev->bInterfaceSubClass == MASS_STORAGE_SCSI_COMMANDS)
			{
				retval = __usbstorage_clearerrors(dev, lun);

				if (retval < 0)
					return retval;
				retval = USBStorage_StartStop(dev, lun, 0, 1, 0);
			
				if (retval < 0)
					return retval;
			}		
		}
		else if(method==2)
		{
			__usbstorage_clearerrors(dev, lun);
		}
	}

	retval = __cycle(dev, lun, (u8 *)buffer, n_sectors * dev->sector_size[lun], cmd, sizeof(cmd), 1, &status, NULL);
	if(retval > 0 && status != 0)
		retval = USBSTORAGE_ESTATUS;

	usb_last_used = gettime();
	usbtimeout = USBSTORAGE_TIMEOUT;

	return retval;
}
Esempio n. 4
0
/*
 * Initiate the CAC timer.  The driver is responsible
 * for setting up the hardware to scan for radar on the
 * channnel, we just handle timing things out.
 */
void
ieee80211_dfs_cac_start(struct ieee80211vap *vap)
{
	struct ieee80211com *ic = vap->iv_ic;
	struct ieee80211_dfs_state *dfs = &ic->ic_dfs;

	callout_reset(&dfs->cac_timer, CAC_TIMEOUT, cac_timeout_callout, vap);
	if_printf(vap->iv_ifp, "start %d second CAC timer on channel %u (%u MHz)\n",
	    ticks_to_secs(CAC_TIMEOUT),
	    ic->ic_curchan->ic_ieee, ic->ic_curchan->ic_freq);
	ieee80211_notify_cac(ic, ic->ic_curchan, IEEE80211_NOTIFY_CAC_START);
}
Esempio n. 5
0
s32 USBStorageOGC_Write(usbstorage_handle *dev, u8 lun, u32 sector, u16 n_sectors, const u8 *buffer)
{
	u8 status = 0;
	s32 retval;
	u8 cmd[] = {
		SCSI_WRITE_10,
		lun << 5,
		sector >> 24,
		sector >> 16,
		sector >> 8,
		sector,
		0,
		n_sectors >> 8,
		n_sectors,
		0
	};

	if(lun >= dev->max_lun || dev->sector_size[lun] == 0)
		return IPC_EINVAL;

	// more than 60s since last use - make sure drive is awake
	if(ticks_to_secs(gettime() - usb_last_used) > 60)
	{
		usbtimeout = 10;
		USBStorageOGC_MountLUN(dev, lun);
	}

	retval = __cycle(dev, lun, (u8 *)buffer, n_sectors * dev->sector_size[lun], cmd, sizeof(cmd), 1, &status, NULL);
	if(retval > 0 && status != 0)
		retval = USBSTORAGE_ESTATUS;

	usb_last_used = gettime();
	usbtimeout = USBSTORAGE_TIMEOUT;

	return retval;
}
Esempio n. 6
0
unsigned ping_count_to_mm(timer_prescaler_t prescaler, unsigned long ping_count)
{
	double seconds = ticks_to_secs(ping_count, prescaler, F_CPU) - 0.00075; // ping sensor delay is 750 us
	return (seconds * 343000 / 2);
}
Esempio n. 7
0
s32 USBStorage_Read(usbstorage_handle *dev, u8 lun, u32 sector, u16 n_sectors, u8 *buffer)
{
	u8 status = 0;
	s32 retval;
	u8 cmd[] = {
		SCSI_READ_10,
		lun << 5,
		sector >> 24,
		sector >> 16,
		sector >>  8,
		sector,
		0,
		n_sectors >> 8,
		n_sectors,
		0
	};

	usb_log("USBStorage_Read sector: %i num: %i\n",sector,n_sectors);
	if(lun >= dev->max_lun || dev->sector_size[lun] == 0)
		return IPC_EINVAL;

	// more than 60s since last use - make sure drive is awake
	if(ticks_to_secs(gettime() - usb_last_used) > 60)
	{
		usbtimeout = 10;
		usb_log("usbtimeout = 10\n");
		if(method==0)
		{
			retval = USB_ResumeDevice(dev->usb_fd);
			usb_log("USB_ResumeDevice ret: %i\n",retval);

			if(dev->bInterfaceSubClass == MASS_STORAGE_SCSI_COMMANDS)
			{
				retval = __usbstorage_clearerrors(dev, lun);
				usb_log("__usbstorage_clearerrors ret: %i\n",retval);

				if (retval < 0)
					return retval;

				retval = USBStorage_StartStop(dev, lun, 0, 1, 0);

				usb_log("USBStorage_StartStop ret: %i\n",retval);

				if (retval < 0)
					return retval;
			}
		}
		else if(method==2)
		{
			retval = __usbstorage_clearerrors(dev, lun);
			usb_log("__usbstorage_clearerrors ret: %i\n",retval);
		}
		else if(method==3)
		{
			retval = __usbstorage_clearerrors(dev, lun);
			usb_log("__usbstorage_clearerrors ret: %i\n",retval);
			retval = USBStorage_StartStop(dev, lun, 0, 1, 0);
			usb_log("USBStorage_StartStop ret: %i\n",retval);
			usleep(100);
		}
		
	}

	retval = __cycle(dev, lun, buffer, n_sectors * dev->sector_size[lun], cmd, sizeof(cmd), 0, &status, NULL);
	usb_log("USBStorage_Read __cycle ret: %i  status: %i\n",retval,status);
	if(retval > 0 && status != 0)
		retval = USBSTORAGE_ESTATUS;

	usb_last_used = gettime();
	usbtimeout = USBSTORAGE_TIMEOUT;
	usb_log("usbtimeout = %i\n",usbtimeout);

	return retval;
}
Esempio n. 8
0
u32 Timer::GetTimerSeconds() 
{ 
	return ticks_to_secs(m_Timer - Util::timer_gettime());
}