On 14 April 2012 04:27, Stas Sergeev wrote:
> I was always subscribed there, I checked that many
> times, and the mail delivery knob was set to enabled.
> Yet you said I was somehow unsubscribed because
> of the bounces, and that was true: delivery didn't work
> until I posted to the list.

I tried to subscribe you to dosemu-cvs now under your list.ru address.

>> When mmap_min_addr>  0,
>
> ... or selinux is enabled.
> You need to adjust an error message to take this into
> account. I was very confused when set mmap_min_addr
> to 0 yet still receiving the error from dosemu.

OK. I also changed the error to be a warning for the default config.

> Is this because something is not properly implemented?
> I mean, the properly_implemented_e_invalidate(addr, len)
> should see if that range should be invalidated, and if not -
> just do not do anything at all. Not even unprotect. With
> the proterly_written_dosaddr_to_unixaddr() you will not
> get trapped, no matter what. So that's how I see it, or am
> I expecting too much from the current code? :)

OK. I think I understand what you mean. I'll change e_invalidate to
have addr as a DOS address (i.e. unsigned int), and then it can do the
right thing.

> If we are talking about hundreds or thousands, then yes,
> this was the only way to go... But if there are just a few, why
> not to fix them?

That's indeed the case, there were too many, and a few conversions got
me tangled up and then I just ran out of time, and wanted to get
things working first. So this, as you could call it "ugly transitional
helper code" is still there.

>> One problem is that there are still quite a few places that don't use
>> the READ_BYTE (etc) macros, and take pointers directly into DOS space
>
> That's horrible... how much of them are still in?

Too many.. Do a grep for MK_FP32 and Addr (an older alias for
MK_FP32). These macros are the main culprits for the &mem_base[xxx]
pointers. Note: when MK_FP32 does the right thing we'll also need to
change FP_OFF32 and FP_SEG32!

> Yes, you would first need to adjust them to be integers instead of
> pointers, but I guess, as a quick hack, you can just implement
> lowmemp() as follows:
> char *lowmemp(void *fuckedup_dos_addr)
> {
> return dosaddr_to_unixaddr((int)fuckedup_dos_addr);
> }

that would be dosaddr_to_unixaddr(fuckedup_dos_addr-mem_base) -- but I
get your point.
Then it's basically the same thing as the
LINEAR2UNIX(fuckedup_dos_addr-mem_base) that I mentioned a few emails
ago.

> Great! Good that an app can't get a base directly, like it can
> get the limit with lsl.

Yes, exactly, that's why the trick works.

Bart

------------------------------------------------------------------------------
For Developers, A Lot Can Happen In A Second.
Boundary is the first to Know...and Tell You.
Monitor Your Applications in Ultra-Fine Resolution. Try it FREE!
http://p.sf.net/sfu/Boundary-d2dvs2
_______________________________________________
Dosemu-devel mailing list
Dosemu-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dosemu-devel

Reply via email to