On 2/11/2011 6:02 PM, Andre Zepezauer wrote: > On Fri, 2011-02-11 at 15:16 -0600, Douglas E. Engert wrote: >> >> On 2/11/2011 3:02 PM, Andre Zepezauer wrote: >>> On Fri, 2011-02-11 at 22:25 +0200, Martin Paljak wrote: >>>>>>>> Furthermore, any cardmod adjustments can be implemented and isolated >>>>>>>> with ifdef-s, >>>>>>> >>>>>>> The only #ifdef ENABLED_CARDMOD left is in ctx, and that could easily be >>>>>>> removed as it tests the app_name for "cardmod" (The cardmod/Makefile.am >>>>>>> has one to compile or not.) That test for the app_name is needed today >>>>>>> because of the way the readers are initialized, and the cardmod looks >>>>>>> like a separate driver. This could change if the mods were merged better >>>>>>> in reader-pcsc.c >>>>>> >>>>>> As you said above, "The cardmod modifications to >>>>>> reader-pcsc for the most part turn off all these features, so they don't >>>>>> get accidentally executed and cause problems.". >>>>>> >>>>>> >>>>>> #ifdef-s in reader-pcsc.c are OK to assure those limitations. >>>>>> But those ifdef-s only should exist in reader-pcsc.c, as the only reader >>>>>> driver the minidriver will know about is the pcsc driver. And to make it >>>>>> very sure, if the codebase is compiled to produce minidriver DLL, the >>>>>> extra ifdef-s will guarantee that those restrictions are enforced >>>>>> (actually it should be assured by the minidriver code that nothing gets >>>>>> called that would "confuse" reader-pcsc.c) >>>>>> >>>>> >>>>> I would still assume that the first thing a combined driver would do >>>>> would be to set a "use_provided_readers" or "cardmod_mode" flag so >>>>> "#ifdef"s are not used, but "if" statements are. >>>>> >>>>> This would allow the same build to be used for both cardmod and pkcs#11. >>>> >>>> If-s should suffice, I assume the same. Eventually #ifdef-s and a separate >>>> compile could probably allow to reduce the overall binary dll size even >>>> more. >>> >>> BTW: There was a _standalone_ reader-cardmod.c proposed on Monday. It >>> uses the 'init' function to pass in the handles. Making 'init' a stub >>> and using its body for the new 'use_reader' function should be enough to >>> make it work with current trunk. >> >> Have you tried this? >> >>> >>> The only thing that could be shared with the original reader-pcsc.c is >>> 'transmit'. And even that could be re-written from scratch if closer >>> coupling to the underlying platform is required. > > See attachment for a more compact implementation of 'transmit'.
Can you please try these modifications on your own systems. I appreciate your enthusiasm to write code, but debugging and modifing are more then half the process. -- Douglas E. Engert <deeng...@anl.gov> Argonne National Laboratory 9700 South Cass Avenue Argonne, Illinois 60439 (630) 252-5444 _______________________________________________ opensc-devel mailing list opensc-devel@lists.opensc-project.org http://www.opensc-project.org/mailman/listinfo/opensc-devel