FFI について質問です。

C言語で次のような定義の関数があるとします。
int mkData (int** ppData)
これは引数でポインタのポインタを取り、内部でメモリ領域をいくらか確保し、
その先頭アドレスを *ppData に入れてます。
そして、エラーコードを戻り値で示します。

このような関数を haskell から使いたい場合、
foreign import 宣言はどのように書いたらいいのでしょうか。
つまり、引数に値を入れて返してくるタイプの関数の呼び方です。