函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:kernel\time\sched_clock.c Create Date:2022-07-27 11:51:21
Last Modify:2020-03-12 14:18:49 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:sched_clock_register

函数原型:void __init sched_clock_register(u64 (*read)(void ), int bits, unsigned long rate)

返回类型:void

参数:

类型参数名称
u64 (*read
intbits
unsigned longrate
176  如果rate大于rate则返回
179  WARN_ON(!已禁止中断())
182  locks_calc_mult_shift - calculate mult/shift factors for scaled math of clocks*@mult: pointer to mult variable*@shift: pointer to shift variable*@from: frequency to convert from*@to: frequency to convert to*@maxsec: guaranteed runtime conversion range in
184  new_mask等于simplify initialization of mask field (bits)
185  rate等于rate
188  wrap等于locks_calc_max_nsecs - Returns maximum nanoseconds that can be converted*@mult: cycle to nanosecond multiplier*@shift: cycle to nanosecond divisor (power of two)*@maxadj: maximum adjustment value to mult (~11%)*@mask: bitmask for two's complement
189  wrap_kt等于ns_to_ktime(wrap)
191  rd等于read_data[0]
194  new_epoch等于read()
195  cyc等于actual_read_sched_clock()
196  ns等于epoch_nscyc_to_ns((cyc - epoch_cyc) & sched_clock_mask, mult, shift)
197  actual_read_sched_clock等于read
199  read_sched_clock等于read
200  sched_clock_mask等于new_mask
201  mult等于new_mult
202  shift等于new_shift
203  epoch_cyc等于new_epoch
204  epoch_ns等于ns
206  Updating the data required to read the clock
208  如果(function != NULL)则
210  重启cpu高精度定时器
213  r等于rate
214  如果r大于等于4000000则
215  r除等于1000000
216  r_unit等于'M'
217  否则
218  如果r大于等于1000则
219  r除等于1000
220  r_unit等于'k'
221  否则
222  r_unit等于' '
227  res等于cyc_to_ns(1ULL, new_mult, new_shift)
229  打印信息("sched_clock: %u bits at %lu%cHz, resolution %lluns, wraps every %lluns\n", bits, r, r_unit, res, wrap)
233  如果irqtime大于0或irqtime恒等于负1且rate大于等于1000000则enable_sched_clock_irqtime()
236  pr_debug("Registered %pS as sched_clock source\n", read)
调用者
名称描述
generic_sched_clock_init