/* ARGSUSED - this line tells the compiler to not generate compiler warnings * for unused arguments */ Int smain(Int argc, Char * argv[]) { Int scratchId1 = 0; Int scratchId2 = 0; IALG_Status algStatus; IALG_Fxns * algFxns = &DUMRES_TI_IALG; IRES_Fxns * resFxns = &DUMRES_TI_IRES; DUMRES_TI_Handle algHandle1 = NULL; DUMRES_TI_Handle algHandle2 = NULL; EDMA3_RM_Handle rmHandle = NULL; EDMA3_RM_ResDesc resObj; MEM_Stat stat; Bool retVal; Int i = 0; /* * Create 2 instances of the algorithm using "algFxns" */ algHandle1 = (DUMRES_TI_Handle)DSKT2_createAlg(scratchId1, (IALG_Fxns *)algFxns, NULL,(IALG_Params *)NULL); if (algHandle1 == NULL) { printf("Alg creation failed for algHandle1\n"); return -1; } algHandle2 = (DUMRES_TI_Handle)DSKT2_createAlg(scratchId2, (IALG_Fxns *)algFxns, NULL,(IALG_Params *)NULL); if (algHandle2 == NULL) { printf("Alg creation failed for algHandle2\n"); return -1; } /* Assign resources to the algorithm */ if (IRES_OK != RMAN_assignResources((IALG_Handle)algHandle1, resFxns, scratchId1)) { GT_0trace(ti_sdo_fc_rman_examples_scratchEdma3_GTMask, GT_7CLASS, "Assign Resource Failed \n"); goto AppEnd1; } /* * Activate the Algorithm */ DSKT2_activateAlg(scratchId1, (IALG_Handle)algHandle1); /* * Activate All Resources */ RMAN_activateAllResources((IALG_Handle)algHandle1, resFxns, scratchId1); /* * Use IALG interfaces to do something */ DSKT2_controlAlg((IALG_Handle)algHandle1, (IALG_Cmd)NULL, &algStatus); /* Assign resources to the second algorithm */ if (IRES_OK != RMAN_assignResources((IALG_Handle)algHandle2, resFxns, scratchId2)) { printf("Assign Resource Failed \n"); return -1; } /* * Deactivate All Resources */ RMAN_deactivateAllResources((IALG_Handle)algHandle1, resFxns, scratchId1); /* * Deactivate algorithm */ DSKT2_deactivateAlg(scratchId1, (IALG_Handle)algHandle1); /* * Activate the Algorithm */ DSKT2_activateAlg(scratchId2, (IALG_Handle)algHandle2); /* * Activate All Resources */ RMAN_activateAllResources((IALG_Handle)algHandle2, resFxns, scratchId2); /* * Free resources assigned to this algorihtm */ if (IRES_OK != RMAN_freeResources((IALG_Handle)(algHandle1), resFxns, scratchId1)) { printf("Free Resource Failed \n"); return -1; } /* * Acquire the EDMA3 handle first */ rmHandle = EDMA3_getResourceManager(NULL, -1); if (NULL == rmHandle) { printf("Error obtaining SYSTEM resource Manager Handle \n"); return (-1); } resObj.resId = 151; resObj.type = EDMA3_RM_RES_PARAM_SET; if (EDMA3_RM_SOK != EDMA3_RM_allocResource(rmHandle, &resObj)) { printf("Could not allocate this resource, as it is already owned by " "the algorithm\n"); } resObj.resId = 256; if (EDMA3_RM_SOK != EDMA3_RM_allocResource(rmHandle, &resObj)) { printf("Error, could not allocate resource %d\n" "ERROR for 6467, OK for 6446\n", resObj.resId); } if (EDMA3_RM_SOK != EDMA3_releaseResourceManager(NULL, -1)) { printf("Error releasing system resource manager handle\n"); } /* * Deactivate All Resources */ RMAN_deactivateAllResources((IALG_Handle)algHandle2, resFxns, scratchId2); /* * Deactivate algorithm */ DSKT2_deactivateAlg(scratchId2, (IALG_Handle)algHandle2); /* * Free resources assigned to this algorihtm */ if (IRES_OK != RMAN_freeResources((IALG_Handle)(algHandle2), resFxns, scratchId2)) { printf("Free Resource Failed \n"); return -1; } AppEnd1: /* * Free instance of the algorithm created */ DSKT2_freeAlg(scratchId1, (IALG_Handle)algHandle1); /* * Free instance of the algorithm created */ DSKT2_freeAlg(scratchId2, (IALG_Handle)algHandle2); /* * Unregister the protocol */ if (IRES_OK != RMAN_unregister(&IRESMAN_EDMA3CHAN)) { printf("Unregister Protocol Failed \n"); return -1; } for (i = 0; i < MAXMEMSEGMENTS; i++) { retVal = MEM_stat(i, &stat); if (!retVal) { GT_assert(ti_sdo_fc_rman_examples_scratchEdma3_GTMask, memStat[i].size == 0); } else { if (memStat[i].used != stat.used) { GT_3trace(ti_sdo_fc_rman_examples_scratchEdma3_GTMask, GT_7CLASS, "MEM seg [%d]: orig used = 0x%x, " "curr used = 0x%x", i, memStat[i].used, stat.used); return (-1); } } } RMAN_exit(); return (0); }
/* ARGSUSED - this line tells the compiler to not generate compiler warnings * for unused arguments */ Int smain(UArg arg0, UArg arg1) { IRES_Status status; Int size = 0; Int scratchId = 2; IALG_Status algStatus; IALG_Fxns * algFxns = &DUMRES_TI_IALG; IRES_Fxns * resFxns = &DUMRES_TI_IRES; DUMRES_TI_Handle dumHandle = NULL; status = RMAN_init(); if (IRES_OK != status) { System_abort("RMAN initialization Failed \n"); } /* * Create an instance of the algorithm using "algFxns" */ dumHandle = (DUMRES_TI_Handle)DSKT2_createAlg(scratchId, (IALG_Fxns *)algFxns, NULL, (IALG_Params *)NULL); if (dumHandle == NULL) { System_abort("Alg creation failed \n"); } /* Create an instance of an algorithm that implements IALG and IRES_Fxns */ status = RMAN_assignResources((IALG_Handle)dumHandle, resFxns, scratchId); if (status != IRES_OK) { System_printf("Assign Resource Failed [%d]\n", status); System_abort("Aborting...\n"); } /* Activate the Algorithm */ DSKT2_activateAlg(scratchId, (IALG_Handle)dumHandle); /* Activate All Resources */ RMAN_activateAllResources((IALG_Handle)dumHandle, resFxns, scratchId); /* Use IALG interfaces to do something */ DSKT2_controlAlg((IALG_Handle)dumHandle, (IALG_Cmd)NULL, &algStatus); /* Deactivate All Resources */ RMAN_deactivateAllResources((IALG_Handle)dumHandle, resFxns, scratchId); /* Deactivate algorithm */ DSKT2_deactivateAlg(scratchId, (IALG_Handle)dumHandle); /* Free resources assigned to this algorihtm */ status = RMAN_freeResources((IALG_Handle)(dumHandle), resFxns, scratchId); if (status != IRES_OK) { System_printf("Free Resource Failed [%d]\n", status); System_abort("Aborting...\n"); } /* Free instance of the algorithm created */ DSKT2_freeAlg(scratchId, (IALG_Handle)dumHandle); RMAN_exit(); return (1); }