On Wed, Dec 04, 2002 at 06:54:02PM +0100, Maciej W. Rozycki wrote: > On Wed, 4 Dec 2002, Daniel Jacobowitz wrote: > > > Sorry, by "not handy" I meant I didn't have the manuals available :) > > 'http://www.mips.com/Documentation/R4400_Uman_book_Ed2.pdf' or see under > "Publications"/"R4000...". There are other sources of the book available, > e.g. somewhere within SGI web pages. R10k implements a single watchpoint > this way, too. > > > > What do you think? > > > > You don't reveal to userland what size watchpoints are available - i.e. > > how large a watchpoint can be. Does the mask match the hardware > > implementation, and what are the restrictions on it? > > For that you set up a disabled watchpoint with a mask set to all ones (or > the range you are interested in). Then when you retrieve it, you may see > which bits stayed at ones. Similarly you may check for hardwired > don't-cares by using a mask with all zeroes. The mask may differ for each > watchpoint, e.g. for R4650 it's different for IWatch and DWatch, so you > really want to have a per-watchpoint setting. Also the MIPS32/64 ISA > specification implies a mask need not be contiguous. > > Similarly you may check for access types permitted, by enabling all of > them (or ones you are interested in) and seeing which ones remained > enabled. Per-watchpoint, again. > > I'd prefer not to overdesign the API leaving as much information as > possible passed as is. This way userland gets more control over what's > available. That way we expose more of the hardware to userland; and the thing that's most important to me is that GDB not have to know if it's on a MIPS32 or an R4650 when determining how watchpoints work. IWatch/DWatch are two particular watchpoints or distinguished by access type? I.E. what would GDB need to know to know which it is setting? -- Daniel Jacobowitz MontaVista Software Debian GNU/Linux Developer