Function report | 
Source Code:init\calibrate.c | 
Create Date:2022-07-28 13:55:16 | 
| Last Modify:2020-03-12 14:18:49 | Copyright©Brick | 
| home page | Tree | 
| Annotation kernel can get tool activity | Download SCCT | Chinese | 
Name:calibrate_delay_direct
Proto:static unsigned long calibrate_delay_direct(void)
Type:unsigned long
Parameter:Nothing
| 41 | good_timer_sum = 0 | 
| 42 | good_timer_count = 0 | 
| 44 | max = -1 | 
| 45 | min = -1 | 
| 48 | If read_current_timer( & pre_start) < 0 Then Return 0 | 
| 70 | When i < MAX_DIRECT_CALIBRATION_RETRIES cycle | 
| 71 | pre_start = 0 | 
| 72 | read_current_timer( & start) | 
| 73 | start_jiffies = jiffies | 
| 74 | When time_before_eq(jiffies, start_jiffies + 1) cycle | 
| 76 | read_current_timer( & start) | 
| 78 | read_current_timer( & post_start) | 
| 80 | pre_end = 0 | 
| 81 | end = post_start | 
| 85 | read_current_timer( & end) | 
| 87 | read_current_timer( & post_end) | 
| 103 | If start < post_end && pre_start != 0 && pre_end != 0 && timer_rate_max - timer_rate_min < timer_rate_max >> 3 Then | 
| 105 | good_timer_count++ | 
| 106 | good_timer_sum += timer_rate_max | 
| 107 | measured_times[i] = timer_rate_max | 
| 108 | If max < 0 || timer_rate_max > measured_times[max] Then max = i | 
| 110 | If min < 0 || timer_rate_max < measured_times[min] Then min = i | 
| 112 | Else measured_times[i] = 0 | 
| 121 | When good_timer_count > 1 cycle | 
| 126 | estimate = good_timer_sum / good_timer_count | 
| 130 | If measured_times[max] - measured_times[min] < maxdiff Then Return estimate | 
| 134 | good_timer_sum = 0 | 
| 135 | good_timer_count = 0 | 
| 136 | If measured_times[max] - estimate < estimate - measured_times[min] Then | 
| 141 | measured_times[min] = 0 | 
| 143 | Else | 
| 147 | measured_times[max] = 0 | 
| 151 | When i < MAX_DIRECT_CALIBRATION_RETRIES cycle | 
| 152 | If measured_times[i] == 0 Then Continue | 
| 154 | good_timer_count++ | 
| 155 | good_timer_sum += measured_times[i] | 
| 156 | If measured_times[i] < measured_times[min] Then min = i | 
| 158 | If measured_times[i] > measured_times[max] Then max = i | 
| 167 | Return 0 | 
| Name | Describe | 
|---|---|
| calibrate_delay | 
| Source code conversion tool public plug-in interface  | X | 
|---|---|
| Support c/c++/esqlc/java Oracle/Informix/Mysql Plug-in can realize: logical Report Code generation and batch code conversion  |