这篇教程C++ timespec_to_ktime函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中timespec_to_ktime函数的典型用法代码示例。如果您正苦于以下问题:C++ timespec_to_ktime函数的具体用法?C++ timespec_to_ktime怎么用?C++ timespec_to_ktime使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了timespec_to_ktime函数的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: hrtimer_nanosleeplong hrtimer_nanosleep(struct timespec *rqtp, struct timespec __user *rmtp, const enum hrtimer_mode mode, const clockid_t clockid){ struct restart_block *restart; struct hrtimer_sleeper t; int ret = 0; unsigned long slack; slack = current->timer_slack_ns; if (rt_task(current)) slack = 0; hrtimer_init_on_stack(&t.timer, clockid, mode); hrtimer_set_expires_range_ns(&t.timer, timespec_to_ktime(*rqtp), slack); if (do_nanosleep(&t, mode)) goto out; /* Absolute timers do not update the rmtp value and restart: */ if (mode == HRTIMER_MODE_ABS) { ret = -ERESTARTNOHAND; goto out; } if (rmtp) { ret = update_rmtp(&t.timer, rmtp); if (ret <= 0) goto out; } restart = ¤t_thread_info()->restart_block; restart->fn = hrtimer_nanosleep_restart; restart->nanosleep.index = t.timer.base->index; restart->nanosleep.rmtp = rmtp; restart->nanosleep.expires = hrtimer_get_expires_tv64(&t.timer); ret = -ERESTART_RESTARTBLOCK;out: destroy_hrtimer_on_stack(&t.timer); return ret;}
开发者ID:kizukukoto,项目名称:WDN900_GPL,代码行数:40,
示例2: alarm_setstatic void alarm_set(enum android_alarm_type alarm_type, struct timespec *ts){ uint32_t alarm_type_mask = 1U << alarm_type; unsigned long flags; alarm_dbg(INFO, "alarm %d set %ld.%09ld/n", alarm_type, ts->tv_sec, ts->tv_nsec); if (alarm_type == ANDROID_ALARM_POWER_ON) { alarm_set_power_on(*ts, false); return; } if (alarm_type == ANDROID_ALARM_POWER_ON_LOGO) { alarm_set_power_on(*ts, true); return; } spin_lock_irqsave(&alarm_slock, flags); alarm_enabled |= alarm_type_mask; devalarm_start(&alarms[alarm_type], timespec_to_ktime(*ts)); spin_unlock_irqrestore(&alarm_slock, flags);}
开发者ID:AudioGod,项目名称:MediaTek-HelioX10-Kernel,代码行数:22,
示例3: alarm_set_alarmint alarm_set_alarm(char* alarm_data){ struct rtc_wkalrm alm; int ret; char buf_ptr[BOOTALM_BIT_TOTAL+1]; struct rtc_time rtc_tm; unsigned long rtc_sec; unsigned long rtc_alarm_time; struct timespec rtc_delta; struct timespec wall_time; ktime_t wall_ktm; struct rtc_time wall_tm; struct rtc_device *rtc_dev = alarmtimer_get_rtcdev(); if (!rtc_dev) { pr_err("%s: no RTC, time will be lost on reboot/n", __func__); return -ENXIO; } strlcpy(buf_ptr, alarm_data, BOOTALM_BIT_TOTAL+1); alm.time.tm_sec = 0; alm.time.tm_min = (buf_ptr[BOOTALM_BIT_MIN] - '0') * 10 + (buf_ptr[BOOTALM_BIT_MIN+1] - '0'); alm.time.tm_hour = (buf_ptr[BOOTALM_BIT_HOUR] - '0') * 10 + (buf_ptr[BOOTALM_BIT_HOUR+1] - '0'); alm.time.tm_mday = (buf_ptr[BOOTALM_BIT_DAY] - '0') * 10 + (buf_ptr[BOOTALM_BIT_DAY+1] - '0'); alm.time.tm_mon = (buf_ptr[BOOTALM_BIT_MONTH] - '0') * 10 + (buf_ptr[BOOTALM_BIT_MONTH+1] - '0'); alm.time.tm_year = (buf_ptr[BOOTALM_BIT_YEAR] - '0') * 1000 + (buf_ptr[BOOTALM_BIT_YEAR+1] - '0') * 100 + (buf_ptr[BOOTALM_BIT_YEAR+2] - '0') * 10 + (buf_ptr[BOOTALM_BIT_YEAR+3] - '0'); alm.enabled = (*buf_ptr == '1'); pr_info("[SAPA] %s : %s => tm(%d %04d-%02d-%02d %02d:%02d:%02d)/n", __func__, buf_ptr, alm.enabled, alm.time.tm_year, alm.time.tm_mon, alm.time.tm_mday, alm.time.tm_hour, alm.time.tm_min, alm.time.tm_sec); if (alm.enabled) { /* If time daemon is exist */ alm.time.tm_mon -= 1; alm.time.tm_year -= 1900; /* read current time */ rtc_read_time(rtc_dev, &rtc_tm); rtc_tm_to_time(&rtc_tm, &rtc_sec); pr_info("[SAPA] rtc %4d-%02d-%02d %02d:%02d:%02d -> %lu/n", rtc_tm.tm_year, rtc_tm.tm_mon, rtc_tm.tm_mday, rtc_tm.tm_hour, rtc_tm.tm_min, rtc_tm.tm_sec, rtc_sec); /* read kernel time */ getnstimeofday(&wall_time); wall_ktm = timespec_to_ktime(wall_time); wall_tm = rtc_ktime_to_tm(wall_ktm); pr_info("[SAPA] wall %4d-%02d-%02d %02d:%02d:%02d -> %lu/n", wall_tm.tm_year, wall_tm.tm_mon, wall_tm.tm_mday, wall_tm.tm_hour, wall_tm.tm_min, wall_tm.tm_sec, wall_time.tv_sec); /* calculate offset */ set_normalized_timespec(&rtc_delta, wall_time.tv_sec - rtc_sec, wall_time.tv_nsec); /* convert user requested SAPA time to second type */ rtc_tm_to_time(&alm.time, &rtc_alarm_time); /* convert to RTC time with user requested SAPA time and offset */ rtc_alarm_time -= rtc_delta.tv_sec; rtc_time_to_tm(rtc_alarm_time, &alm.time); pr_info("[SAPA] arlm %4d-%02d-%02d %02d:%02d:%02d -> %lu/n", alm.time.tm_year, alm.time.tm_mon, alm.time.tm_mday, alm.time.tm_hour, alm.time.tm_min, alm.time.tm_sec, rtc_alarm_time); } ret = rtc_set_bootalarm(rtc_dev, &alm); if (ret < 0) { pr_err("%s: Failed to set ALARM, time will be lost on reboot/n", __func__); return ret; } return 0;}
开发者ID:StarKissed,项目名称:Note-4-AEL-Kernel,代码行数:87,
示例4: alarm_ioctlstatic long alarm_ioctl(struct file *file, unsigned int cmd, unsigned long arg){ int rv = 0; unsigned long flags; struct timespec new_alarm_time; struct timespec new_rtc_time; struct timespec tmp_time; struct rtc_time new_rtc_tm; struct rtc_device *rtc_dev; struct rtc_wkalrm pwron_alm; enum android_alarm_type alarm_type = ANDROID_ALARM_IOCTL_TO_TYPE(cmd); uint32_t alarm_type_mask = 1U << alarm_type; if (alarm_type >= ANDROID_ALARM_TYPE_COUNT && alarm_type != ANDROID_ALARM_POWER_ON && alarm_type != ANDROID_ALARM_POWER_ON_LOGO) { return -EINVAL; } if (ANDROID_ALARM_BASE_CMD(cmd) != ANDROID_ALARM_GET_TIME(0)) { if ((file->f_flags & O_ACCMODE) == O_RDONLY) return -EPERM; if (file->private_data == NULL && cmd != ANDROID_ALARM_SET_RTC) { spin_lock_irqsave(&alarm_slock, flags); if (alarm_opened) { spin_unlock_irqrestore(&alarm_slock, flags); return -EBUSY; } alarm_opened = 1; file->private_data = (void *)1; spin_unlock_irqrestore(&alarm_slock, flags); } } switch (ANDROID_ALARM_BASE_CMD(cmd)) { case ANDROID_ALARM_CLEAR(0): pr_alarm(IO, "alarm %d clear/n", alarm_type); if (alarm_type == ANDROID_ALARM_POWER_ON || alarm_type == ANDROID_ALARM_POWER_ON_LOGO) { new_alarm_time.tv_sec = 0; alarm_set_power_on(new_alarm_time, false); break; } spin_lock_irqsave(&alarm_slock, flags); pr_alarm(IO, "alarm %d clear/n", alarm_type); devalarm_try_to_cancel(&alarms[alarm_type]); if (alarm_pending) { alarm_pending &= ~alarm_type_mask; if (!alarm_pending && !wait_pending) wake_unlock(&alarm_wake_lock); } alarm_enabled &= ~alarm_type_mask; spin_unlock_irqrestore(&alarm_slock, flags); break; case ANDROID_ALARM_SET_OLD: case ANDROID_ALARM_SET_AND_WAIT_OLD: if (get_user(new_alarm_time.tv_sec, (int __user *)arg)) { rv = -EFAULT; goto err1; } new_alarm_time.tv_nsec = 0; goto from_old_alarm_set; case ANDROID_ALARM_SET_AND_WAIT(0): case ANDROID_ALARM_SET(0): if (copy_from_user(&new_alarm_time, (void __user *)arg, sizeof(new_alarm_time))) { rv = -EFAULT; goto err1; }from_old_alarm_set: pr_alarm(IO, "alarm %d set %ld.%09ld/n", alarm_type, new_alarm_time.tv_sec, new_alarm_time.tv_nsec); if (alarm_type == ANDROID_ALARM_POWER_ON) { alarm_set_power_on(new_alarm_time, false); break; } if (alarm_type == ANDROID_ALARM_POWER_ON_LOGO) { alarm_set_power_on(new_alarm_time, true); break; } spin_lock_irqsave(&alarm_slock, flags); alarm_enabled |= alarm_type_mask; devalarm_start(&alarms[alarm_type], timespec_to_ktime(new_alarm_time)); spin_unlock_irqrestore(&alarm_slock, flags); if (ANDROID_ALARM_BASE_CMD(cmd) != ANDROID_ALARM_SET_AND_WAIT(0) && cmd != ANDROID_ALARM_SET_AND_WAIT_OLD) break; /* fall though */ case ANDROID_ALARM_WAIT: spin_lock_irqsave(&alarm_slock, flags); pr_alarm(IO, "alarm wait/n"); if (!alarm_pending && wait_pending) { wake_unlock(&alarm_wake_lock); wait_pending = 0;//.........这里部分代码省略.........
开发者ID:Banjo0917,项目名称:mt6577_kernel3.4,代码行数:101,
示例5: alarm_ioctlstatic long alarm_ioctl(struct file *file, unsigned int cmd, unsigned long arg){ int rv = 0; unsigned long flags; long long int tmp_ns; struct timespec tmp; struct timespec new_alarm_time; struct timespec new_rtc_time; struct timespec tmp_time; static struct timespec prev_time = { 0, 0 }; enum android_alarm_type alarm_type = ANDROID_ALARM_IOCTL_TO_TYPE(cmd); uint32_t alarm_type_mask = 1U << alarm_type; if (alarm_type >= ANDROID_ALARM_TYPE_COUNT) return -EINVAL; if (is_set_cmd(cmd)) { if ((file->f_flags & O_ACCMODE) == O_RDONLY) { pr_alarm(INFO, "set cmd not permitted in %s cmd=%d type=%d/n" , __FUNCTION__ , ANDROID_ALARM_BASE_CMD(cmd) , alarm_type); return -EPERM; } if (file->private_data == NULL && cmd != ANDROID_ALARM_SET_RTC) { spin_lock_irqsave(&alarm_slock, flags); if (alarm_opened) { spin_unlock_irqrestore(&alarm_slock, flags); return -EBUSY; } alarm_opened = 1; file->private_data = (void *)1; spin_unlock_irqrestore(&alarm_slock, flags); } } switch (ANDROID_ALARM_BASE_CMD(cmd)) { case ANDROID_ALARM_CLEAR(0): spin_lock_irqsave(&alarm_slock, flags); pr_alarm(IO, "alarm %d clear/n", alarm_type); alarm_try_to_cancel(&alarms[alarm_type]); if (alarm_pending) { alarm_pending &= ~alarm_type_mask; if (!alarm_pending && !wait_pending) wake_unlock(&alarm_wake_lock); } alarm_enabled &= ~alarm_type_mask; spin_unlock_irqrestore(&alarm_slock, flags); break; case ANDROID_ALARM_SET_OLD: case ANDROID_ALARM_SET_AND_WAIT_OLD: if (get_user(new_alarm_time.tv_sec, (int __user *)arg)) { rv = -EFAULT; goto err1; } new_alarm_time.tv_nsec = 0; goto from_old_alarm_set; case ANDROID_ALARM_SET_AND_WAIT(0): case ANDROID_ALARM_SET(0): if (copy_from_user(&new_alarm_time, (void __user *)arg, sizeof(new_alarm_time))) { rv = -EFAULT; goto err1; }from_old_alarm_set: spin_lock_irqsave(&alarm_slock, flags); pr_alarm(IO, "alarm %d set %ld.%09ld/n", alarm_type, new_alarm_time.tv_sec, new_alarm_time.tv_nsec); alarm_enabled |= alarm_type_mask; alarm_start_range(&alarms[alarm_type], timespec_to_ktime(new_alarm_time), timespec_to_ktime(new_alarm_time)); spin_unlock_irqrestore(&alarm_slock, flags); if (ANDROID_ALARM_BASE_CMD(cmd) != ANDROID_ALARM_SET_AND_WAIT(0) && cmd != ANDROID_ALARM_SET_AND_WAIT_OLD) break; /* fall though */ case ANDROID_ALARM_WAIT: spin_lock_irqsave(&alarm_slock, flags); pr_alarm(IO, "alarm wait/n"); if (!alarm_pending && wait_pending) { wake_unlock(&alarm_wake_lock); wait_pending = 0; } spin_unlock_irqrestore(&alarm_slock, flags); rv = wait_event_interruptible(alarm_wait_queue, alarm_pending); if (rv) goto err1; spin_lock_irqsave(&alarm_slock, flags); rv = alarm_pending; wait_pending = 1; alarm_pending = 0; spin_unlock_irqrestore(&alarm_slock, flags); break; case ANDROID_ALARM_SET_RTC: if (copy_from_user(&new_rtc_time, (void __user *)arg, sizeof(new_rtc_time))) {//.........这里部分代码省略.........
开发者ID:Astinj,项目名称:Underworld-Sense-Kernel,代码行数:101,
示例6: alarm_ioctlstatic long alarm_ioctl(struct file *file, unsigned int cmd, unsigned long arg){ int rv = 0; unsigned long flags; struct timespec new_alarm_time; struct timespec new_rtc_time; struct timespec tmp_time; struct rtc_time new_rtc_tm; struct rtc_device *rtc_dev; enum android_alarm_type alarm_type = ANDROID_ALARM_IOCTL_TO_TYPE(cmd); uint32_t alarm_type_mask = 1U << alarm_type; if (alarm_type >= ANDROID_ALARM_TYPE_COUNT) return -EINVAL; if (ANDROID_ALARM_BASE_CMD(cmd) != ANDROID_ALARM_GET_TIME(0)) { if ((file->f_flags & O_ACCMODE) == O_RDONLY) return -EPERM; if (file->private_data == NULL && cmd != ANDROID_ALARM_SET_RTC) { spin_lock_irqsave(&alarm_slock, flags); if (alarm_opened) { spin_unlock_irqrestore(&alarm_slock, flags); return -EBUSY; } alarm_opened = 1; file->private_data = (void *)1; spin_unlock_irqrestore(&alarm_slock, flags); } } switch (ANDROID_ALARM_BASE_CMD(cmd)) { case ANDROID_ALARM_CLEAR(0): switch (alarm_type) { case ANDROID_ALARM_POWER_UP: /* disable power up alarm interrupt */ rv = alarm_irq_enable(0); break; case ANDROID_ALARM_RTC_WAKEUP: case ANDROID_ALARM_RTC: case ANDROID_ALARM_ELAPSED_REALTIME_WAKEUP: case ANDROID_ALARM_ELAPSED_REALTIME: case ANDROID_ALARM_SYSTEMTIME: spin_lock_irqsave(&alarm_slock, flags); pr_alarm(IO, "alarm %d clear/n", alarm_type); devalarm_try_to_cancel(&alarms[alarm_type]); if (alarm_pending) { alarm_pending &= ~alarm_type_mask; if (!alarm_pending && !wait_pending) wake_unlock(&alarm_wake_lock); } alarm_enabled &= ~alarm_type_mask; spin_unlock_irqrestore(&alarm_slock, flags); break; default: break; } break; case ANDROID_ALARM_SET_OLD: case ANDROID_ALARM_SET_AND_WAIT_OLD: if (get_user(new_alarm_time.tv_sec, (int __user *)arg)) { rv = -EFAULT; goto err1; } new_alarm_time.tv_nsec = 0; goto from_old_alarm_set;#if defined(CONFIG_RTC_CHN_ALARM_BOOT) case ANDROID_ALARM_SET_ALARM: { char bootalarm_data[14]; if (copy_from_user(bootalarm_data, (void __user *)arg, 14)) { rv = -EFAULT; goto err1; } alarm_set_bootalarm(bootalarm_data); break; }#endif case ANDROID_ALARM_SET_AND_WAIT(0): case ANDROID_ALARM_SET(0): if (copy_from_user(&new_alarm_time, (void __user *)arg, sizeof(new_alarm_time))) { rv = -EFAULT; goto err1; }from_old_alarm_set: spin_lock_irqsave(&alarm_slock, flags); pr_alarm(IO, "alarm %d set %ld.%09ld/n", alarm_type, new_alarm_time.tv_sec, new_alarm_time.tv_nsec); alarm_enabled |= alarm_type_mask; devalarm_start(&alarms[alarm_type], timespec_to_ktime(new_alarm_time)); spin_unlock_irqrestore(&alarm_slock, flags); if (alarm_type == ANDROID_ALARM_POWER_UP) alarm_set_rtc_ring(new_alarm_time); if (ANDROID_ALARM_BASE_CMD(cmd) != ANDROID_ALARM_SET_AND_WAIT(0)//.........这里部分代码省略.........
开发者ID:dflow81,项目名称:android_kernel_samsung_goyawifi,代码行数:101,
示例7: alarm_ioctlstatic long alarm_ioctl(struct file *file, unsigned int cmd, unsigned long arg){ int rv = 0; unsigned long flags; struct timespec new_alarm_time; struct timespec new_rtc_time; struct timespec tmp_time; enum android_alarm_type alarm_type = ANDROID_ALARM_IOCTL_TO_TYPE(cmd); uint32_t alarm_type_mask = 1U << alarm_type;/*[[_SHP_STMC_BSP:[email C++ timespec_to_ns函数代码示例 C++ timespec_sub函数代码示例
|