Resurrecting old thread.. Here is patch that increases the speed of
virtual directory filesystem 3x-10x in threaded mode. Especially
directory scan, file open and seek are _much_ faster now.
--- c:\d\d\include\native2amiga.h 2002-11-23 17:26:44.000000000 +0200 +++ include\native2amiga.h 2005-05-26 18:59:34.218750000 +0300 @@ -54,3 +54,10 @@ * It's emptied via exter_int_helper by the EXTER interrupt. */ extern smp_comm_pipe native2amiga_pending; #endif + +STATIC_INLINE do_uae_int_requested(void) +{ + uae_int_requested = 1; + set_uae_int_flag (); + INTREQ (0x8000 | 0x0008); +}
--- c:\d\d\native2amiga.c 2004-07-12 21:06:16.000000000 +0300 +++ native2amiga.c 2005-05-23 19:33:52.125000000 +0300 @@ -51,7 +51,7 @@ uae_sem_wait (&n2asem); write_comm_pipe_int (&native2amiga_pending, 3, 0); write_comm_pipe_u32 (&native2amiga_pending, interrupt, 1); - uae_int_requested = 1; + do_uae_int_requested(); uae_sem_post (&n2asem); }
@@ -60,7 +60,7 @@ uae_sem_wait (&n2asem); write_comm_pipe_int (&native2amiga_pending, 2, 0); write_comm_pipe_u32 (&native2amiga_pending, msg, 1); - uae_int_requested = 1; + do_uae_int_requested(); uae_sem_post (&n2asem); }
@@ -70,7 +70,7 @@ write_comm_pipe_int (&native2amiga_pending, 1, 0); write_comm_pipe_u32 (&native2amiga_pending, port, 0); write_comm_pipe_u32 (&native2amiga_pending, msg, 1); - uae_int_requested = 1; + do_uae_int_requested(); uae_sem_post (&n2asem); }
@@ -80,7 +80,7 @@ write_comm_pipe_int (&native2amiga_pending, 0, 0); write_comm_pipe_u32 (&native2amiga_pending, task, 0); write_comm_pipe_int (&native2amiga_pending, mask, 1); - uae_int_requested = 1; + do_uae_int_requested(); uae_sem_post (&n2asem); }
@@ -90,7 +90,7 @@ write_comm_pipe_int (&native2amiga_pending, 4, 0); write_comm_pipe_int (&native2amiga_pending, port, 0); write_comm_pipe_int (&native2amiga_pending, nr, 1); - uae_int_requested = 1; + do_uae_int_requested(); uae_sem_post (&n2asem); }