| 364 | } |
| 365 | |
| 366 | static void |
| 367 | create_msgring_thread(int hwtid) |
| 368 | { |
| 369 | struct msgring_thread *mthd; |
| 370 | struct thread *td; |
| 371 | int error; |
| 372 | |
| 373 | mthd = &msgring_threads[hwtid]; |
| 374 | error = kproc_kthread_add(msgring_process, (void *)(uintptr_t)hwtid, |
| 375 | &msgring_proc, &td, RFSTOPPED, 2, "msgrngproc", |
| 376 | "msgthr%d", hwtid); |
| 377 | if (error) |
| 378 | panic("kproc_kthread_add() failed with %d", error); |
| 379 | mthd->thread = td; |
| 380 | |
| 381 | thread_lock(td); |
| 382 | sched_class(td, PRI_ITHD); |
| 383 | sched_add(td, SRQ_INTR); |
| 384 | } |
| 385 | |
| 386 | int |
| 387 | register_msgring_handler(int startb, int endb, msgring_handler action, |
no test coverage detected