1c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#ifndef _ASM_GENERIC_CPUTIME_H 2c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define _ASM_GENERIC_CPUTIME_H 3c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru 4c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#include <linux/time.h> 5c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#include <linux/jiffies.h> 6c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru 7c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Querutypedef unsigned long cputime_t; 8c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru 9c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define cputime_zero (0UL) 10c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define cputime_max ((~0UL >> 1) - 1) 11c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define cputime_add(__a, __b) ((__a) + (__b)) 12c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define cputime_sub(__a, __b) ((__a) - (__b)) 13c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define cputime_div(__a, __n) ((__a) / (__n)) 14c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define cputime_halve(__a) ((__a) >> 1) 15c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define cputime_eq(__a, __b) ((__a) == (__b)) 16c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define cputime_gt(__a, __b) ((__a) > (__b)) 17c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define cputime_ge(__a, __b) ((__a) >= (__b)) 18c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define cputime_lt(__a, __b) ((__a) < (__b)) 19c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define cputime_le(__a, __b) ((__a) <= (__b)) 20c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define cputime_to_jiffies(__ct) (__ct) 21c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define jiffies_to_cputime(__hz) (__hz) 22c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru 23c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Querutypedef u64 cputime64_t; 24c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru 25c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define cputime64_zero (0ULL) 26c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define cputime64_add(__a, __b) ((__a) + (__b)) 27c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define cputime64_sub(__a, __b) ((__a) - (__b)) 28c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define cputime64_to_jiffies64(__ct) (__ct) 29c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define jiffies64_to_cputime64(__jif) (__jif) 30c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define cputime_to_cputime64(__ct) ((u64) __ct) 31c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru 32c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru 33c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru/* 34c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru * Convert cputime to milliseconds and back. 35c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru */ 36c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define cputime_to_msecs(__ct) jiffies_to_msecs(__ct) 37c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define msecs_to_cputime(__msecs) msecs_to_jiffies(__msecs) 38c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru 39c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru/* 40c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru * Convert cputime to seconds and back. 41c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru */ 42c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define cputime_to_secs(jif) ((jif) / HZ) 43c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define secs_to_cputime(sec) ((sec) * HZ) 44c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru 45c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru/* 46c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru * Convert cputime to timespec and back. 47c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru */ 48c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define timespec_to_cputime(__val) timespec_to_jiffies(__val) 49c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define cputime_to_timespec(__ct,__val) jiffies_to_timespec(__ct,__val) 50c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru 51c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru/* 52c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru * Convert cputime to timeval and back. 53c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru */ 54c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define timeval_to_cputime(__val) timeval_to_jiffies(__val) 55c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define cputime_to_timeval(__ct,__val) jiffies_to_timeval(__ct,__val) 56c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru 57c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru/* 58c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru * Convert cputime to clock and back. 59c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru */ 60c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define cputime_to_clock_t(__ct) jiffies_to_clock_t(__ct) 61c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define clock_t_to_cputime(__x) clock_t_to_jiffies(__x) 62c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru 63c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru/* 64c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru * Convert cputime64 to clock. 65c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru */ 66c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define cputime64_to_clock_t(__ct) jiffies_64_to_clock_t(__ct) 67c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru 68c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#endif 69