u32 diff_sec(long long start,long long end) { u64 diff; diff = diff_ticks(start,end); return ticks_to_secs(diff); }
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; }
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; }
/* * 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); }
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; }
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); }
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; }
u32 Timer::GetTimerSeconds() { return ticks_to_secs(m_Timer - Util::timer_gettime()); }