Lines Matching refs:cursor

1732 mac_mmc_init(mac_mblk_cursor_t *cursor, mblk_t *mp)  in mac_mmc_init()  argument
1734 cursor->mmc_head = mp; in mac_mmc_init()
1735 mac_mmc_reset(cursor); in mac_mmc_init()
1739 mac_mmc_reset(mac_mblk_cursor_t *cursor) in mac_mmc_reset() argument
1741 ASSERT(cursor->mmc_head != NULL); in mac_mmc_reset()
1743 cursor->mmc_cur = cursor->mmc_head; in mac_mmc_reset()
1744 cursor->mmc_off_total = cursor->mmc_off_mp = 0; in mac_mmc_reset()
1747 mac_mmc_advance(cursor, 0); in mac_mmc_reset()
1751 mac_mmc_mp_left(const mac_mblk_cursor_t *cursor) in mac_mmc_mp_left() argument
1753 if (cursor->mmc_cur != NULL) { in mac_mmc_mp_left()
1754 const size_t mp_len = MBLKL(cursor->mmc_cur); in mac_mmc_mp_left()
1756 ASSERT3U(mp_len, >=, cursor->mmc_off_mp); in mac_mmc_mp_left()
1758 return (mp_len - cursor->mmc_off_mp); in mac_mmc_mp_left()
1765 mac_mmc_mp_ptr(const mac_mblk_cursor_t *cursor) in mac_mmc_mp_ptr() argument
1767 return (cursor->mmc_cur->b_rptr + cursor->mmc_off_mp); in mac_mmc_mp_ptr()
1771 mac_mmc_offset(const mac_mblk_cursor_t *cursor) in mac_mmc_offset() argument
1773 return (cursor->mmc_off_total); in mac_mmc_offset()
1785 mac_mmc_advance(mac_mblk_cursor_t *cursor, size_t len) in mac_mmc_advance() argument
1787 ASSERT(cursor->mmc_cur != NULL); in mac_mmc_advance()
1789 const size_t mp_len = MBLKL(cursor->mmc_cur); in mac_mmc_advance()
1791 ASSERT3U(cursor->mmc_off_mp + len, <=, mp_len); in mac_mmc_advance()
1793 cursor->mmc_off_total += len; in mac_mmc_advance()
1794 cursor->mmc_off_mp += len; in mac_mmc_advance()
1796 if (cursor->mmc_off_mp == mp_len) { in mac_mmc_advance()
1797 cursor->mmc_off_mp = 0; in mac_mmc_advance()
1798 cursor->mmc_cur = cursor->mmc_cur->b_cont; in mac_mmc_advance()
1802 while (cursor->mmc_cur != NULL && MBLKL(cursor->mmc_cur) == 0) { in mac_mmc_advance()
1803 cursor->mmc_cur = cursor->mmc_cur->b_cont; in mac_mmc_advance()
1813 mac_mmc_seek(mac_mblk_cursor_t *cursor, const size_t off) in mac_mmc_seek() argument
1815 ASSERT(cursor->mmc_head != NULL); in mac_mmc_seek()
1817 if (off == cursor->mmc_off_total) { in mac_mmc_seek()
1823 } else if (off < cursor->mmc_off_total) { in mac_mmc_seek()
1825 mac_mmc_reset(cursor); in mac_mmc_seek()
1828 size_t seek_left = off - cursor->mmc_off_total; in mac_mmc_seek()
1829 while (cursor->mmc_cur != NULL) { in mac_mmc_seek()
1830 const size_t mp_left = mac_mmc_mp_left(cursor); in mac_mmc_seek()
1834 cursor->mmc_off_mp += seek_left; in mac_mmc_seek()
1835 cursor->mmc_off_total += seek_left; in mac_mmc_seek()
1840 mac_mmc_advance(cursor, mp_left); in mac_mmc_seek()
1848 return (cursor->mmc_off_total == off); in mac_mmc_seek()
1857 mac_mmc_get_uint8(mac_mblk_cursor_t *cursor, size_t pos, uint8_t *out) in mac_mmc_get_uint8() argument
1859 if (!mac_mmc_seek(cursor, pos)) { in mac_mmc_get_uint8()
1863 if (mac_mmc_mp_left(cursor) != 0) { in mac_mmc_get_uint8()
1864 *out = *(mac_mmc_mp_ptr(cursor)); in mac_mmc_get_uint8()
1865 mac_mmc_advance(cursor, 1); in mac_mmc_get_uint8()
1880 mac_mmc_get_uint16(mac_mblk_cursor_t *cursor, size_t pos, uint16_t *out) in mac_mmc_get_uint16() argument
1882 if (!mac_mmc_seek(cursor, pos)) { in mac_mmc_get_uint16()
1886 const size_t mp_left = mac_mmc_mp_left(cursor); in mac_mmc_get_uint16()
1890 uint8_t *bp = mac_mmc_mp_ptr(cursor); in mac_mmc_get_uint16()
1894 mac_mmc_advance(cursor, 2); in mac_mmc_get_uint16()
1898 result = (uint16_t)*(mac_mmc_mp_ptr(cursor)); in mac_mmc_get_uint16()
1899 mac_mmc_advance(cursor, 1); in mac_mmc_get_uint16()
1901 if (mac_mmc_mp_left(cursor) == 0) { in mac_mmc_get_uint16()
1906 result |= (uint16_t)*(mac_mmc_mp_ptr(cursor)); in mac_mmc_get_uint16()
1907 mac_mmc_advance(cursor, 1); in mac_mmc_get_uint16()
1922 mac_mmc_get_bytes(mac_mblk_cursor_t *cursor, size_t pos, uint8_t *out, in mac_mmc_get_bytes() argument
1925 if (!mac_mmc_seek(cursor, pos)) { in mac_mmc_get_bytes()
1930 const size_t mp_left = mac_mmc_mp_left(cursor); in mac_mmc_get_bytes()
1937 bcopy(mac_mmc_mp_ptr(cursor), out, to_copy); in mac_mmc_get_bytes()
1939 mac_mmc_advance(cursor, to_copy); in mac_mmc_get_bytes()
1954 mac_mmc_parse_ether(mac_mblk_cursor_t *cursor, uint8_t *dst_addrp, in mac_mmc_parse_ether() argument
1957 const size_t l2_off = mac_mmc_offset(cursor); in mac_mmc_parse_ether()
1960 if (!mac_mmc_get_bytes(cursor, l2_off, dst_addrp, ETHERADDRL)) { in mac_mmc_parse_ether()
1966 if (!mac_mmc_get_uint16(cursor, in mac_mmc_parse_ether()
1977 if (!mac_mmc_get_uint16(cursor, in mac_mmc_parse_ether()
1982 if (!mac_mmc_get_uint16(cursor, in mac_mmc_parse_ether()
2013 mac_mmc_parse_l3(mac_mblk_cursor_t *cursor, uint16_t l3_sap, uint8_t *ipprotop, in mac_mmc_parse_l3() argument
2016 const size_t l3_off = mac_mmc_offset(cursor); in mac_mmc_parse_l3()
2022 if (!mac_mmc_get_uint8(cursor, l3_off, &verlen)) { in mac_mmc_parse_l3()
2030 if (!mac_mmc_get_uint16(cursor, in mac_mmc_parse_l3()
2036 if (!mac_mmc_get_uint8(cursor, in mac_mmc_parse_l3()
2057 if (!mac_mmc_get_uint8(cursor, in mac_mmc_parse_l3()
2068 if (!mac_mmc_get_uint8(cursor, hdr_off, &next_hdr)) { in mac_mmc_parse_l3()
2086 if (!mac_mmc_get_uint8(cursor, hdr_off + 1, in mac_mmc_parse_l3()
2097 if (!mac_mmc_get_uint8(cursor, hdr_off + 1, in mac_mmc_parse_l3()
2140 mac_mmc_parse_l4(mac_mblk_cursor_t *cursor, uint8_t ipproto, uint8_t *hdr_sizep) in mac_mmc_parse_l4() argument
2144 const size_t l4_off = mac_mmc_offset(cursor); in mac_mmc_parse_l4()
2149 if (!mac_mmc_get_uint8(cursor, in mac_mmc_parse_l4()
2193 mac_mblk_cursor_t cursor; in mac_ether_l2_info() local
2195 mac_mmc_init(&cursor, mp); in mac_ether_l2_info()
2196 if (!mac_mmc_parse_ether(&cursor, dst_addrp, vlan_tcip, NULL, NULL)) { in mac_ether_l2_info()
2225 mac_mblk_cursor_t cursor; in mac_partial_offload_info() local
2227 mac_mmc_init(&cursor, mp); in mac_partial_offload_info()
2229 if (!mac_mmc_seek(&cursor, off)) { in mac_partial_offload_info()
2236 if (!mac_mmc_parse_ether(&cursor, NULL, &vlan_tci, &ethertype, in mac_partial_offload_info()
2251 if (!mac_mmc_seek(&cursor, l2_end)) { in mac_partial_offload_info()
2260 if (!mac_mmc_parse_l3(&cursor, meoi->meoi_l3proto, &ipproto, in mac_partial_offload_info()
2273 if (!mac_mmc_seek(&cursor, l3_end)) { in mac_partial_offload_info()
2280 if (!mac_mmc_parse_l4(&cursor, meoi->meoi_l4proto, &l4_sz)) { in mac_partial_offload_info()
2288 if (!mac_mmc_seek(&cursor, l4_end)) { in mac_partial_offload_info()