| Line 842... |
Line 842... |
| 842 |
}
|
842 |
}
|
| 843 |
case 30: // FILE_OPEN
|
843 |
case 30: // FILE_OPEN
|
| 844 |
{
|
844 |
{
|
| 845 |
dbgasyncsendbuf[0] = 1;
|
845 |
dbgasyncsendbuf[0] = 1;
|
| 846 |
int fd = file_open((char*)(&dbgasyncsendbuf[4]), (int)(dbgasyncsendbuf[1]));
|
846 |
int fd = file_open((char*)(&dbgasyncsendbuf[4]), (int)(dbgasyncsendbuf[1]));
|
| - |
|
847 |
if (fd > 0) reown_file(fd, KERNEL_OWNER(KERNEL_OWNER_USB_MONITOR));
|
| 847 |
dbgasyncsendbuf[1] = (uint32_t)fd;
|
848 |
dbgasyncsendbuf[1] = (uint32_t)fd;
|
| 848 |
usb_drv_send_nonblocking(dbgendpoints[1], dbgasyncsendbuf, 16);
|
849 |
usb_drv_send_nonblocking(dbgendpoints[1], dbgasyncsendbuf, 16);
|
| 849 |
break;
|
850 |
break;
|
| 850 |
}
|
851 |
}
|
| 851 |
case 31: // FILESIZE
|
852 |
case 31: // FILESIZE
|
| Line 890... |
Line 891... |
| 890 |
dbgasyncsendbuf[1] = (uint32_t)close((int)(dbgasyncsendbuf[1]));
|
891 |
dbgasyncsendbuf[1] = (uint32_t)close((int)(dbgasyncsendbuf[1]));
|
| 891 |
usb_drv_send_nonblocking(dbgendpoints[1], dbgasyncsendbuf, 16);
|
892 |
usb_drv_send_nonblocking(dbgendpoints[1], dbgasyncsendbuf, 16);
|
| 892 |
break;
|
893 |
break;
|
| 893 |
case 38: // CLOSE_MONITOR_FILES
|
894 |
case 38: // CLOSE_MONITOR_FILES
|
| 894 |
dbgasyncsendbuf[0] = 1;
|
895 |
dbgasyncsendbuf[0] = 1;
|
| - |
|
896 |
int rc = close_all_of_process(KERNEL_OWNER(KERNEL_OWNER_USB_MONITOR));
|
| 895 |
dbgasyncsendbuf[1] = (uint32_t)close_all_of_process(current_thread);
|
897 |
dbgasyncsendbuf[1] = (uint32_t)rc;
|
| 896 |
usb_drv_send_nonblocking(dbgendpoints[1], dbgasyncsendbuf, 16);
|
898 |
usb_drv_send_nonblocking(dbgendpoints[1], dbgasyncsendbuf, 16);
|
| 897 |
break;
|
899 |
break;
|
| 898 |
case 39: // RELEASE_FILES
|
900 |
case 39: // RELEASE_FILES
|
| 899 |
dbgasyncsendbuf[0] = 1;
|
901 |
dbgasyncsendbuf[0] = 1;
|
| 900 |
dbgasyncsendbuf[1] = (uint32_t)release_files((int)(dbgasyncsendbuf[1]));
|
902 |
dbgasyncsendbuf[1] = (uint32_t)release_files((int)(dbgasyncsendbuf[1]));
|
| Line 911... |
Line 913... |
| 911 |
(char*)(&dbgasyncsendbuf[66]));
|
913 |
(char*)(&dbgasyncsendbuf[66]));
|
| 912 |
usb_drv_send_nonblocking(dbgendpoints[1], dbgasyncsendbuf, 16);
|
914 |
usb_drv_send_nonblocking(dbgendpoints[1], dbgasyncsendbuf, 16);
|
| 913 |
break;
|
915 |
break;
|
| 914 |
case 42: // OPENDIR
|
916 |
case 42: // OPENDIR
|
| 915 |
dbgasyncsendbuf[0] = 1;
|
917 |
dbgasyncsendbuf[0] = 1;
|
| 916 |
dbgasyncsendbuf[1] = (uint32_t)opendir((char*)(&dbgasyncsendbuf[4]));
|
918 |
DIR* dir = opendir((char*)(&dbgasyncsendbuf[4]));
|
| - |
|
919 |
if (dir > 0) reown_dir(dir, KERNEL_OWNER(KERNEL_OWNER_USB_MONITOR));
|
| - |
|
920 |
dbgasyncsendbuf[1] = (uint32_t)dir;
|
| 917 |
usb_drv_send_nonblocking(dbgendpoints[1], dbgasyncsendbuf, 16);
|
921 |
usb_drv_send_nonblocking(dbgendpoints[1], dbgasyncsendbuf, 16);
|
| 918 |
break;
|
922 |
break;
|
| 919 |
case 43: // READDIR
|
923 |
case 43: // READDIR
|
| 920 |
dbgasyncsendbuf[0] = 1;
|
924 |
dbgasyncsendbuf[0] = 1;
|
| 921 |
dbgasyncsendbuf[3] = (uint32_t)readdir((DIR*)(dbgasyncsendbuf[1]));
|
925 |
dbgasyncsendbuf[3] = (uint32_t)readdir((DIR*)(dbgasyncsendbuf[1]));
|
| Line 928... |
Line 932... |
| 928 |
dbgasyncsendbuf[1] = (uint32_t)closedir((DIR*)(dbgasyncsendbuf[1]));
|
932 |
dbgasyncsendbuf[1] = (uint32_t)closedir((DIR*)(dbgasyncsendbuf[1]));
|
| 929 |
usb_drv_send_nonblocking(dbgendpoints[1], dbgasyncsendbuf, 16);
|
933 |
usb_drv_send_nonblocking(dbgendpoints[1], dbgasyncsendbuf, 16);
|
| 930 |
break;
|
934 |
break;
|
| 931 |
case 45: // CLOSE_MONITOR_DIRS
|
935 |
case 45: // CLOSE_MONITOR_DIRS
|
| 932 |
dbgasyncsendbuf[0] = 1;
|
936 |
dbgasyncsendbuf[0] = 1;
|
| - |
|
937 |
rc = closedir_all_of_process(KERNEL_OWNER(KERNEL_OWNER_USB_MONITOR));
|
| 933 |
dbgasyncsendbuf[1] = (uint32_t)closedir_all_of_process(current_thread);
|
938 |
dbgasyncsendbuf[1] = (uint32_t)rc;
|
| 934 |
usb_drv_send_nonblocking(dbgendpoints[1], dbgasyncsendbuf, 16);
|
939 |
usb_drv_send_nonblocking(dbgendpoints[1], dbgasyncsendbuf, 16);
|
| 935 |
break;
|
940 |
break;
|
| 936 |
case 46: // RELEASE_DIRS
|
941 |
case 46: // RELEASE_DIRS
|
| 937 |
dbgasyncsendbuf[0] = 1;
|
942 |
dbgasyncsendbuf[0] = 1;
|
| 938 |
dbgasyncsendbuf[1] = (uint32_t)release_dirs((int)(dbgasyncsendbuf[1]));
|
943 |
dbgasyncsendbuf[1] = (uint32_t)release_dirs((int)(dbgasyncsendbuf[1]));
|
| Line 979... |
Line 984... |
| 979 |
break;
|
984 |
break;
|
| 980 |
#endif
|
985 |
#endif
|
| 981 |
case DBGACTION_MALLOC:
|
986 |
case DBGACTION_MALLOC:
|
| 982 |
dbgasyncsendbuf[0] = 1;
|
987 |
dbgasyncsendbuf[0] = 1;
|
| 983 |
dbgasyncsendbuf[1] = (uint32_t)malloc((size_t)dbgactionlength);
|
988 |
dbgasyncsendbuf[1] = (uint32_t)malloc((size_t)dbgactionlength);
|
| - |
|
989 |
if (dbgasyncsendbuf[1])
|
| - |
|
990 |
reownalloc(dbgasyncsendbuf[1], KERNEL_OWNER(KERNEL_OWNER_USB_MONITOR));
|
| 984 |
usb_drv_send_nonblocking(dbgendpoints[1], dbgasyncsendbuf, 16);
|
991 |
usb_drv_send_nonblocking(dbgendpoints[1], dbgasyncsendbuf, 16);
|
| 985 |
break;
|
992 |
break;
|
| 986 |
case DBGACTION_MEMALIGN:
|
993 |
case DBGACTION_MEMALIGN:
|
| 987 |
dbgasyncsendbuf[0] = 1;
|
994 |
dbgasyncsendbuf[0] = 1;
|
| 988 |
dbgasyncsendbuf[1] = (uint32_t)memalign((size_t)dbgactionoffset,
|
995 |
dbgasyncsendbuf[1] = (uint32_t)memalign((size_t)dbgactionoffset,
|
| 989 |
(size_t)dbgactionlength);
|
996 |
(size_t)dbgactionlength);
|
| - |
|
997 |
if (dbgasyncsendbuf[1])
|
| - |
|
998 |
reownalloc(dbgasyncsendbuf[1], KERNEL_OWNER(KERNEL_OWNER_USB_MONITOR));
|
| 990 |
usb_drv_send_nonblocking(dbgendpoints[1], dbgasyncsendbuf, 16);
|
999 |
usb_drv_send_nonblocking(dbgendpoints[1], dbgasyncsendbuf, 16);
|
| 991 |
break;
|
1000 |
break;
|
| 992 |
case DBGACTION_REALLOC:
|
1001 |
case DBGACTION_REALLOC:
|
| 993 |
dbgasyncsendbuf[0] = 1;
|
1002 |
dbgasyncsendbuf[0] = 1;
|
| 994 |
dbgasyncsendbuf[1] = (uint32_t)realloc((void*)dbgactionaddr,
|
1003 |
dbgasyncsendbuf[1] = (uint32_t)realloc((void*)dbgactionaddr,
|
| Line 1005... |
Line 1014... |
| 1005 |
free((void*)dbgactionaddr);
|
1014 |
free((void*)dbgactionaddr);
|
| 1006 |
usb_drv_send_nonblocking(dbgendpoints[1], dbgasyncsendbuf, 16);
|
1015 |
usb_drv_send_nonblocking(dbgendpoints[1], dbgasyncsendbuf, 16);
|
| 1007 |
break;
|
1016 |
break;
|
| 1008 |
case DBGACTION_FREEMONITOR:
|
1017 |
case DBGACTION_FREEMONITOR:
|
| 1009 |
dbgasyncsendbuf[0] = 1;
|
1018 |
dbgasyncsendbuf[0] = 1;
|
| - |
|
1019 |
int rc = free_all_of_thread(KERNEL_OWNER(KERNEL_OWNER_USB_MONITOR));
|
| 1010 |
dbgasyncsendbuf[1] = (uint32_t)free_all_of_thread(current_thread);
|
1020 |
dbgasyncsendbuf[1] = (uint32_t)rc;
|
| 1011 |
usb_drv_send_nonblocking(dbgendpoints[1], dbgasyncsendbuf, 16);
|
1021 |
usb_drv_send_nonblocking(dbgendpoints[1], dbgasyncsendbuf, 16);
|
| 1012 |
break;
|
1022 |
break;
|
| 1013 |
#ifdef HAVE_RTC
|
1023 |
#ifdef HAVE_RTC
|
| 1014 |
case DBGACTION_RTCREAD:
|
1024 |
case DBGACTION_RTCREAD:
|
| 1015 |
dbgasyncsendbuf[0] = 1;
|
1025 |
dbgasyncsendbuf[0] = 1;
|