Lines Matching +full:flags +full:- +full:mask

4  * Copyright Mian-M. Hamayun 2013, Virtual Open Systems
8 * See the COPYING file in the top-level directory.
26 * simple un-linked breakpoints (i.e. we don't chain breakpoints
34 * +------+------+-------+-----+----+------+-----+------+-----+---+
36 * +------+------+-------+-----+----+------+-----+------+-----+---+
40 * SSC/HMC/PMC: Security, Higher and Priv access control (Table D-12)
47 * +------+-----------+----------+-----+
49 * +------+-----------+----------+-----+
65 return -ENOBUFS; in insert_hw_breakpoint()
86 for (i = 0; i < hw_breakpoints->len; i++) { in delete_hw_breakpoint()
88 if (brk->bvr == pc) { in delete_hw_breakpoint()
93 return -ENOENT; in delete_hw_breakpoint()
110 * +------+-------+------+----+-----+-----+-----+-----+-----+-----+---+
111 * | RES0 | MASK | RES0 | WT | LBN | SSC | HMC | BAS | LSC | PAC | E |
112 * +------+-------+------+----+-----+-----+-----+-----+-----+-----+---+
114 * MASK: num bits addr mask (0=none,01/10=res,11=3 bits (8 bytes))
115 * WT: 0 - unlinked, 1 - linked (not currently used)
117 * SSC/HMC/PAC: Security, Higher and Priv access control (Table D2-11)
124 * MASK=0, BAS=bit per byte in question. For larger regions (^2) you
125 * need to ensure you mask the address as required and set BAS=0xff
137 return -ENOBUFS; in insert_hw_watchpoint()
149 wp.details.flags = BP_MEM_READ; in insert_hw_watchpoint()
153 wp.details.flags = BP_MEM_WRITE; in insert_hw_watchpoint()
157 wp.details.flags = BP_MEM_ACCESS; in insert_hw_watchpoint()
165 int bas = (1 << len) - 1; in insert_hw_watchpoint()
167 wp.wcr = deposit32(wp.wcr, 5 + off, 8 - off, bas); in insert_hw_watchpoint()
173 wp.wvr &= ~((1 << bits) - 1); in insert_hw_watchpoint()
174 wp.wcr = FIELD_DP64(wp.wcr, DBGWCR, MASK, bits); in insert_hw_watchpoint()
177 return -ENOBUFS; in insert_hw_watchpoint()
188 uint64_t addr_top, addr_bottom = wp->wvr; in check_watchpoint_in_range()
189 int bas = extract32(wp->wcr, 5, 8); in check_watchpoint_in_range()
190 int mask = extract32(wp->wcr, 24, 4); in check_watchpoint_in_range() local
192 if (mask) { in check_watchpoint_in_range()
193 addr_top = addr_bottom + (1 << mask); in check_watchpoint_in_range()
226 return -ENOENT; in delete_hw_watchpoint()
235 if (bp->bvr == pc) { in find_hw_breakpoint()
248 return &get_hw_wp(i)->details; in find_hw_watchpoint()