[Midnightbsd-cvs] src [12366] trunk/sys/sys: sync with FreeBSD 11-stable
laffer1 at midnightbsd.org
laffer1 at midnightbsd.org
Sun Feb 9 13:38:04 EST 2020
Revision: 12366
http://svnweb.midnightbsd.org/src/?rev=12366
Author: laffer1
Date: 2020-02-09 13:38:04 -0500 (Sun, 09 Feb 2020)
Log Message:
-----------
sync with FreeBSD 11-stable
Modified Paths:
--------------
trunk/sys/sys/_bitset.h
trunk/sys/sys/rman.h
trunk/sys/sys/rmlock.h
Modified: trunk/sys/sys/_bitset.h
===================================================================
--- trunk/sys/sys/_bitset.h 2020-02-09 18:34:36 UTC (rev 12365)
+++ trunk/sys/sys/_bitset.h 2020-02-09 18:38:04 UTC (rev 12366)
@@ -27,7 +27,7 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
- * $FreeBSD: stable/10/sys/sys/_bitset.h 290739 2015-11-13 01:37:08Z markj $
+ * $FreeBSD: stable/11/sys/sys/_bitset.h 331722 2018-03-29 02:50:57Z eadler $
*/
#ifndef _SYS__BITSET_H_
@@ -37,26 +37,23 @@
* Macros addressing word and bit within it, tuned to make compiler
* optimize cases when SETSIZE fits into single machine word.
*/
-#define _BITSET_BITS (sizeof(long) * NBBY)
+#define _BITSET_BITS (sizeof(long) * 8)
-#define __bitset_words(_s) (howmany(_s, _BITSET_BITS))
+#define __howmany(x, y) (((x) + ((y) - 1)) / (y))
-#define __bitset_mask(_s, n) \
- (1L << ((__bitset_words((_s)) == 1) ? \
- (__size_t)(n) : ((n) % _BITSET_BITS)))
+#define __bitset_words(_s) (__howmany(_s, _BITSET_BITS))
-#define __bitset_word(_s, n) \
- ((__bitset_words((_s)) == 1) ? 0 : ((n) / _BITSET_BITS))
-
#define BITSET_DEFINE(t, _s) \
struct t { \
long __bits[__bitset_words((_s))]; \
}
-#define BITSET_T_INITIALIZER(x) \
- { .__bits = { x } }
+/*
+ * Helper to declare a bitset without it's size being a constant.
+ *
+ * Sadly we cannot declare a bitset struct with '__bits[]', because it's
+ * the only member of the struct and the compiler complains.
+ */
+#define BITSET_DEFINE_VAR(t) BITSET_DEFINE(t, 1)
-#define BITSET_FSET(n) \
- [ 0 ... ((n) - 1) ] = (-1L)
-
#endif /* !_SYS__BITSET_H_ */
Modified: trunk/sys/sys/rman.h
===================================================================
--- trunk/sys/sys/rman.h 2020-02-09 18:34:36 UTC (rev 12365)
+++ trunk/sys/sys/rman.h 2020-02-09 18:38:04 UTC (rev 12366)
@@ -27,7 +27,7 @@
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $FreeBSD: stable/10/sys/sys/rman.h 303254 2016-07-24 04:38:50Z jhb $
+ * $FreeBSD: stable/11/sys/sys/rman.h 300317 2016-05-20 17:57:47Z jhb $
*/
#ifndef _SYS_RMAN_H_
@@ -48,6 +48,7 @@
#define RF_FIRSTSHARE 0x0020 /* first in sharing list */
#define RF_PREFETCHABLE 0x0040 /* resource is prefetchable */
#define RF_OPTIONAL 0x0080 /* for bus_alloc_resources() */
+#define RF_UNMAPPED 0x0100 /* don't map resource when activating */
#define RF_ALIGNMENT_SHIFT 10 /* alignment size bit starts bit 10 */
#define RF_ALIGNMENT_MASK (0x003F << RF_ALIGNMENT_SHIFT)
@@ -62,6 +63,10 @@
*/
#define RM_TEXTLEN 32
+#define RM_MAX_END (~(rman_res_t)0)
+
+#define RMAN_IS_DEFAULT_RANGE(s,e) ((s) == 0 && (e) == RM_MAX_END)
+
/*
* Userspace-exported structures.
*/
@@ -71,8 +76,8 @@
uintptr_t r_device; /* device owning this resource */
char r_devname[RM_TEXTLEN]; /* device name XXX obsolete */
- u_long r_start; /* offset in resource space */
- u_long r_size; /* size in resource space */
+ rman_res_t r_start; /* offset in resource space */
+ rman_res_t r_size; /* size in resource space */
u_int r_flags; /* RF_* flags */
};
@@ -80,8 +85,8 @@
uintptr_t rm_handle; /* rman uniquifier */
char rm_descr[RM_TEXTLEN]; /* rman description */
- u_long rm_start; /* base of managed region */
- u_long rm_size; /* size of managed region */
+ rman_res_t rm_start; /* base of managed region */
+ rman_res_t rm_size; /* size of managed region */
enum rman_type rm_type; /* region type */
};
@@ -102,6 +107,7 @@
};
struct resource_i;
+struct resource_map;
TAILQ_HEAD(resource_head, resource_i);
@@ -109,8 +115,8 @@
struct resource_head rm_list;
struct mtx *rm_mtx; /* mutex used to protect rm_list */
TAILQ_ENTRY(rman) rm_link; /* link in list of all rmans */
- u_long rm_start; /* index of globally first entry */
- u_long rm_end; /* index of globally last entry */
+ rman_res_t rm_start; /* index of globally first entry */
+ rman_res_t rm_end; /* index of globally last entry */
enum rman_type rm_type; /* what type of resource this is */
const char *rm_descr; /* text descripion of this resource */
};
@@ -117,38 +123,40 @@
TAILQ_HEAD(rman_head, rman);
int rman_activate_resource(struct resource *r);
-int rman_adjust_resource(struct resource *r, u_long start, u_long end);
-int rman_first_free_region(struct rman *rm, u_long *start, u_long *end);
+int rman_adjust_resource(struct resource *r, rman_res_t start, rman_res_t end);
+int rman_first_free_region(struct rman *rm, rman_res_t *start, rman_res_t *end);
bus_space_handle_t rman_get_bushandle(struct resource *);
bus_space_tag_t rman_get_bustag(struct resource *);
-u_long rman_get_end(struct resource *);
+rman_res_t rman_get_end(struct resource *);
struct device *rman_get_device(struct resource *);
u_int rman_get_flags(struct resource *);
+void rman_get_mapping(struct resource *, struct resource_map *);
int rman_get_rid(struct resource *);
-u_long rman_get_size(struct resource *);
-u_long rman_get_start(struct resource *);
+rman_res_t rman_get_size(struct resource *);
+rman_res_t rman_get_start(struct resource *);
void *rman_get_virtual(struct resource *);
int rman_deactivate_resource(struct resource *r);
int rman_fini(struct rman *rm);
int rman_init(struct rman *rm);
int rman_init_from_resource(struct rman *rm, struct resource *r);
-int rman_last_free_region(struct rman *rm, u_long *start, u_long *end);
+int rman_last_free_region(struct rman *rm, rman_res_t *start, rman_res_t *end);
uint32_t rman_make_alignment_flags(uint32_t size);
-int rman_manage_region(struct rman *rm, u_long start, u_long end);
+int rman_manage_region(struct rman *rm, rman_res_t start, rman_res_t end);
int rman_is_region_manager(struct resource *r, struct rman *rm);
int rman_release_resource(struct resource *r);
-struct resource *rman_reserve_resource(struct rman *rm, u_long start,
- u_long end, u_long count,
+struct resource *rman_reserve_resource(struct rman *rm, rman_res_t start,
+ rman_res_t end, rman_res_t count,
u_int flags, struct device *dev);
-struct resource *rman_reserve_resource_bound(struct rman *rm, u_long start,
- u_long end, u_long count, u_long bound,
+struct resource *rman_reserve_resource_bound(struct rman *rm, rman_res_t start,
+ rman_res_t end, rman_res_t count, rman_res_t bound,
u_int flags, struct device *dev);
void rman_set_bushandle(struct resource *_r, bus_space_handle_t _h);
void rman_set_bustag(struct resource *_r, bus_space_tag_t _t);
void rman_set_device(struct resource *_r, struct device *_dev);
-void rman_set_end(struct resource *_r, u_long _end);
+void rman_set_end(struct resource *_r, rman_res_t _end);
+void rman_set_mapping(struct resource *, struct resource_map *);
void rman_set_rid(struct resource *_r, int _rid);
-void rman_set_start(struct resource *_r, u_long _start);
+void rman_set_start(struct resource *_r, rman_res_t _start);
void rman_set_virtual(struct resource *_r, void *_v);
extern struct rman_head rman_head;
Modified: trunk/sys/sys/rmlock.h
===================================================================
--- trunk/sys/sys/rmlock.h 2020-02-09 18:34:36 UTC (rev 12365)
+++ trunk/sys/sys/rmlock.h 2020-02-09 18:38:04 UTC (rev 12366)
@@ -27,7 +27,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $FreeBSD: stable/10/sys/sys/rmlock.h 323870 2017-09-21 19:24:11Z marius $
+ * $FreeBSD: stable/11/sys/sys/rmlock.h 343420 2019-01-25 11:01:11Z kib $
*/
#ifndef _SYS_RMLOCK_H_
@@ -53,7 +53,6 @@
void rm_destroy(struct rmlock *rm);
int rm_wowned(const struct rmlock *rm);
void rm_sysinit(void *arg);
-void rm_sysinit_flags(void *arg);
void _rm_wlock_debug(struct rmlock *rm, const char *file, int line);
void _rm_wunlock_debug(struct rmlock *rm, const char *file, int line);
@@ -102,18 +101,14 @@
struct rm_args {
struct rmlock *ra_rm;
const char *ra_desc;
+ int ra_flags;
};
-struct rm_args_flags {
- struct rmlock *ra_rm;
- const char *ra_desc;
- int ra_opts;
-};
-
-#define RM_SYSINIT(name, rm, desc) \
+#define RM_SYSINIT_FLAGS(name, rm, desc, flags) \
static struct rm_args name##_args = { \
(rm), \
(desc), \
+ (flags), \
}; \
SYSINIT(name##_rm_sysinit, SI_SUB_LOCK, SI_ORDER_MIDDLE, \
rm_sysinit, &name##_args); \
@@ -120,18 +115,8 @@
SYSUNINIT(name##_rm_sysuninit, SI_SUB_LOCK, SI_ORDER_MIDDLE, \
rm_destroy, (rm))
+#define RM_SYSINIT(name, rm, desc) RM_SYSINIT_FLAGS(name, rm, desc, 0)
-#define RM_SYSINIT_FLAGS(name, rm, desc, opts) \
- static struct rm_args name##_args = { \
- (rm), \
- (desc), \
- (opts), \
- }; \
- SYSINIT(name##_rm_sysinit, SI_SUB_LOCK, SI_ORDER_MIDDLE, \
- rm_sysinit_flags, &name##_args); \
- SYSUNINIT(name##_rm_sysuninit, SI_SUB_LOCK, SI_ORDER_MIDDLE, \
- rm_destroy, (rm))
-
#if defined(INVARIANTS) || defined(INVARIANT_SUPPORT)
#define RA_LOCKED LA_LOCKED
#define RA_RLOCKED LA_SLOCKED
More information about the Midnightbsd-cvs
mailing list