sys_usbd: Add error_code

This commit is contained in:
Eladash 2020-01-17 09:49:15 +02:00 committed by Ani
parent 95ed2ef62e
commit 46df58b662
2 changed files with 57 additions and 57 deletions

View File

@ -437,7 +437,7 @@ UsbTransfer& usb_handler_thread::get_transfer(u32 transfer_id)
return transfers[transfer_id]; return transfers[transfer_id];
} }
s32 sys_usbd_initialize(vm::ptr<u32> handle) error_code sys_usbd_initialize(vm::ptr<u32> handle)
{ {
sys_usbd.warning("sys_usbd_initialize(handle=*0x%x)", handle); sys_usbd.warning("sys_usbd_initialize(handle=*0x%x)", handle);
@ -454,7 +454,7 @@ s32 sys_usbd_initialize(vm::ptr<u32> handle)
return CELL_OK; return CELL_OK;
} }
s32 sys_usbd_finalize(ppu_thread& ppu, u32 handle) error_code sys_usbd_finalize(ppu_thread& ppu, u32 handle)
{ {
sys_usbd.warning("sys_usbd_finalize(handle=0x%x)", handle); sys_usbd.warning("sys_usbd_finalize(handle=0x%x)", handle);
@ -477,7 +477,7 @@ s32 sys_usbd_finalize(ppu_thread& ppu, u32 handle)
return CELL_OK; return CELL_OK;
} }
s32 sys_usbd_get_device_list(u32 handle, vm::ptr<UsbInternalDevice> device_list, u32 max_devices) error_code sys_usbd_get_device_list(u32 handle, vm::ptr<UsbInternalDevice> device_list, u32 max_devices)
{ {
sys_usbd.warning("sys_usbd_get_device_list(handle=0x%x, device_list=*0x%x, max_devices=0x%x)", handle, device_list, max_devices); sys_usbd.warning("sys_usbd_get_device_list(handle=0x%x, device_list=*0x%x, max_devices=0x%x)", handle, device_list, max_devices);
@ -495,10 +495,10 @@ s32 sys_usbd_get_device_list(u32 handle, vm::ptr<UsbInternalDevice> device_list,
device_list[index] = usbh->handled_devices[index].first; device_list[index] = usbh->handled_devices[index].first;
} }
return i_tocopy; return not_an_error(i_tocopy);
} }
s32 sys_usbd_register_extra_ldd(u32 handle, vm::ptr<char> s_product, u16 slen_product, u16 id_vendor, u16 id_product_min, u16 id_product_max) error_code sys_usbd_register_extra_ldd(u32 handle, vm::ptr<char> s_product, u16 slen_product, u16 id_vendor, u16 id_product_min, u16 id_product_max)
{ {
sys_usbd.warning("sys_usbd_register_extra_ldd(handle=0x%x, s_product=%s, slen_product=0x%x, id_vendor=0x%x, id_product_min=0x%x, id_product_max=0x%x)", sys_usbd.warning("sys_usbd_register_extra_ldd(handle=0x%x, s_product=%s, slen_product=0x%x, id_vendor=0x%x, id_product_min=0x%x, id_product_max=0x%x)",
handle, s_product, slen_product, id_vendor, id_product_min, id_product_max); handle, s_product, slen_product, id_vendor, id_product_min, id_product_max);
@ -512,10 +512,10 @@ s32 sys_usbd_register_extra_ldd(u32 handle, vm::ptr<char> s_product, u16 slen_pr
s32 res = usbh->add_ldd(s_product, slen_product, id_vendor, id_product_min, id_product_max); s32 res = usbh->add_ldd(s_product, slen_product, id_vendor, id_product_min, id_product_max);
usbh->check_devices_vs_ldds(); usbh->check_devices_vs_ldds();
return res; // To check return not_an_error(res); // To check
} }
s32 sys_usbd_get_descriptor_size(u32 handle, u32 device_handle) error_code sys_usbd_get_descriptor_size(u32 handle, u32 device_handle)
{ {
sys_usbd.trace("sys_usbd_get_descriptor_size(handle=0x%x, deviceNumber=0x%x)", handle, device_handle); sys_usbd.trace("sys_usbd_get_descriptor_size(handle=0x%x, deviceNumber=0x%x)", handle, device_handle);
@ -528,10 +528,10 @@ s32 sys_usbd_get_descriptor_size(u32 handle, u32 device_handle)
return CELL_EINVAL; return CELL_EINVAL;
} }
return usbh->handled_devices[device_handle].second->device.get_size(); return not_an_error(usbh->handled_devices[device_handle].second->device.get_size());
} }
s32 sys_usbd_get_descriptor(u32 handle, u32 device_handle, vm::ptr<void> descriptor, u32 desc_size) error_code sys_usbd_get_descriptor(u32 handle, u32 device_handle, vm::ptr<void> descriptor, u32 desc_size)
{ {
sys_usbd.trace("sys_usbd_get_descriptor(handle=0x%x, deviceNumber=0x%x, descriptor=0x%x, desc_size=0x%x)", handle, device_handle, descriptor, desc_size); sys_usbd.trace("sys_usbd_get_descriptor(handle=0x%x, deviceNumber=0x%x, descriptor=0x%x, desc_size=0x%x)", handle, device_handle, descriptor, desc_size);
@ -551,20 +551,20 @@ s32 sys_usbd_get_descriptor(u32 handle, u32 device_handle, vm::ptr<void> descrip
} }
// This function is used for psp(cellUsbPspcm), dongles in ps3 arcade cabinets(PS3A-USJ), ps2 cam(eyetoy), generic usb camera?(sample_usb2cam) // This function is used for psp(cellUsbPspcm), dongles in ps3 arcade cabinets(PS3A-USJ), ps2 cam(eyetoy), generic usb camera?(sample_usb2cam)
s32 sys_usbd_register_ldd(u32 handle, vm::ptr<char> s_product, u16 slen_product) error_code sys_usbd_register_ldd(u32 handle, vm::ptr<char> s_product, u16 slen_product)
{ {
sys_usbd.todo("sys_usbd_register_ldd(handle=0x%x, s_product=%s, slen_product=0x%x)", handle, s_product, slen_product); sys_usbd.todo("sys_usbd_register_ldd(handle=0x%x, s_product=%s, slen_product=0x%x)", handle, s_product, slen_product);
return CELL_OK; return CELL_OK;
} }
s32 sys_usbd_unregister_ldd() error_code sys_usbd_unregister_ldd()
{ {
sys_usbd.todo("sys_usbd_unregister_ldd()"); sys_usbd.todo("sys_usbd_unregister_ldd()");
return CELL_OK; return CELL_OK;
} }
// TODO: determine what the unknown params are // TODO: determine what the unknown params are
s32 sys_usbd_open_pipe(u32 handle, u32 device_handle, u32 unk1, u64 unk2, u64 unk3, u32 endpoint, u64 unk4) error_code sys_usbd_open_pipe(u32 handle, u32 device_handle, u32 unk1, u64 unk2, u64 unk3, u32 endpoint, u64 unk4)
{ {
sys_usbd.warning("sys_usbd_open_pipe(handle=0x%x, device_handle=0x%x, unk1=0x%x, unk2=0x%x, unk3=0x%x, endpoint=0x%x, unk4=0x%x)", sys_usbd.warning("sys_usbd_open_pipe(handle=0x%x, device_handle=0x%x, unk1=0x%x, unk2=0x%x, unk3=0x%x, endpoint=0x%x, unk4=0x%x)",
handle, device_handle, unk1, unk2, unk3, endpoint, unk4); handle, device_handle, unk1, unk2, unk3, endpoint, unk4);
@ -578,10 +578,10 @@ s32 sys_usbd_open_pipe(u32 handle, u32 device_handle, u32 unk1, u64 unk2, u64 un
return CELL_EINVAL; return CELL_EINVAL;
} }
return usbh->open_pipe(device_handle, static_cast<u8>(endpoint)); return not_an_error(usbh->open_pipe(device_handle, static_cast<u8>(endpoint)));
} }
s32 sys_usbd_open_default_pipe(u32 handle, u32 device_handle) error_code sys_usbd_open_default_pipe(u32 handle, u32 device_handle)
{ {
sys_usbd.trace("sys_usbd_open_default_pipe(handle=0x%x, device_handle=0x%x)", handle, device_handle); sys_usbd.trace("sys_usbd_open_default_pipe(handle=0x%x, device_handle=0x%x)", handle, device_handle);
@ -594,10 +594,10 @@ s32 sys_usbd_open_default_pipe(u32 handle, u32 device_handle)
return CELL_EINVAL; return CELL_EINVAL;
} }
return usbh->open_pipe(device_handle, 0); return not_an_error(usbh->open_pipe(device_handle, 0));
} }
s32 sys_usbd_close_pipe(u32 handle, u32 pipe_handle) error_code sys_usbd_close_pipe(u32 handle, u32 pipe_handle)
{ {
sys_usbd.todo("sys_usbd_close_pipe(handle=0x%x, pipe_handle=0x%x)", handle, pipe_handle); sys_usbd.todo("sys_usbd_close_pipe(handle=0x%x, pipe_handle=0x%x)", handle, pipe_handle);
@ -621,7 +621,7 @@ s32 sys_usbd_close_pipe(u32 handle, u32 pipe_handle)
// *arg1 = 3 will do some extra processing right away(notification of transfer finishing) // *arg1 = 3 will do some extra processing right away(notification of transfer finishing)
// *arg1 < 1 || *arg1 > 4 are ignored(rewait instantly for event) // *arg1 < 1 || *arg1 > 4 are ignored(rewait instantly for event)
// *arg1 == 1 || *arg1 == 2 will send a sys_event to internal CellUsbd event queue with same parameters as received and loop(attach and detach event) // *arg1 == 1 || *arg1 == 2 will send a sys_event to internal CellUsbd event queue with same parameters as received and loop(attach and detach event)
s32 sys_usbd_receive_event(ppu_thread& ppu, u32 handle, vm::ptr<u64> arg1, vm::ptr<u64> arg2, vm::ptr<u64> arg3) error_code sys_usbd_receive_event(ppu_thread& ppu, u32 handle, vm::ptr<u64> arg1, vm::ptr<u64> arg2, vm::ptr<u64> arg3)
{ {
sys_usbd.trace("sys_usbd_receive_event(handle=%u, arg1=*0x%x, arg2=*0x%x, arg3=*0x%x)", handle, arg1, arg2, arg3); sys_usbd.trace("sys_usbd_receive_event(handle=%u, arg1=*0x%x, arg2=*0x%x, arg3=*0x%x)", handle, arg1, arg2, arg3);
@ -663,22 +663,22 @@ s32 sys_usbd_receive_event(ppu_thread& ppu, u32 handle, vm::ptr<u64> arg1, vm::p
return CELL_OK; return CELL_OK;
} }
s32 sys_usbd_detect_event() error_code sys_usbd_detect_event()
{ {
sys_usbd.todo("sys_usbd_detect_event()"); sys_usbd.todo("sys_usbd_detect_event()");
return CELL_OK; return CELL_OK;
} }
s32 sys_usbd_attach(u32 handle) error_code sys_usbd_attach(u32 handle)
{ {
sys_usbd.todo("sys_usbd_attach(handle=0x%x)", handle); sys_usbd.todo("sys_usbd_attach(handle=0x%x)", handle);
return CELL_OK; return CELL_OK;
} }
s32 sys_usbd_transfer_data(u32 handle, u32 id_pipe, vm::ptr<u8> buf, u32 buf_size, vm::ptr<UsbDeviceRequest> request, u32 type_transfer) error_code sys_usbd_transfer_data(u32 handle, u32 id_pipe, vm::ptr<u8> buf, u32 buf_size, vm::ptr<UsbDeviceRequest> request, u32 type_transfer)
{ {
sys_usbd.trace("sys_usbd_transfer_data(handle=0x%x, id_pipe=0x%x, buf=*0x%x, buf_length=0x%x, request=*0x%x, type=0x%x)", handle, id_pipe, buf, buf_size, request, type_transfer); sys_usbd.trace("sys_usbd_transfer_data(handle=0x%x, id_pipe=0x%x, buf=*0x%x, buf_length=0x%x, request=*0x%x, type=0x%x)", handle, id_pipe, buf, buf_size, request, type_transfer);
if (sys_usbd.enabled == logs::level::trace && request.addr()) if (sys_usbd.enabled == logs::level::trace && request)
{ {
sys_usbd.trace("RequestType:0x%x, Request:0x%x, wValue:0x%x, wIndex:0x%x, wLength:0x%x", request->bmRequestType, request->bRequest, request->wValue, request->wIndex, request->wLength); sys_usbd.trace("RequestType:0x%x, Request:0x%x, wValue:0x%x, wIndex:0x%x, wLength:0x%x", request->bmRequestType, request->bRequest, request->wValue, request->wIndex, request->wLength);
if ((request->bmRequestType & 0x80) == 0 && buf && buf_size != 0) if ((request->bmRequestType & 0x80) == 0 && buf && buf_size != 0)
@ -713,7 +713,7 @@ s32 sys_usbd_transfer_data(u32 handle, u32 id_pipe, vm::ptr<u8> buf, u32 buf_siz
// Default endpoint is control endpoint // Default endpoint is control endpoint
if (pipe.endpoint == 0) if (pipe.endpoint == 0)
{ {
if (!request.addr()) if (!request)
{ {
sys_usbd.error("Tried to use control pipe without proper request pointer"); sys_usbd.error("Tried to use control pipe without proper request pointer");
return CELL_EINVAL; return CELL_EINVAL;
@ -739,10 +739,10 @@ s32 sys_usbd_transfer_data(u32 handle, u32 id_pipe, vm::ptr<u8> buf, u32 buf_siz
usbh->fake_transfers.push_back(&transfer); usbh->fake_transfers.push_back(&transfer);
// returns an identifier specific to the transfer // returns an identifier specific to the transfer
return id_transfer; return not_an_error(id_transfer);
} }
s32 sys_usbd_isochronous_transfer_data(u32 handle, u32 id_pipe, vm::ptr<UsbDeviceIsoRequest> iso_request) error_code sys_usbd_isochronous_transfer_data(u32 handle, u32 id_pipe, vm::ptr<UsbDeviceIsoRequest> iso_request)
{ {
sys_usbd.todo("sys_usbd_isochronous_transfer_data(handle=0x%x, id_pipe=0x%x, iso_request=*0x%x)", handle, id_pipe, iso_request); sys_usbd.todo("sys_usbd_isochronous_transfer_data(handle=0x%x, id_pipe=0x%x, iso_request=*0x%x)", handle, id_pipe, iso_request);
@ -763,10 +763,10 @@ s32 sys_usbd_isochronous_transfer_data(u32 handle, u32 id_pipe, vm::ptr<UsbDevic
pipe.device->isochronous_transfer(&transfer); pipe.device->isochronous_transfer(&transfer);
// returns an identifier specific to the transfer // returns an identifier specific to the transfer
return id_transfer; return not_an_error(id_transfer);
} }
s32 sys_usbd_get_transfer_status(u32 handle, u32 id_transfer, u32 unk1, vm::ptr<u32> result, vm::ptr<u32> count) error_code sys_usbd_get_transfer_status(u32 handle, u32 id_transfer, u32 unk1, vm::ptr<u32> result, vm::ptr<u32> count)
{ {
sys_usbd.trace("sys_usbd_get_transfer_status(handle=0x%x, id_transfer=0x%x, unk1=0x%x, result=*0x%x, count=*0x%x)", handle, id_transfer, unk1, result, count); sys_usbd.trace("sys_usbd_get_transfer_status(handle=0x%x, id_transfer=0x%x, unk1=0x%x, result=*0x%x, count=*0x%x)", handle, id_transfer, unk1, result, count);
@ -785,7 +785,7 @@ s32 sys_usbd_get_transfer_status(u32 handle, u32 id_transfer, u32 unk1, vm::ptr<
return CELL_OK; return CELL_OK;
} }
s32 sys_usbd_get_isochronous_transfer_status(u32 handle, u32 id_transfer, u32 unk1, vm::ptr<UsbDeviceIsoRequest> request, vm::ptr<u32> result) error_code sys_usbd_get_isochronous_transfer_status(u32 handle, u32 id_transfer, u32 unk1, vm::ptr<UsbDeviceIsoRequest> request, vm::ptr<u32> result)
{ {
sys_usbd.todo("sys_usbd_get_isochronous_transfer_status(handle=0x%x, id_transfer=0x%x, unk1=0x%x, request=*0x%x, result=*0x%x)", handle, id_transfer, unk1, request, result); sys_usbd.todo("sys_usbd_get_isochronous_transfer_status(handle=0x%x, id_transfer=0x%x, unk1=0x%x, request=*0x%x, result=*0x%x)", handle, id_transfer, unk1, request, result);
@ -804,19 +804,19 @@ s32 sys_usbd_get_isochronous_transfer_status(u32 handle, u32 id_transfer, u32 un
return CELL_OK; return CELL_OK;
} }
s32 sys_usbd_get_device_location() error_code sys_usbd_get_device_location()
{ {
sys_usbd.todo("sys_usbd_get_device_location()"); sys_usbd.todo("sys_usbd_get_device_location()");
return CELL_OK; return CELL_OK;
} }
s32 sys_usbd_send_event() error_code sys_usbd_send_event()
{ {
sys_usbd.todo("sys_usbd_send_event()"); sys_usbd.todo("sys_usbd_send_event()");
return CELL_OK; return CELL_OK;
} }
s32 sys_usbd_event_port_send(u32 handle, u64 arg1, u64 arg2, u64 arg3) error_code sys_usbd_event_port_send(u32 handle, u64 arg1, u64 arg2, u64 arg3)
{ {
sys_usbd.warning("sys_usbd_event_port_send(handle=0x%x, arg1=0x%x, arg2=0x%x, arg3=0x%x)", handle, arg1, arg2, arg3); sys_usbd.warning("sys_usbd_event_port_send(handle=0x%x, arg1=0x%x, arg2=0x%x, arg3=0x%x)", handle, arg1, arg2, arg3);
@ -832,19 +832,19 @@ s32 sys_usbd_event_port_send(u32 handle, u64 arg1, u64 arg2, u64 arg3)
return CELL_OK; return CELL_OK;
} }
s32 sys_usbd_allocate_memory() error_code sys_usbd_allocate_memory()
{ {
sys_usbd.todo("sys_usbd_allocate_memory()"); sys_usbd.todo("sys_usbd_allocate_memory()");
return CELL_OK; return CELL_OK;
} }
s32 sys_usbd_free_memory() error_code sys_usbd_free_memory()
{ {
sys_usbd.todo("sys_usbd_free_memory()"); sys_usbd.todo("sys_usbd_free_memory()");
return CELL_OK; return CELL_OK;
} }
s32 sys_usbd_get_device_speed() error_code sys_usbd_get_device_speed()
{ {
sys_usbd.todo("sys_usbd_get_device_speed()"); sys_usbd.todo("sys_usbd_get_device_speed()");
return CELL_OK; return CELL_OK;

View File

@ -58,27 +58,27 @@ struct UsbDeviceIsoRequest
be_t<u16> packets[8]; be_t<u16> packets[8];
}; };
s32 sys_usbd_initialize(vm::ptr<u32> handle); error_code sys_usbd_initialize(vm::ptr<u32> handle);
s32 sys_usbd_finalize(ppu_thread& ppu, u32 handle); error_code sys_usbd_finalize(ppu_thread& ppu, u32 handle);
s32 sys_usbd_get_device_list(u32 handle, vm::ptr<UsbInternalDevice> device_list, u32 max_devices); error_code sys_usbd_get_device_list(u32 handle, vm::ptr<UsbInternalDevice> device_list, u32 max_devices);
s32 sys_usbd_get_descriptor_size(u32 handle, u32 device_handle); error_code sys_usbd_get_descriptor_size(u32 handle, u32 device_handle);
s32 sys_usbd_get_descriptor(u32 handle, u32 device_handle, vm::ptr<void> descriptor, u32 desc_size); error_code sys_usbd_get_descriptor(u32 handle, u32 device_handle, vm::ptr<void> descriptor, u32 desc_size);
s32 sys_usbd_register_ldd(u32 handle, vm::ptr<char> s_product, u16 slen_product); error_code sys_usbd_register_ldd(u32 handle, vm::ptr<char> s_product, u16 slen_product);
s32 sys_usbd_unregister_ldd(); error_code sys_usbd_unregister_ldd();
s32 sys_usbd_open_pipe(u32 handle, u32 device_handle, u32 unk1, u64 unk2, u64 unk3, u32 endpoint, u64 unk4); error_code sys_usbd_open_pipe(u32 handle, u32 device_handle, u32 unk1, u64 unk2, u64 unk3, u32 endpoint, u64 unk4);
s32 sys_usbd_open_default_pipe(u32 handle, u32 device_handle); error_code sys_usbd_open_default_pipe(u32 handle, u32 device_handle);
s32 sys_usbd_close_pipe(u32 handle, u32 pipe_handle); error_code sys_usbd_close_pipe(u32 handle, u32 pipe_handle);
s32 sys_usbd_receive_event(ppu_thread& ppu, u32 handle, vm::ptr<u64> arg1, vm::ptr<u64> arg2, vm::ptr<u64> arg3); error_code sys_usbd_receive_event(ppu_thread& ppu, u32 handle, vm::ptr<u64> arg1, vm::ptr<u64> arg2, vm::ptr<u64> arg3);
s32 sys_usbd_detect_event(); error_code sys_usbd_detect_event();
s32 sys_usbd_attach(u32 handle); error_code sys_usbd_attach(u32 handle);
s32 sys_usbd_transfer_data(u32 handle, u32 id_pipe, vm::ptr<u8> buf, u32 buf_size, vm::ptr<UsbDeviceRequest> request, u32 type_transfer); error_code sys_usbd_transfer_data(u32 handle, u32 id_pipe, vm::ptr<u8> buf, u32 buf_size, vm::ptr<UsbDeviceRequest> request, u32 type_transfer);
s32 sys_usbd_isochronous_transfer_data(u32 handle, u32 id_pipe, vm::ptr<UsbDeviceIsoRequest> iso_request); error_code sys_usbd_isochronous_transfer_data(u32 handle, u32 id_pipe, vm::ptr<UsbDeviceIsoRequest> iso_request);
s32 sys_usbd_get_transfer_status(u32 handle, u32 id_transfer, u32 unk1, vm::ptr<u32> result, vm::ptr<u32> count); error_code sys_usbd_get_transfer_status(u32 handle, u32 id_transfer, u32 unk1, vm::ptr<u32> result, vm::ptr<u32> count);
s32 sys_usbd_get_isochronous_transfer_status(u32 handle, u32 id_transfer, u32 unk1, vm::ptr<UsbDeviceIsoRequest> request, vm::ptr<u32> result); error_code sys_usbd_get_isochronous_transfer_status(u32 handle, u32 id_transfer, u32 unk1, vm::ptr<UsbDeviceIsoRequest> request, vm::ptr<u32> result);
s32 sys_usbd_get_device_location(); error_code sys_usbd_get_device_location();
s32 sys_usbd_send_event(); error_code sys_usbd_send_event();
s32 sys_usbd_event_port_send(u32 handle, u64 arg1, u64 arg2, u64 arg3); error_code sys_usbd_event_port_send(u32 handle, u64 arg1, u64 arg2, u64 arg3);
s32 sys_usbd_allocate_memory(); error_code sys_usbd_allocate_memory();
s32 sys_usbd_free_memory(); error_code sys_usbd_free_memory();
s32 sys_usbd_get_device_speed(); error_code sys_usbd_get_device_speed();
s32 sys_usbd_register_extra_ldd(u32 handle, vm::ptr<char> s_product, u16 slen_product, u16 id_vendor, u16 id_product_min, u16 id_product_max); error_code sys_usbd_register_extra_ldd(u32 handle, vm::ptr<char> s_product, u16 slen_product, u16 id_vendor, u16 id_product_min, u16 id_product_max);