0
  
   ˆƒí5ÅÂÃ €    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
 <head>
  <title>Index of /FSS-OZR/root/lib/modules/5.14.0-687.26.1.el9_8.x86_64/build/drivers/input</title>
 </head>
 <body>
<h1>Index of /FSS-OZR/root/lib/modules/5.14.0-687.26.1.el9_8.x86_64/build/drivers/input</h1>
  <table>
   <tr><th valign="top">&nbsp;</th><th><a href="?C=N;O=D">Name</a></th><th><a href="?C=M;O=A">Last modified</a></th><th><a href="?C=S;O=A">Size</a></th><th><a href="?C=D;O=A">Description</a></th></tr>
   <tr><th colspan="5"><hr></th></tr>
<tr><td valign="top">&nbsp;</td><td><a href="/FSS-OZR/root/lib/modules/5.14.0-687.26.1.el9_8.x86_64/build/drivers/">Parent Directory</a>       </td><td>&nbsp;</td><td align="right">  - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="Kconfig">Kconfig</a>                </td><td align="right">2026-08-01 06:03  </td><td align="right">6.0K</td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="Makefile">Makefile</a>               </td><td align="right">2026-08-01 06:03  </td><td align="right">1.0K</td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="gameport/">gameport/</a>              </td><td align="right">2026-08-06 05:26  </td><td align="right">  - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="joystick/">joystick/</a>              </td><td align="right">2026-08-06 05:26  </td><td align="right">  - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="keyboard/">keyboard/</a>              </td><td align="right">2026-08-06 05:26  </td><td align="right">  - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="misc/">misc/</a>                  </td><td align="right">2026-08-06 05:26  </td><td align="right">  - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="mouse/">mouse/</a>                 </td><td align="right">2026-08-06 05:26  </td><td align="right">  - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="rmi4/">rmi4/</a>                  </td><td align="right">2026-08-06 05:26  </td><td align="right">  - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="serio/">serio/</a>                 </td><td align="right">2026-08-06 05:26  </td><td align="right">  - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tablet/">tablet/</a>                </td><td align="right">2026-08-06 05:26  </td><td align="right">  - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tests/">tests/</a>                 </td><td align="right">2026-08-06 05:26  </td><td align="right">  - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="touchscreen/">touchscreen/</a>           </td><td align="right">2026-08-06 05:26  </td><td align="right">  - </td><td>&nbsp;</td></tr>
   <tr><th colspan="5"><hr></th></tr>
</table>
</body></html>
     ˆÁÀƒß_†I|¥�+ÃÄ     // SPDX-License-Identifier: GPL-2.0-only
#ifndef _LINUX_RWBASE_RT_H
#define _LINUX_RWBASE_RT_H

#include <linux/rtmutex.h>
#include <linux/atomic.h>

#define READER_BIAS		(1U << 31)
#define WRITER_BIAS		(1U << 30)

struct rwbase_rt {
	atomic_t		readers;
	struct rt_mutex_base	rtmutex;
};

#define __RWBASE_INITIALIZER(name)				\
{								\
	.readers = ATOMIC_INIT(READER_BIAS),			\
	.rtmutex = __RT_MUTEX_BASE_INITIALIZER(name.rtmutex),	\
}

#define init_rwbase_rt(rwbase)					\
	do {							\
		rt_mutex_base_init(&(rwbase)->rtmutex);		\
		atomic_set(&(rwbase)->readers, READER_BIAS);	\
	} while (0)


static __always_inline bool rw_base_is_locked(const struct rwbase_rt *rwb)
{
	return atomic_read(&rwb->readers) != READER_BIAS;
}

static __always_inline bool rw_base_is_write_locked(const struct rwbase_rt *rwb)
{
	return atomic_read(&rwb->readers) == WRITER_BIAS;
}

static __always_inline bool rw_base_is_contended(const struct rwbase_rt *rwb)
{
	return atomic_read(&rwb->readers) > 0;
}

#endif /* _LINUX_RWBASE_RT_H */
     ˆÆÃÄ >‰     <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTM