1 MODULE LinIconv ["libc.so.6"];
3 IMPORT Libc := LinLibc;
5 TYPE
6 PtrVoid = Libc.PtrVoid;
7 PtrSTR* = Libc.PtrSTR;
8 PtrLSTR* = POINTER TO ARRAY [untagged] OF CHAR;
9 size_t* = Libc.size_t;
11 iconv_t* = PtrVoid;
13 PROCEDURE [ccall] iconv_open* (tocode, fromcode: PtrSTR): iconv_t;
14 PROCEDURE [ccall] iconv_close* (cd: iconv_t): INTEGER;
16 PROCEDURE [ccall] iconv* (cd: iconv_t; VAR [nil] inbuf: PtrSTR; VAR inbytesleft: size_t; VAR [nil] outbuf: PtrSTR; VAR outbytesleft: size_t): size_t;
18 PROCEDURE [ccall] iconv_encode* ["iconv"] (cd: iconv_t; VAR [nil] inbuf: PtrLSTR; VAR inbytesleft: size_t; VAR [nil] outbuf: PtrSTR; VAR outbytesleft: size_t): size_t;
20 PROCEDURE [ccall] iconv_decode* ["iconv"] (cd: iconv_t; VAR [nil] inbuf: PtrSTR; VAR inbytesleft: size_t; VAR [nil] outbuf: PtrLSTR; VAR outbytesleft: size_t): size_t;
22 END LinIconv.