Lines Matching +full:device +full:- +full:handle
153 .Fa "bus_space_tag_t space" "bus_space_handle_t handle" "bus_size_t size"
157 .Fa "bus_space_tag_t space" "bus_space_handle_t handle"
168 .Fa "bus_space_tag_t space" "bus_space_handle_t handle" "bus_size_t size"
172 .Fa "bus_space_tag_t space" "bus_space_handle_t handle" "bus_size_t offset"
177 .Fa "bus_space_tag_t space" "bus_space_handle_t handle" "bus_size_t offset"
182 .Fa "bus_space_tag_t space" "bus_space_handle_t handle" "bus_size_t offset"
187 .Fa "bus_space_tag_t space" "bus_space_handle_t handle" "bus_size_t offset"
192 .Fa "bus_space_tag_t space" "bus_space_handle_t handle" "bus_size_t offset"
197 .Fa "bus_space_tag_t space" "bus_space_handle_t handle" "bus_size_t offset"
202 .Fa "bus_space_tag_t space" "bus_space_handle_t handle" "bus_size_t offset"
207 .Fa "bus_space_tag_t space" "bus_space_handle_t handle" "bus_size_t offset"
212 .Fa "bus_space_tag_t space" "bus_space_handle_t handle" "bus_size_t offset"
216 .Fa "bus_space_tag_t space" "bus_space_handle_t handle" "bus_size_t offset"
220 .Fa "bus_space_tag_t space" "bus_space_handle_t handle" "bus_size_t offset"
224 .Fa "bus_space_tag_t space" "bus_space_handle_t handle" "bus_size_t offset"
228 .Fa "bus_space_tag_t space" "bus_space_handle_t handle" "bus_size_t offset"
232 .Fa "bus_space_tag_t space" "bus_space_handle_t handle" "bus_size_t offset"
236 .Fa "bus_space_tag_t space" "bus_space_handle_t handle" "bus_size_t offset"
240 .Fa "bus_space_tag_t space" "bus_space_handle_t handle" "bus_size_t offset"
244 .Fa "bus_space_tag_t space" "bus_space_handle_t handle"
249 .Fa "bus_space_tag_t space" "bus_space_handle_t handle"
254 .Fa "bus_space_tag_t space" "bus_space_handle_t handle"
259 .Fa "bus_space_tag_t space" "bus_space_handle_t handle"
264 .Fa "bus_space_tag_t space" "bus_space_handle_t handle"
269 .Fa "bus_space_tag_t space" "bus_space_handle_t handle"
274 .Fa "bus_space_tag_t space" "bus_space_handle_t handle"
279 .Fa "bus_space_tag_t space" "bus_space_handle_t handle"
284 .Fa "bus_space_tag_t space" "bus_space_handle_t handle"
290 .Fa "bus_space_handle_t handle" "bus_size_t offset" "uint8_t *datap"
296 .Fa "bus_space_handle_t handle" "bus_size_t offset" "uint16_t *datap"
302 .Fa "bus_space_handle_t handle" "bus_size_t offset" "uint32_t *datap"
308 .Fa "bus_space_handle_t handle" "bus_size_t offset" "uint64_t *datap"
314 .Fa "bus_space_handle_t handle" "bus_size_t offset" "uint8_t *datap"
320 .Fa "bus_space_handle_t handle" "bus_size_t offset" "uint16_t *datap"
326 .Fa "bus_space_handle_t handle" "bus_size_t offset" "uint32_t *datap"
332 .Fa "bus_space_handle_t handle" "bus_size_t offset" "uint64_t *datap"
338 .Fa "bus_space_handle_t handle" "bus_size_t offset" "uint8_t *datap"
344 .Fa "bus_space_handle_t handle" "bus_size_t offset" "uint16_t *datap"
350 .Fa "bus_space_handle_t handle" "bus_size_t offset" "uint32_t *datap"
356 .Fa "bus_space_handle_t handle" "bus_size_t offset" "uint64_t *datap"
362 .Fa "bus_space_handle_t handle" "bus_size_t offset" "uint8_t *datap"
368 .Fa "bus_space_handle_t handle" "bus_size_t offset" "uint16_t *datap"
374 .Fa "bus_space_handle_t handle" "bus_size_t offset" "uint32_t *datap"
380 .Fa "bus_space_handle_t handle" "bus_size_t offset" "uint64_t *datap"
434 .Fa "bus_space_handle_t handle" "bus_size_t offset" "uint8_t value"
440 .Fa "bus_space_handle_t handle" "bus_size_t offset" "uint16_t value"
446 .Fa "bus_space_handle_t handle" "bus_size_t offset" "uint32_t value"
452 .Fa "bus_space_handle_t handle" "bus_size_t offset" "uint64_t value"
458 .Fa "bus_space_handle_t handle" "bus_size_t offset" "uint8_t value"
464 .Fa "bus_space_handle_t handle" "bus_size_t offset" "uint16_t value"
470 .Fa "bus_space_handle_t handle" "bus_size_t offset" "uint32_t value"
476 .Fa "bus_space_handle_t handle" "bus_size_t offset" "uint64_t value"
482 .Fa "bus_space_handle_t handle" "bus_size_t offset" "uint8_t *datap"
488 .Fa "bus_space_handle_t handle" "bus_size_t offset" "uint16_t *datap"
494 .Fa "bus_space_handle_t handle" "bus_size_t offset" "uint32_t *datap"
500 .Fa "bus_space_handle_t handle" "bus_size_t offset" "uint64_t *datap"
506 .Fa "bus_space_handle_t handle" "bus_size_t offset" "uint8_t *datap"
512 .Fa "bus_space_handle_t handle" "bus_size_t offset" "uint16_t *datap"
518 .Fa "bus_space_handle_t handle" "bus_size_t offset" "uint32_t *datap"
524 .Fa "bus_space_handle_t handle" "bus_size_t offset" "uint64_t *datap"
530 .Fa "bus_space_handle_t handle" "bus_size_t offset" "uint8_t *datap"
536 .Fa "bus_space_handle_t handle" "bus_size_t offset" "uint16_t *datap"
542 .Fa "bus_space_handle_t handle" "bus_size_t offset" "uint32_t *datap"
548 .Fa "bus_space_handle_t handle" "bus_size_t offset" "uint64_t *datap"
554 .Fa "bus_space_handle_t handle" "bus_size_t offset" "uint8_t *datap"
560 .Fa "bus_space_handle_t handle" "bus_size_t offset" "uint16_t *datap"
566 .Fa "bus_space_handle_t handle" "bus_size_t offset" "uint32_t *datap"
572 .Fa "bus_space_handle_t handle" "bus_size_t offset" "uint64_t *datap"
578 .Fa "bus_space_handle_t handle" "bus_size_t offset" "uint8_t value"
584 .Fa "bus_space_handle_t handle" "bus_size_t offset" "uint16_t value"
590 .Fa "bus_space_handle_t handle" "bus_size_t offset" "uint32_t value"
596 .Fa "bus_space_handle_t handle" "bus_size_t offset" "uint64_t value"
602 .Fa "bus_space_handle_t handle" "bus_size_t offset" "uint8_t value"
608 .Fa "bus_space_handle_t handle" "bus_size_t offset" "uint16_t value"
614 .Fa "bus_space_handle_t handle" "bus_size_t offset" "uint32_t value"
620 .Fa "bus_space_handle_t handle" "bus_size_t offset" "uint64_t value"
626 functions exist to allow device drivers
627 machine-independent access to bus memory and register areas.
636 For instance, a device which is mapped in one system's I/O space may be
640 creating a non-linear register space).
642 driver may need to access the same type of device in multiple ways in a
655 compile-time errors if possible.
661 (type-checked) versions of these interfaces, but may implement them as
663 Machine-dependent types, variables, and functions
667 machine-independent types and functions, and, if possible, should be
668 given names which make the machine-dependence clear.
671 machine-dependent code.
701 argument, at least one handle argument, and at least one offset argument
703 The bus space tag specifies the space, each handle specifies a region in
709 relative to a given handle must be such that all of the data being
710 accessed is in the mapped region that the handle describes.
715 memory and device access performance, there is a mechanism which can be
729 Correctly-written drivers will include all
739 accessed to be naturally aligned (i.e., base address of handle added to
742 written must point to properly-aligned data).
750 the region mapped when a given handle was created), undefined behaviour
797 contents are machine-dependent and should be considered opaque by
798 machine-independent code.
807 contents are machine-dependent and should be considered opaque by
808 machine-independent code.
826 Some drivers need to be able to pass a subregion of already-mapped bus
840 and fills in the bus space handle pointed to by
842 with the handle
845 it will return non-zero and leave the bus space handle pointed
854 .Bl -tag -width ".Dv BUS_SPACE_MAP_CACHEABLE"
869 device, e.g.\& a frame buffer.
878 Try to map the space using non-posted device memory.
879 This is to support buses and devices where mapping with posted device
901 non-cacheable mapping when the system can only provide a cacheable one)
907 for bus spaces which have no notion of slot-specific space addressing,
909 (e.g.\& PCI memory and I/O spaces co-existing with ISA memory and
912 Mapped regions may contain areas for which there is no device on the
915 bus-dependent.
916 .Ss Fn bus_space_unmap space handle size
930 is called on a handle, that handle is no longer
932 (If copies were made of the handle they are no longer valid,
942 .Ss Fn bus_space_subregion space handle offset size nhandlep
946 new handle to some subregion of an already-mapped region of bus space.
947 The subregion described by the new handle starts at byte offset
950 .Fa handle ,
958 space handle pointed to by
960 If unsuccessful, it returns non-zero and leaves the bus space handle
965 In either case, the handle described by
966 .Fa handle
969 When done with a handle created by
971 the handle should
975 be used on the handle.
982 is called on a handle, all subregions of that handle become invalid.
991 system for device use.
1010 the bus space handle pointed to by
1012 with the handle that can be used to access that region.
1013 If unsuccessful, it returns non-zero and leaves the bus address pointed to by
1015 and the bus space handle pointed to by
1034 constraint, if non-zero, ensures that the region is allocated so that
1054 parameter is the same as the like-named parameter to
1071 .Ss Fn bus_space_free space handle size
1085 is called on a handle, that handle is no longer valid.
1087 made of the handle, they are no longer valid, either.)
1106 .Ss Fn bus_space_read_1 space handle offset
1107 .Ss Fn bus_space_read_2 space handle offset
1108 .Ss Fn bus_space_read_4 space handle offset
1109 .Ss Fn bus_space_read_8 space handle offset
1116 .Fa handle
1120 .Fa handle .
1123 .Fa handle
1141 .Ss Fn bus_space_write_1 space handle offset value
1142 .Ss Fn bus_space_write_2 space handle offset value
1143 .Ss Fn bus_space_write_4 space handle offset value
1144 .Ss Fn bus_space_write_8 space handle offset value
1151 .Fa handle
1156 .Fa handle .
1159 .Fa handle
1185 device responds to the read or write cycles.
1186 In such a situation, the system typically would panic due to a kernel-mode
1192 family of functions provide a mechanism to handle these exceptions
1219 A return value of zero implies that a hardware device is
1221 A non-zero return value indicates that the kernel intercepted a
1225 non-existent hardware is accessed.
1235 functions are not re-entrant and should not, therefore, be used
1239 .Bl -ohang -compact
1240 .It Fn bus_space_peek_1 "space" "handle" "offset" "datap"
1241 .It Fn bus_space_peek_2 "space" "handle" "offset" "datap"
1242 .It Fn bus_space_peek_4 "space" "handle" "offset" "datap"
1243 .It Fn bus_space_peek_8 "space" "handle" "offset" "datap"
1251 .Fa handle
1260 .It Fn bus_space_poke_1 "space" "handle" "offset" "value"
1261 .It Fn bus_space_poke_2 "space" "handle" "offset" "value"
1262 .It Fn bus_space_poke_4 "space" "handle" "offset" "value"
1263 .It Fn bus_space_poke_8 "space" "handle" "offset" "value"
1273 .Fa handle
1278 In order to allow high-performance buffering implementations to avoid bus
1284 .Ss Fn bus_space_barrier space handle offset length flags
1293 .Fa handle
1301 .Bl -tag -width ".Dv BUS_SPACE_BARRIER_WRITE"
1308 Those flags can be combined (or-ed together) to enforce ordering on both
1315 Example: Consider a hypothetical device with two single-byte ports, one
1316 write-only input port (at offset 0) and a read-only output port (at
1318 Operation of the device is as follows: data bytes are written
1319 to the input port, and are placed by the device on a stack, the top of
1322 write two data bytes to the device then read those two data bytes back
1324 .Bd -literal
1326 * t and h are the tag and handle for the mapped device's
1344 the data bytes are written to the device correctly and in order.
1350 that the first byte read from the device really is the last one that was
1359 easier) to make barrier operations cover the device's whole range of bus
1382 .Ss Fn bus_space_read_region_1 space handle offset datap count
1383 .Ss Fn bus_space_read_region_2 space handle offset datap count
1384 .Ss Fn bus_space_read_region_4 space handle offset datap count
1385 .Ss Fn bus_space_read_region_8 space handle offset datap count
1394 .Fa handle
1404 .Fa handle .
1407 .Fa handle
1432 .Ss Fn bus_space_write_region_1 space handle offset datap count
1433 .Ss Fn bus_space_write_region_2 space handle offset datap count
1434 .Ss Fn bus_space_write_region_4 space handle offset datap count
1435 .Ss Fn bus_space_write_region_8 space handle offset datap count
1446 .Fa handle
1455 .Fa handle .
1458 .Fa handle
1515 each handle plus its respective offset should be a multiple of the size
1544 .Ss Fn bus_space_set_region_1 space handle offset value count
1545 .Ss Fn bus_space_set_region_2 space handle offset value count
1546 .Ss Fn bus_space_set_region_4 space handle offset value count
1547 .Ss Fn bus_space_set_region_8 space handle offset value count
1558 .Fa handle
1566 .Fa handle .
1569 .Fa handle
1605 .Ss Fn bus_space_read_multi_1 space handle offset datap count
1606 .Ss Fn bus_space_read_multi_2 space handle offset datap count
1607 .Ss Fn bus_space_read_multi_4 space handle offset datap count
1608 .Ss Fn bus_space_read_multi_8 space handle offset datap count
1617 .Fa handle
1626 .Fa handle .
1629 .Fa handle
1654 .Ss Fn bus_space_write_multi_1 space handle offset datap count
1655 .Ss Fn bus_space_write_multi_2 space handle offset datap count
1656 .Ss Fn bus_space_write_multi_4 space handle offset datap count
1657 .Ss Fn bus_space_write_multi_8 space handle offset datap count
1668 .Fa handle
1675 .Fa handle .
1678 .Fa handle
1702 .Ss Fn bus_space_set_multi_1 space handle offset value count
1703 .Ss Fn bus_space_set_multi_2 space handle offset value count
1704 .Ss Fn bus_space_set_multi_4 space handle offset value count
1705 .Ss Fn bus_space_set_multi_8 space handle offset value count
1713 .Fa handle
1720 .Fa handle .
1723 .Fa handle
1750 functions imply a host byte-order and a bus byte-order and take care of
1753 for which the caller may want to use multi-word, yet untranslated access.
1758 .Bl -tag -compact -width Fn
1797 These functions are defined just as their non-stream counterparts,
1798 except that they provide no byte-order translation.
1837 .An -nosplit