// ======================================================================== // Description: This function acts as a simple wrapper for retrieving // socket library errors from errno or h_errno. // ======================================================================== Error GetError( bool p_errno ) { #ifdef _WIN32 return TranslateError( WSAGetLastError(), p_errno ); #else if( p_errno == true ) return TranslateError( errno, p_errno ); else return TranslateError( h_errno, p_errno ); #endif return ESeriousError; }
static void Socket(Service::Interface* self) { u32* cmd_buffer = Kernel::GetCommandBuffer(); u32 domain = cmd_buffer[1]; // Address family u32 type = cmd_buffer[2]; u32 protocol = cmd_buffer[3]; // Only 0 is allowed according to 3dbrew, using 0 will let the OS decide which protocol to use if (protocol != 0) { cmd_buffer[1] = UnimplementedFunction(ErrorModule::SOC).raw; // TODO(Subv): Correct error code return; } if (domain != AF_INET) { cmd_buffer[1] = UnimplementedFunction(ErrorModule::SOC).raw; // TODO(Subv): Correct error code return; } if (type != SOCK_DGRAM && type != SOCK_STREAM) { cmd_buffer[1] = UnimplementedFunction(ErrorModule::SOC).raw; // TODO(Subv): Correct error code return; } u32 socket_handle = static_cast<u32>(::socket(domain, type, protocol)); if ((s32)socket_handle != SOCKET_ERROR_VALUE) open_sockets[socket_handle] = { socket_handle, true }; int result = 0; if ((s32)socket_handle == SOCKET_ERROR_VALUE) result = TranslateError(GET_ERRNO); cmd_buffer[1] = result; cmd_buffer[2] = socket_handle; }
void *dlopen(const char *path, int WXUNUSED(mode) /* mode is ignored */) { NSObjectFileImage ofile; NSModule handle = NULL; int dyld_result = NSCreateObjectFileImageFromFile(path, &ofile); if ( dyld_result != NSObjectFileImageSuccess ) { handle = NULL; } else { handle = NSLinkModule ( ofile, path, NSLINKMODULE_OPTION_BINDNOW | NSLINKMODULE_OPTION_RETURN_ON_ERROR ); } if ( !handle ) TranslateError(path, dyld_result); return handle; }
int PIGCSControllerDLL::ConnectUSB(const std::string& interfaceParameter) { if (ConnectUSB_ == NULL || EnumerateUSB_) return DEVICE_NOT_SUPPORTED; char szDevices[128*80+1]; int nrDevices = EnumerateUSB_(szDevices, 128*80, NULL); if (nrDevices<0) return TranslateError(nrDevices); if (nrDevices==0) return DEVICE_NOT_CONNECTED; std::string deviceName; if (interfaceParameter_.empty()) { if (nrDevices != 1) return DEVICE_INVALID_PROPERTY_VALUE; deviceName = szDevices; } else { deviceName = FindDeviceNameInUSBList(szDevices, interfaceParameter); } if (deviceName.empty()) return DEVICE_NOT_CONNECTED; ID_ = ConnectUSB_(deviceName.c_str()); if (ID_<0) return DEVICE_NOT_CONNECTED; return DEVICE_OK; }
static void Bind(Interface* self) { u32* cmd_buffer = Kernel::GetCommandBuffer(); u32 socket_handle = cmd_buffer[1]; u32 len = cmd_buffer[2]; // Virtual address of the sock_addr structure VAddr sock_addr_addr = cmd_buffer[6]; if (!Memory::IsValidVirtualAddress(sock_addr_addr)) { cmd_buffer[1] = -1; // TODO(Subv): Correct code return; } CTRSockAddr ctr_sock_addr; Memory::ReadBlock(sock_addr_addr, reinterpret_cast<u8*>(&ctr_sock_addr), sizeof(CTRSockAddr)); sockaddr sock_addr = CTRSockAddr::ToPlatform(ctr_sock_addr); int res = ::bind(socket_handle, &sock_addr, std::max<u32>(sizeof(sock_addr), len)); int result = 0; if (res != 0) result = TranslateError(GET_ERRNO); cmd_buffer[0] = IPC::MakeHeader(5, 2, 0); cmd_buffer[1] = result; cmd_buffer[2] = res; }
static jobject get_class_loader(jclass cls) { jvmtiError err = JVMTI_ERROR_NONE; jobject loader = NULL; if (printdump == JNI_TRUE) { printf(">>> getting class loader ...\n"); } err = (*jvmti)->GetClassLoader(jvmti, cls, &loader); if (err != JVMTI_ERROR_NONE) { printf(" Error in GetClassLoader: %s (%d)\n", TranslateError(err), err); } return loader; }
int PIController::OnJoystick(MM::PropertyBase* pProp, MM::ActionType eAct, int joystick) { if (eAct == MM::BeforeGet) { int state; if (!qJON(joystick, state)) { return TranslateError( GetError() ); } pProp->Set(long(state)); } else if (eAct == MM::AfterSet) { long lstate; pProp->Get(lstate); int state = int(lstate); if (!JON( joystick, state )) { return TranslateError( GetError() ); } } return DEVICE_OK; }
static void Bind(Service::Interface* self) { u32* cmd_buffer = Kernel::GetCommandBuffer(); u32 socket_handle = cmd_buffer[1]; u32 len = cmd_buffer[2]; CTRSockAddr* ctr_sock_addr = reinterpret_cast<CTRSockAddr*>(Memory::GetPointer(cmd_buffer[6])); if (ctr_sock_addr == nullptr) { cmd_buffer[1] = -1; // TODO(Subv): Correct code return; } sockaddr sock_addr = CTRSockAddr::ToPlatform(*ctr_sock_addr); int res = ::bind(socket_handle, &sock_addr, std::max<u32>(sizeof(sock_addr), len)); int result = 0; if (res != 0) result = TranslateError(GET_ERRNO); cmd_buffer[2] = res; cmd_buffer[1] = result; }
static jvmtiError get_module(JNIEnv *env, jobject loader, const char* pkg_name, jobject* module_ptr, const char** mod_name_ptr) { jvmtiError err = JVMTI_ERROR_NONE; const char* name = (pkg_name == NULL) ? "<NULL>" : pkg_name; printf(">>> getting module by loader %p and package \"%s\"\n", loader, name); *mod_name_ptr = NULL; err = (*jvmti)->GetNamedModule(jvmti, loader, pkg_name, module_ptr); if (err != JVMTI_ERROR_NONE) { printf(" Error in GetNamedModule for package \"%s\": %s (%d)\n", pkg_name, TranslateError(err), err); return err; } printf(" returned module: %p\n", *module_ptr); if (*module_ptr == NULL) { // named module was not found return err; } *mod_name_ptr = get_module_name(env, *module_ptr); return err; }
ErrorCode Platform::TranslateError() { return TranslateError(errno); }
ErrorCode Platform::TranslateError() { return TranslateError(GetLastError()); }
int PIController::GetTranslatedError() { return TranslateError(GetError()); }