Adhoc by @ANR2ME(adamN) 

This commit include  build-in PRO Adhoc Server 
Windows version Testing is very good
Android version need other contributors to fix to work correctly
Fix #6717 
Okay, right, it's not showing the diff because it's too long.

But, I don't think that thread should be a kernel thread.  It should be a user thread created most likely upon call to sceNetInit().  The PSP creates two threads at that time, SceNetCallout and SceNetNetintr, both user threads, and both with 0x1000 stacks.  It would probably be fine to just call sceKernelCreateThread().

Intentionally, everything outside of sceKernelThread.cpp, and even most of sceKernelThread.cpp, uses thread IDs to identify threads, not Thread *s.  This avoids a lot of scenarios that can cause crashes, and makes savestates work.  I don't want to start throwing out these standards now.

It's probably simpler to just call a syscall to check on callbacks from within the thread instead of doing a call address thing.

-[Unknown]