MATLAB: Converting mxArrays to libpointer in MATLAB block

code generationloadlibraryMATLABmatlab codersimulink

I have an extrinsic function – foo(), with a prototype similar to below:-
[uint32, voidPtr, uint32Ptr] = foo(voidPtr, uint32Ptr);
I have created a uint32 pointer using libpointer and passed it to the calllib function call of foo(). Now code generation causes these types to be converted to mxArrays. So to convert these mxArrays to known types, we assign them to pre-defined variables of the desired type. But for me, the desired type is uint32Ptr. How do I pre-define a variable of type uint32Ptr as the result of libpointer is also an mxArray? Or, is there a way to declare a variable of type uint32?

Best Answer

I would recommend that you move all creation/extraction of libpointers also inside an extrinsic function, and have only builtin (MATLAB) types at the interface, so that you can pre-define them appropriately in your top-level function.