Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F136721154
D22914.id65949.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
17 KB
Referenced Files
None
Subscribers
None
D22914.id65949.diff
View Options
Index: share/man/man9/sleep.9
===================================================================
--- share/man/man9/sleep.9
+++ share/man/man9/sleep.9
@@ -47,14 +47,14 @@
.In sys/systm.h
.In sys/proc.h
.Ft int
-.Fn msleep "void *chan" "struct mtx *mtx" "int priority" "const char *wmesg" "int timo"
+.Fn msleep "const void *chan" "struct mtx *mtx" "int priority" "const char *wmesg" "int timo"
.Ft int
-.Fn msleep_sbt "void *chan" "struct mtx *mtx" "int priority" \
+.Fn msleep_sbt "const void *chan" "struct mtx *mtx" "int priority" \
"const char *wmesg" "sbintime_t sbt" "sbintime_t pr" "int flags"
.Ft int
-.Fn msleep_spin "void *chan" "struct mtx *mtx" "const char *wmesg" "int timo"
+.Fn msleep_spin "const void *chan" "struct mtx *mtx" "const char *wmesg" "int timo"
.Ft int
-.Fn msleep_spin_sbt "void *chan" "struct mtx *mtx" "const char *wmesg" \
+.Fn msleep_spin_sbt "const void *chan" "struct mtx *mtx" "const char *wmesg" \
"sbintime_t sbt" "sbintime_t pr" "int flags"
.Ft int
.Fn pause "const char *wmesg" "int timo"
@@ -64,16 +64,16 @@
.Fn pause_sbt "const char *wmesg" "sbintime_t sbt" "sbintime_t pr" \
"int flags"
.Ft int
-.Fn tsleep "void *chan" "int priority" "const char *wmesg" "int timo"
+.Fn tsleep "const void *chan" "int priority" "const char *wmesg" "int timo"
.Ft int
-.Fn tsleep_sbt "void *chan" "int priority" "const char *wmesg" \
+.Fn tsleep_sbt "const void *chan" "int priority" "const char *wmesg" \
"sbintime_t sbt" "sbintime_t pr" "int flags"
.Ft void
-.Fn wakeup "void *chan"
+.Fn wakeup "const void *chan"
.Ft void
-.Fn wakeup_one "void *chan"
+.Fn wakeup_one "const void *chan"
.Ft void
-.Fn wakeup_any "void *chan"
+.Fn wakeup_any "const void *chan"
.Sh DESCRIPTION
The functions
.Fn tsleep ,
Index: share/man/man9/sleepqueue.9
===================================================================
--- share/man/man9/sleepqueue.9
+++ share/man/man9/sleepqueue.9
@@ -54,40 +54,40 @@
.Ft int
.Fn sleepq_abort "struct thread *td"
.Ft void
-.Fn sleepq_add "void *wchan" "struct lock_object *lock" "const char *wmesg" "int flags" "int queue"
+.Fn sleepq_add "const void *wchan" "struct lock_object *lock" "const char *wmesg" "int flags" "int queue"
.Ft struct sleepqueue *
.Fn sleepq_alloc "void"
.Ft int
-.Fn sleepq_broadcast "void *wchan" "int flags" "int pri" "int queue"
+.Fn sleepq_broadcast "const void *wchan" "int flags" "int pri" "int queue"
.Ft void
.Fn sleepq_free "struct sleepqueue *sq"
.Ft struct sleepqueue *
-.Fn sleepq_lookup "void *wchan"
+.Fn sleepq_lookup "const void *wchan"
.Ft void
-.Fn sleepq_lock "void *wchan"
+.Fn sleepq_lock "const void *wchan"
.Ft void
-.Fn sleepq_release "void *wchan"
+.Fn sleepq_release "const void *wchan"
.Ft void
-.Fn sleepq_remove "struct thread *td" "void *wchan"
+.Fn sleepq_remove "struct thread *td" "const void *wchan"
.Ft int
-.Fn sleepq_signal "void *wchan" "int flags" "int pri" "int queue"
+.Fn sleepq_signal "const void *wchan" "int flags" "int pri" "int queue"
.Ft void
-.Fn sleepq_set_timeout "void *wchan" "int timo"
+.Fn sleepq_set_timeout "const void *wchan" "int timo"
.Ft void
-.Fn sleepq_set_timeout_sbt "void *wchan" "sbintime_t sbt" \
+.Fn sleepq_set_timeout_sbt "const void *wchan" "sbintime_t sbt" \
"sbintime_t pr" "int flags"
.Ft u_int
-.Fn sleepq_sleepcnt "void *wchan" "int queue"
+.Fn sleepq_sleepcnt "const void *wchan" "int queue"
.Ft int
-.Fn sleepq_timedwait "void *wchan" "int pri"
+.Fn sleepq_timedwait "const void *wchan" "int pri"
.Ft int
-.Fn sleepq_timedwait_sig "void *wchan" "int pri"
+.Fn sleepq_timedwait_sig "const void *wchan" "int pri"
.Ft int
-.Fn sleepq_type "void *wchan"
+.Fn sleepq_type "const void *wchan"
.Ft void
-.Fn sleepq_wait "void *wchan" "int pri"
+.Fn sleepq_wait "const void *wchan" "int pri"
.Ft int
-.Fn sleepq_wait_sig "void *wchan" "int pri"
+.Fn sleepq_wait_sig "const void *wchan" "int pri"
.Sh DESCRIPTION
Sleep queues provide a mechanism for suspending execution of a thread until
some condition is met.
Index: sys/ddb/db_ps.c
===================================================================
--- sys/ddb/db_ps.c
+++ sys/ddb/db_ps.c
@@ -265,7 +265,7 @@
{
char state[9], wprefix;
const char *wmesg;
- void *wchan;
+ const void *wchan;
if (all) {
db_printf("%6d ", td->td_tid);
Index: sys/kern/kern_clock.c
===================================================================
--- sys/kern/kern_clock.c
+++ sys/kern/kern_clock.c
@@ -212,7 +212,7 @@
static void
deadlres_td_sleep_q(struct proc *p, struct thread *td, int slpticks)
{
- void *wchan;
+ const void *wchan;
int i, slptype, tticks;
sx_assert(&allproc_lock, SX_LOCKED);
Index: sys/kern/kern_lock.c
===================================================================
--- sys/kern/kern_lock.c
+++ sys/kern/kern_lock.c
@@ -1733,7 +1733,7 @@
int
lockmgr_chain(struct thread *td, struct thread **ownerp)
{
- struct lock *lk;
+ const struct lock *lk;
lk = td->td_wchan;
Index: sys/kern/kern_proc.c
===================================================================
--- sys/kern/kern_proc.c
+++ sys/kern/kern_proc.c
@@ -1297,7 +1297,7 @@
* it can be replaced by assignment of zero.
*/
static inline uint32_t
-ptr32_trim(void *ptr)
+ptr32_trim(const void *ptr)
{
uintptr_t uptr;
Index: sys/kern/kern_sx.c
===================================================================
--- sys/kern/kern_sx.c
+++ sys/kern/kern_sx.c
@@ -1526,7 +1526,7 @@
int
sx_chain(struct thread *td, struct thread **ownerp)
{
- struct sx *sx;
+ const struct sx *sx;
/*
* Check to see if this thread is blocked on an sx lock.
Index: sys/kern/kern_synch.c
===================================================================
--- sys/kern/kern_synch.c
+++ sys/kern/kern_synch.c
@@ -77,7 +77,7 @@
NULL);
int hogticks;
-static char pause_wchan[MAXCPU];
+static const char pause_wchan[MAXCPU];
static struct callout loadav_callout;
@@ -131,7 +131,7 @@
* flag the lock is not re-locked before returning.
*/
int
-_sleep(void *ident, struct lock_object *lock, int priority,
+_sleep(const void *ident, struct lock_object *lock, int priority,
const char *wmesg, sbintime_t sbt, sbintime_t pr, int flags)
{
struct thread *td;
@@ -233,7 +233,7 @@
}
int
-msleep_spin_sbt(void *ident, struct mtx *mtx, const char *wmesg,
+msleep_spin_sbt(const void *ident, struct mtx *mtx, const char *wmesg,
sbintime_t sbt, sbintime_t pr, int flags)
{
struct thread *td;
@@ -409,7 +409,7 @@
* Make all threads sleeping on the specified identifier runnable.
*/
void
-wakeup(void *ident)
+wakeup(const void *ident)
{
int wakeup_swapper;
@@ -429,7 +429,7 @@
* swapped out.
*/
void
-wakeup_one(void *ident)
+wakeup_one(const void *ident)
{
int wakeup_swapper;
@@ -441,7 +441,7 @@
}
void
-wakeup_any(void *ident)
+wakeup_any(const void *ident)
{
int wakeup_swapper;
Index: sys/kern/subr_sleepqueue.c
===================================================================
--- sys/kern/subr_sleepqueue.c
+++ sys/kern/subr_sleepqueue.c
@@ -130,7 +130,7 @@
u_int sq_blockedcnt[NR_SLEEPQS]; /* (c) N. of blocked threads. */
LIST_ENTRY(sleepqueue) sq_hash; /* (c) Chain and free list. */
LIST_HEAD(, sleepqueue) sq_free; /* (c) Free queues. */
- void *sq_wchan; /* (c) Wait channel. */
+ const void *sq_wchan; /* (c) Wait channel. */
int sq_type; /* (c) Queue type. */
#ifdef INVARIANTS
struct lock_object *sq_lock; /* (c) Associated lock. */
@@ -163,7 +163,7 @@
/*
* Prototypes for non-exported routines.
*/
-static int sleepq_catch_signals(void *wchan, int pri);
+static int sleepq_catch_signals(const void *wchan, int pri);
static inline int sleepq_check_signals(void);
static inline int sleepq_check_timeout(void);
#ifdef INVARIANTS
@@ -173,7 +173,7 @@
static int sleepq_resume_thread(struct sleepqueue *sq, struct thread *td,
int pri, int srqflags);
static void sleepq_remove_thread(struct sleepqueue *sq, struct thread *td);
-static void sleepq_switch(void *wchan, int pri);
+static void sleepq_switch(const void *wchan, int pri);
static void sleepq_timeout(void *arg);
SDT_PROBE_DECLARE(sched, , , sleep);
@@ -257,7 +257,7 @@
* Lock the sleep queue chain associated with the specified wait channel.
*/
void
-sleepq_lock(void *wchan)
+sleepq_lock(const void *wchan)
{
struct sleepqueue_chain *sc;
@@ -271,7 +271,7 @@
* the table, NULL is returned.
*/
struct sleepqueue *
-sleepq_lookup(void *wchan)
+sleepq_lookup(const void *wchan)
{
struct sleepqueue_chain *sc;
struct sleepqueue *sq;
@@ -289,7 +289,7 @@
* Unlock the sleep queue chain associated with a given wait channel.
*/
void
-sleepq_release(void *wchan)
+sleepq_release(const void *wchan)
{
struct sleepqueue_chain *sc;
@@ -304,8 +304,8 @@
* woken up.
*/
void
-sleepq_add(void *wchan, struct lock_object *lock, const char *wmesg, int flags,
- int queue)
+sleepq_add(const void *wchan, struct lock_object *lock, const char *wmesg,
+ int flags, int queue)
{
struct sleepqueue_chain *sc;
struct sleepqueue *sq;
@@ -390,7 +390,7 @@
* sleep queue after timo ticks if the thread has not already been awakened.
*/
void
-sleepq_set_timeout_sbt(void *wchan, sbintime_t sbt, sbintime_t pr,
+sleepq_set_timeout_sbt(const void *wchan, sbintime_t sbt, sbintime_t pr,
int flags)
{
struct sleepqueue_chain *sc __unused;
@@ -419,7 +419,7 @@
* Return the number of actual sleepers for the specified queue.
*/
u_int
-sleepq_sleepcnt(void *wchan, int queue)
+sleepq_sleepcnt(const void *wchan, int queue)
{
struct sleepqueue *sq;
@@ -438,7 +438,7 @@
* may have transitioned from the sleepq lock to a run lock.
*/
static int
-sleepq_catch_signals(void *wchan, int pri)
+sleepq_catch_signals(const void *wchan, int pri)
{
struct sleepqueue_chain *sc;
struct sleepqueue *sq;
@@ -558,7 +558,7 @@
* Returns with thread lock.
*/
static void
-sleepq_switch(void *wchan, int pri)
+sleepq_switch(const void *wchan, int pri)
{
struct sleepqueue_chain *sc;
struct sleepqueue *sq;
@@ -664,7 +664,7 @@
* Block the current thread until it is awakened from its sleep queue.
*/
void
-sleepq_wait(void *wchan, int pri)
+sleepq_wait(const void *wchan, int pri)
{
struct thread *td;
@@ -679,7 +679,7 @@
* or it is interrupted by a signal.
*/
int
-sleepq_wait_sig(void *wchan, int pri)
+sleepq_wait_sig(const void *wchan, int pri)
{
int rcatch;
@@ -694,7 +694,7 @@
* or it times out while waiting.
*/
int
-sleepq_timedwait(void *wchan, int pri)
+sleepq_timedwait(const void *wchan, int pri)
{
struct thread *td;
@@ -712,7 +712,7 @@
* it is interrupted by a signal, or it times out waiting to be awakened.
*/
int
-sleepq_timedwait_sig(void *wchan, int pri)
+sleepq_timedwait_sig(const void *wchan, int pri)
{
int rcatch, rvalt, rvals;
@@ -731,7 +731,7 @@
* Returns the type of sleepqueue given a waitchannel.
*/
int
-sleepq_type(void *wchan)
+sleepq_type(const void *wchan)
{
struct sleepqueue *sq;
int type;
@@ -910,7 +910,7 @@
* Find thread sleeping on a wait channel and resume it.
*/
int
-sleepq_signal(void *wchan, int flags, int pri, int queue)
+sleepq_signal(const void *wchan, int flags, int pri, int queue)
{
struct sleepqueue_chain *sc;
struct sleepqueue *sq;
@@ -971,7 +971,7 @@
* Resume all threads sleeping on a specified wait channel.
*/
int
-sleepq_broadcast(void *wchan, int flags, int pri, int queue)
+sleepq_broadcast(const void *wchan, int flags, int pri, int queue)
{
struct sleepqueue *sq;
@@ -1023,7 +1023,7 @@
struct sleepqueue_chain *sc __unused;
struct sleepqueue *sq;
struct thread *td;
- void *wchan;
+ const void *wchan;
int wakeup_swapper;
td = arg;
@@ -1067,7 +1067,7 @@
* wait channel if it is on that queue.
*/
void
-sleepq_remove(struct thread *td, void *wchan)
+sleepq_remove(struct thread *td, const void *wchan)
{
struct sleepqueue_chain *sc;
struct sleepqueue *sq;
@@ -1111,7 +1111,7 @@
sleepq_abort(struct thread *td, int intrval)
{
struct sleepqueue *sq;
- void *wchan;
+ const void *wchan;
THREAD_LOCK_ASSERT(td, MA_OWNED);
MPASS(TD_ON_SLEEPQ(td));
@@ -1183,7 +1183,7 @@
*/
#ifdef STACK
int
-sleepq_sbuf_print_stacks(struct sbuf *sb, void *wchan, int queue,
+sleepq_sbuf_print_stacks(struct sbuf *sb, const void *wchan, int queue,
int *count_stacks_printed)
{
struct thread *td, *td_next;
Index: sys/sys/proc.h
===================================================================
--- sys/sys/proc.h
+++ sys/sys/proc.h
@@ -252,7 +252,7 @@
int td_pflags; /* (k) Private thread (TDP_*) flags. */
int td_dupfd; /* (k) Ret value from fdopen. XXX */
int td_sqqueue; /* (t) Sleepqueue queue blocked on. */
- void *td_wchan; /* (t) Sleep address. */
+ const void *td_wchan; /* (t) Sleep address. */
const char *td_wmesg; /* (t) Reason for sleep. */
volatile u_char td_owepreempt; /* (k*) Preempt on last critical_exit */
u_char td_tsqueue; /* (t) Turnstile queue blocked on. */
Index: sys/sys/sleepqueue.h
===================================================================
--- sys/sys/sleepqueue.h
+++ sys/sys/sleepqueue.h
@@ -88,33 +88,33 @@
void init_sleepqueues(void);
int sleepq_abort(struct thread *td, int intrval);
-void sleepq_add(void *wchan, struct lock_object *lock, const char *wmesg,
- int flags, int queue);
+void sleepq_add(const void *wchan, struct lock_object *lock,
+ const char *wmesg, int flags, int queue);
struct sleepqueue *sleepq_alloc(void);
-int sleepq_broadcast(void *wchan, int flags, int pri, int queue);
+int sleepq_broadcast(const void *wchan, int flags, int pri, int queue);
void sleepq_chains_remove_matching(bool (*matches)(struct thread *));
void sleepq_free(struct sleepqueue *sq);
-void sleepq_lock(void *wchan);
-struct sleepqueue *sleepq_lookup(void *wchan);
-void sleepq_release(void *wchan);
-void sleepq_remove(struct thread *td, void *wchan);
+void sleepq_lock(const void *wchan);
+struct sleepqueue *sleepq_lookup(const void *wchan);
+void sleepq_release(const void *wchan);
+void sleepq_remove(struct thread *td, const void *wchan);
int sleepq_remove_matching(struct sleepqueue *sq, int queue,
bool (*matches)(struct thread *), int pri);
-int sleepq_signal(void *wchan, int flags, int pri, int queue);
-void sleepq_set_timeout_sbt(void *wchan, sbintime_t sbt,
+int sleepq_signal(const void *wchan, int flags, int pri, int queue);
+void sleepq_set_timeout_sbt(const void *wchan, sbintime_t sbt,
sbintime_t pr, int flags);
#define sleepq_set_timeout(wchan, timo) \
sleepq_set_timeout_sbt((wchan), tick_sbt * (timo), 0, C_HARDCLOCK)
-u_int sleepq_sleepcnt(void *wchan, int queue);
-int sleepq_timedwait(void *wchan, int pri);
-int sleepq_timedwait_sig(void *wchan, int pri);
-int sleepq_type(void *wchan);
-void sleepq_wait(void *wchan, int pri);
-int sleepq_wait_sig(void *wchan, int pri);
+u_int sleepq_sleepcnt(const void *wchan, int queue);
+int sleepq_timedwait(const void *wchan, int pri);
+int sleepq_timedwait_sig(const void *wchan, int pri);
+int sleepq_type(const void *wchan);
+void sleepq_wait(const void *wchan, int pri);
+int sleepq_wait_sig(const void *wchan, int pri);
#ifdef STACK
struct sbuf;
-int sleepq_sbuf_print_stacks(struct sbuf *sb, void *wchan, int queue,
+int sleepq_sbuf_print_stacks(struct sbuf *sb, const void *wchan, int queue,
int *count_stacks_printed);
#endif
Index: sys/sys/systm.h
===================================================================
--- sys/sys/systm.h
+++ sys/sys/systm.h
@@ -480,7 +480,7 @@
* Common `proc' functions are declared here so that proc.h can be included
* less often.
*/
-int _sleep(void * _Nonnull chan, struct lock_object *lock, int pri,
+int _sleep(const void * _Nonnull chan, struct lock_object *lock, int pri,
const char *wmesg, sbintime_t sbt, sbintime_t pr, int flags);
#define msleep(chan, mtx, pri, wmesg, timo) \
_sleep((chan), &(mtx)->lock_object, (pri), (wmesg), \
@@ -488,7 +488,7 @@
#define msleep_sbt(chan, mtx, pri, wmesg, bt, pr, flags) \
_sleep((chan), &(mtx)->lock_object, (pri), (wmesg), (bt), (pr), \
(flags))
-int msleep_spin_sbt(void * _Nonnull chan, struct mtx *mtx,
+int msleep_spin_sbt(const void * _Nonnull chan, struct mtx *mtx,
const char *wmesg, sbintime_t sbt, sbintime_t pr, int flags);
#define msleep_spin(chan, mtx, wmesg, timo) \
msleep_spin_sbt((chan), (mtx), (wmesg), tick_sbt * (timo), \
@@ -504,9 +504,9 @@
0, C_HARDCLOCK)
#define tsleep_sbt(chan, pri, wmesg, bt, pr, flags) \
_sleep((chan), NULL, (pri), (wmesg), (bt), (pr), (flags))
-void wakeup(void * chan);
-void wakeup_one(void * chan);
-void wakeup_any(void * chan);
+void wakeup(const void *chan);
+void wakeup_one(const void *chan);
+void wakeup_any(const void *chan);
/*
* Common `struct cdev *' stuff are declared here to avoid #include poisoning
Index: sys/sys/user.h
===================================================================
--- sys/sys/user.h
+++ sys/sys/user.h
@@ -128,7 +128,7 @@
struct vnode *ki_textvp; /* pointer to executable file */
struct filedesc *ki_fd; /* pointer to open file info */
struct vmspace *ki_vmspace; /* pointer to kernel vmspace struct */
- void *ki_wchan; /* sleep address */
+ const void *ki_wchan; /* sleep address */
pid_t ki_pid; /* Process identifier */
pid_t ki_ppid; /* parent process id */
pid_t ki_pgid; /* process group id */
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Thu, Nov 20, 1:16 AM (17 h, 46 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
25699918
Default Alt Text
D22914.id65949.diff (17 KB)
Attached To
Mode
D22914: sleep(9), sleepqueue(9): const'ify wchan pointers
Attached
Detach File
Event Timeline
Log In to Comment