static int cmd_manager(int argc, char** argv, void(*callback)(char* result, int exit_status)) { for(int i = 1; i < argc; i++) { if(!strcmp("open", argv[i])) { NEXT_ARGUMENTS(); if(!is_uint16(argv[i])) return -i; if(manager_core) { printf("manager is already opened\n"); return -1; } uint16_t port = parse_uint16(argv[i]); manager_core = manager_core_server_open(port); if(!manager_core) { printf("open: failed\n"); return -2; } return 0; } else if(!strcmp("close", argv[i])) { if(!manager_core) { printf("close: failed. no manager opened\n"); return -2; } manager_core_server_close(manager_core); manager_core = NULL; return 0; } } return 0; }
void Assembler::svc(Instruction* at, int code) { VIXL_ASSERT(is_uint16(code)); Emit(at, SVC | ImmException(code)); }