* Add or remove tracker from per-cpu list. * * The per-cpu list can be traversed at any time in forward direction from an * interrupt on the *local* cpu. */
| 201 | * interrupt on the *local* cpu. |
| 202 | */ |
| 203 | static void inline |
| 204 | rm_tracker_add(struct pcpu *pc, struct rm_priotracker *tracker) |
| 205 | { |
| 206 | struct rm_queue *next; |
| 207 | |
| 208 | /* Initialize all tracker pointers */ |
| 209 | tracker->rmp_cpuQueue.rmq_prev = &pc->pc_rm_queue; |
| 210 | next = pc->pc_rm_queue.rmq_next; |
| 211 | tracker->rmp_cpuQueue.rmq_next = next; |
| 212 | |
| 213 | /* rmq_prev is not used during froward traversal. */ |
| 214 | next->rmq_prev = &tracker->rmp_cpuQueue; |
| 215 | |
| 216 | /* Update pointer to first element. */ |
| 217 | pc->pc_rm_queue.rmq_next = &tracker->rmp_cpuQueue; |
| 218 | } |
| 219 | |
| 220 | /* |
| 221 | * Return a count of the number of trackers the thread 'td' already |
no outgoing calls
no test coverage detected