Lines Matching defs:fnDevMgr

126 static int32_t CreatDev(const char *udcName, struct UsbFnDeviceDesc *des, struct UsbFnDeviceMgr *fnDevMgr)
135 fnDevMgr->fnDev.object.objectId = devCnt;
136 ret = sprintf_s(fnDevMgr->name, MAX_NAMELEN, "g%d", devCnt);
140 ret = strcpy_s(fnDevMgr->udcName, MAX_NAMELEN, udcName);
144 ret = fnOps->createDevice(udcName, fnDevMgr->name, des);
167 static int32_t AllocInterfaceAndFuncMgr(struct UsbFnDeviceMgr *fnDevMgr, struct UsbFnDeviceDesc *des)
178 fnDevMgr->numFunc++;
179 fnDevMgr->fnDev.numInterfaces += GetInterfaceNum(des->configs[i]->functions[j]->fsDescriptors);
182 if (fnDevMgr->fnDev.numInterfaces == 0) {
187 fnDevMgr->interfaceMgr = UsbFnMemCalloc(fnDevMgr->fnDev.numInterfaces * sizeof(struct UsbFnInterfaceMgr));
188 if (fnDevMgr->interfaceMgr == NULL) {
193 fnDevMgr->funcMgr = UsbFnMemCalloc(fnDevMgr->numFunc * sizeof(struct UsbFnFuncMgr));
194 if (fnDevMgr->funcMgr == NULL) {
196 UsbFnMemFree(fnDevMgr->interfaceMgr);
202 static int32_t StartThreadIo(struct UsbFnDeviceMgr *fnDevMgr);
208 struct UsbFnDeviceMgr *fnDevMgr = NULL;
214 fnDevMgr = UsbFnMemCalloc(sizeof(struct UsbFnDeviceMgr));
215 if (fnDevMgr == NULL) {
220 ret = CreatDev(udcName, des, fnDevMgr);
228 DListInsertTail(&fnDevMgr->fnDev.object.entry, &g_devEntry);
229 fnDevMgr->node = node;
230 fnDevMgr->des = des;
232 ret = AllocInterfaceAndFuncMgr(fnDevMgr, des);
234 return fnDevMgr;
240 CreateInterface(des, fnDevMgr);
241 fnDevMgr->running = true;
242 ret = StartThreadIo(fnDevMgr);
247 return fnDevMgr;
250 UsbFnMemFree(fnDevMgr->interfaceMgr);
251 UsbFnMemFree(fnDevMgr->funcMgr);
253 UsbFnMemFree(fnDevMgr);
264 struct UsbFnDeviceMgr *fnDevMgr = (struct UsbFnDeviceMgr *)fnDevice;
267 fnDevMgr->running = false;
268 while (!fnDevMgr->running) {
277 ret = OsalThreadDestroy(&fnDevMgr->thread);
282 ret = fnOps->delDevice(fnDevMgr->name, fnDevMgr->udcName, fnDevMgr->des);
290 if (fnDevMgr->funcMgr != NULL) {
291 UsbFnMemFree(fnDevMgr->funcMgr);
292 fnDevMgr->funcMgr = NULL;
294 if (fnDevMgr->interfaceMgr != NULL) {
295 UsbFnMemFree(fnDevMgr->interfaceMgr);
296 fnDevMgr->interfaceMgr = NULL;
298 if (fnDevMgr->node) {
299 UsbFnCfgMgrFreeUsbFnDeviceDesc(fnDevMgr->des);
300 fnDevMgr->des = NULL;
302 UsbFnMemFree(fnDevMgr);
303 fnDevMgr = NULL;
321 struct UsbFnDeviceMgr *fnDevMgr = (struct UsbFnDeviceMgr *)obj;
322 if (strcmp(udcName, fnDevMgr->udcName) == 0) {
323 return fnDevMgr;
335 struct UsbFnDeviceMgr *fnDevMgr = (struct UsbFnDeviceMgr *)fnDevice;
336 *devState = fnDevMgr->devState;
346 struct UsbFnDeviceMgr *fnDevMgr = (struct UsbFnDeviceMgr *)fnDevice;
347 if (interfaceIndex >= fnDevMgr->fnDev.numInterfaces) {
351 return &(fnDevMgr->interfaceMgr[interfaceIndex]);
553 static int32_t StartThreadIo(struct UsbFnDeviceMgr *fnDevMgr)
566 ret = OsalThreadCreate(&fnDevMgr->thread, (OsalThreadEntry)UsbFnEventProcess, (void *)fnDevMgr);
572 ret = OsalThreadStart(&fnDevMgr->thread, &threadCfg);