1094332d3Sopenharmony_ci/* 2094332d3Sopenharmony_ci * Copyright (c) 2021 Huawei Device Co., Ltd. 3094332d3Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 4094332d3Sopenharmony_ci * you may not use this file except in compliance with the License. 5094332d3Sopenharmony_ci * You may obtain a copy of the License at 6094332d3Sopenharmony_ci * 7094332d3Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 8094332d3Sopenharmony_ci * 9094332d3Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 10094332d3Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 11094332d3Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12094332d3Sopenharmony_ci * See the License for the specific language governing permissions and 13094332d3Sopenharmony_ci * limitations under the License. 14094332d3Sopenharmony_ci */ 15094332d3Sopenharmony_ci 16094332d3Sopenharmony_ci#ifndef USB_IO_MANAGE_H 17094332d3Sopenharmony_ci#define USB_IO_MANAGE_H 18094332d3Sopenharmony_ci 19094332d3Sopenharmony_ci#include "usb_ddk_device.h" 20094332d3Sopenharmony_ci#include "usb_ddk_request.h" 21094332d3Sopenharmony_ci#include "usb_interface_pool.h" 22094332d3Sopenharmony_ci#include "usb_session.h" 23094332d3Sopenharmony_ci 24094332d3Sopenharmony_ci#define USB_IO_SEND_PROCESS_STACK_SIZE 100000 25094332d3Sopenharmony_ci#define USB_IO_RECEIVE_PROCESS_STACK_SIZE 100000 26094332d3Sopenharmony_ci#define USB_IO_SUBMIT_RETRY_TIME_CNT 3 27094332d3Sopenharmony_ci#define USB_IO_SLEEP_MS_TIME 100 28094332d3Sopenharmony_ci#define USB_IO_STOP_WAIT_MAX_TIME 3 29094332d3Sopenharmony_ci 30094332d3Sopenharmony_ciHDF_STATUS UsbIoCreateQueue(const struct UsbInterfacePool *interfacePool); 31094332d3Sopenharmony_ciHDF_STATUS UsbIoDestroyQueue(const struct UsbInterfacePool *interfacePool); 32094332d3Sopenharmony_ciint32_t UsbIoSendRequest(const struct UsbMessageQueue *msgQueue, const struct UsbHostRequest *request); 33094332d3Sopenharmony_ciHDF_STATUS UsbIoGetRequest(const struct UsbMessageQueue *msgQueue, struct UsbHostRequest **request); 34094332d3Sopenharmony_ciHDF_STATUS UsbIoStart(struct UsbInterfacePool *interfacePool); 35094332d3Sopenharmony_ciHDF_STATUS UsbIoStop(struct UsbInterfacePool *interfacePool); 36094332d3Sopenharmony_ciHDF_STATUS UsbIoRecvProcessStop(struct UsbInterfacePool *interfacePool); 37094332d3Sopenharmony_civoid UsbIoSetRequestCompletionInfo(const void *requestArg); 38094332d3Sopenharmony_ci 39094332d3Sopenharmony_ci#endif /* USB_IO_MANAGE_H */ 40