12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- #include <stdio.h>
- #include <stdlib.h>
- #include <pspkernel.h>
- #include <pspdebug.h>
- #include <pspsdk.h>
- #include <pspctrl.h>
- PSP_MODULE_INFO("Pthread Test", 0, 1, 1);
- extern void pte_test_main();
- #ifdef JNS
- #define printf pspDebugScreenPrintf
- #endif
- /* Exit callback */
- int exit_callback(int arg1, int arg2, void *common)
- {
- sceKernelExitGame();
- return 0;
- }
- /* Callback thread */
- int CallbackThread(SceSize args, void *argp)
- {
- int cbid;
- cbid = sceKernelCreateCallback("Exit Callback", exit_callback, NULL);
- sceKernelRegisterExitCallback(cbid);
- sceKernelSleepThreadCB();
- return 0;
- }
- /* Sets up the callback thread and returns its thread id */
- int SetupCallbacks(void)
- {
- int thid = 0;
- thid = sceKernelCreateThread("update_thread", CallbackThread, 0x11, 0xFA0, 0, 0);
- if (thid >= 0)
- {
- sceKernelStartThread(thid, 0, 0);
- }
- return thid;
- }
- int main()
- {
- SceCtrlData pad;
- pspDebugScreenInit();
- SetupCallbacks();
- pte_test_main();
- while (1)
- {
- sceCtrlReadBufferPositive(&pad, 1);
- if (pad.Buttons & PSP_CTRL_UP)
- {
- printf("Exiting...\n");
- return 0;
- }
- }
- return 0;
- }
|