Lines Matching defs:acm

51 static int32_t SerialBegin(struct AcmDevice * const acm);
53 static int32_t AcmDbAlloc(struct AcmDevice * const acm)
60 db = &acm->db[dbn];
73 static int32_t AcmDbIsAvail(struct AcmDevice * const acm)
78 n -= acm->db[i].use;
82 static UsbInterfaceHandle *InterfaceIdToHandle(const struct AcmDevice *acm, uint8_t id)
88 devHandle = acm->ctrDevHandle;
90 for (int32_t i = 0; i < acm->interfaceCnt; i++) {
91 if (acm->iface[i]->info.interfaceIndex == id) {
92 devHandle = acm->devHandle[i];
100 static int32_t AcmStartDb(struct AcmDevice *acm, struct AcmDb *db, struct UsbPipeInfo *pipe)
102 (void)acm;
113 static int32_t AcmDataBufAlloc(struct AcmDevice * const acm)
117 for (db = &acm->db[0], i = 0; i < TEST_CYCLE; i++, db++) {
118 db->buf = OsalMemCalloc(acm->dataSize);
128 memset_s(db->buf, acm->dataSize, 'a', acm->dataSize);
129 db->instance = acm;
180 static int32_t SerialBegin(struct AcmDevice *acm)
182 uint32_t size = acm->dataSize;
184 if (AcmDbIsAvail(acm) != 0) {
185 dbn = AcmDbAlloc(acm);
194 struct AcmDb *db = &acm->db[dbn];
195 db->len = acm->dataSize;
196 int32_t ret = AcmStartDb(acm, db, NULL);
204 static struct UsbInterface *GetUsbInterfaceById(const struct AcmDevice *acm, uint8_t interfaceIndex)
206 return UsbClaimInterface(acm->session, acm->busNum, acm->devAddr, interfaceIndex);
210 const struct AcmDevice *acm, uint8_t interfaceIndex, UsbPipeType pipeType, UsbPipeDirection pipeDirection)
215 info = &acm->ctrIface->info;
216 interfaceHandle = acm->ctrDevHandle;
218 info = &acm->iface[interfaceIndex]->info;
219 interfaceHandle = InterfaceIdToHandle(acm, info->interfaceIndex);
242 static struct UsbPipeInfo *GetPipe(const struct AcmDevice *acm, UsbPipeType pipeType, UsbPipeDirection pipeDirection)
245 if (acm == NULL) {
249 for (i = 0; i < acm->interfaceCnt; i++) {
251 if (!acm->iface[i]) {
254 p = EnumePipe(acm, i, pipeType, pipeDirection);
303 struct AcmDevice *acm = NULL;
327 acm = (struct AcmDevice *)OsalMemCalloc(sizeof(*acm));
328 if (acm == NULL) {
332 acm->busNum = busNum;
333 acm->devAddr = devAddr;
334 acm->interfaceCnt = 1;
335 acm->interfaceIndex[0] = ifaceNum;
337 return acm;
340 static int32_t InitUsbDdk(struct AcmDevice *acm)
349 for (int32_t i = 0; i < acm->interfaceCnt; i++) {
350 acm->iface[i] = GetUsbInterfaceById((const struct AcmDevice *)acm, acm->interfaceIndex[i]);
353 for (int32_t i = 0; i < acm->interfaceCnt; i++) {
354 if (acm->iface[i]) {
355 acm->devHandle[i] = UsbOpenInterface(acm->iface[i]);
356 if (acm->devHandle[i] == NULL) {
365 acm->dataPipe = GetPipe(acm, USB_PIPE_TYPE_BULK, USB_PIPE_DIRECTION_OUT);
367 acm->dataPipe = GetPipe(acm, USB_PIPE_TYPE_BULK, USB_PIPE_DIRECTION_IN);
369 if (acm->dataPipe == NULL) {
373 acm->dataSize = TEST_LENGTH;
374 if (AcmDataBufAlloc(acm) < 0) {
381 static int32_t FillRequest(struct AcmDevice * const acm)
384 struct AcmDb *snd = &(acm->db[i]);
385 snd->request = UsbAllocRequest(InterfaceIdToHandle(acm, acm->dataPipe->interfaceId), 0, acm->dataSize);
390 acm->transmitting++;
392 parmas.interfaceId = acm->dataPipe->interfaceId;
393 parmas.pipeAddress = acm->dataPipe->pipeAddress;
394 parmas.pipeId = acm->dataPipe->pipeId;
400 parmas.dataReq.length = acm->dataSize;
402 parmas.dataReq.directon = (acm->dataPipe->pipeDirection >> USB_PIPE_DIR_OFFSET) & 0x1;
403 snd->dbNum = acm->transmitting;
404 rc = UsbFillRequest(snd->request, InterfaceIdToHandle(acm, acm->dataPipe->interfaceId), &parmas);
419 struct AcmDevice *acm = NULL;
421 acm = CheckParam(argc, (const char **)argv);
422 if (acm == NULL) {
427 ret = InitUsbDdk(acm);
432 ret = FillRequest(acm);
449 if (SerialBegin(acm) != HDF_SUCCESS) {
460 printf("please check whether usb drv so is existing or not,like acm,ecm,if not, remove it and test again!\n");