MCPcopy Create free account
hub / github.com/clMathLibraries/clFFT / clfftSetPlanCallback

Function clfftSetPlanCallback

src/library/accessors.cpp:770–836  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

768}
769
770clfftStatus clfftSetPlanCallback(clfftPlanHandle plHandle, const char* funcName,
771 const char* funcString, int localMemSize,
772 clfftCallbackType callbackType, cl_mem *userdata, int numUserdataBuffers)
773{
774 FFTRepo& fftRepo = FFTRepo::getInstance( );
775 FFTPlan* fftPlan = NULL;
776 lockRAII* planLock = NULL;
777
778 OPENCL_V( fftRepo.getPlan( plHandle, fftPlan, planLock ), _T( "fftRepo.getPlan failed" ) );
779 scopedLock sLock( *planLock, _T( "clfftSetPlanCallback" ) );
780
781 switch (callbackType)
782 {
783 case PRECALLBACK:
784 {
785 ARG_CHECK(funcName != NULL);
786 ARG_CHECK(funcString != NULL);
787 ARG_CHECK(numUserdataBuffers >= 0);
788
789 // We do not currently support multiple user data buffers
790 if( numUserdataBuffers > 1 )
791 return CLFFT_NOTIMPLEMENTED;
792
793 fftPlan->hasPreCallback = true;
794
795 fftPlan->preCallback.funcname = funcName;
796 fftPlan->preCallback.funcstring = funcString;
797 fftPlan->preCallback.localMemSize = (localMemSize > 0) ? localMemSize : 0;
798
799 cl_mem userdataBuf = NULL;
800
801 if (userdata)
802 userdataBuf = userdata[0];
803
804 fftPlan->precallUserData = userdataBuf;
805 }
806
807 break;
808 case POSTCALLBACK:
809 {
810 ARG_CHECK(funcName != NULL);
811 ARG_CHECK(funcString != NULL);
812 ARG_CHECK(numUserdataBuffers >= 0);
813
814 // We do not currently support multiple user data buffers
815 if( numUserdataBuffers > 1 )
816 return CLFFT_NOTIMPLEMENTED;
817
818 fftPlan->hasPostCallback = true;
819 fftPlan->postCallbackParam.funcname = funcName;
820 fftPlan->postCallbackParam.funcstring = funcString;
821 fftPlan->postCallbackParam.localMemSize = (localMemSize > 0) ? localMemSize : 0;
822
823 cl_mem userdataBuf = NULL;
824
825 if (userdata)
826 userdataBuf = userdata[0];
827

Calls 1

getPlanMethod · 0.80

Tested by 3

set_input_precallbackMethod · 0.68