

// %CopyrightBegin%
// 
// Copyright Ericsson AB 2003-2010. All Rights Reserved.
// 
// The contents of this file are subject to the Erlang Public License,
// Version 1.1, (the "License"); you may not use this file except in
// compliance with the License. You should have received a copy of the
// Erlang Public License along with this software. If not, it can be
// retrieved online at http://www.erlang.org/.
// 
// Software distributed under the License is distributed on an "AS IS"
// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
// the License for the specific language governing rights and limitations
// under the License.
// 
// %CopyrightEnd%
module m {
    
    struct s {
	long long ll_x;
	unsigned long long ull_x;
	long long ll_y;
	long long ll_z;
	unsigned long long ull_z;

	long l_x;
	unsigned long ul_x;
	long l_y;
	long l_z;
	unsigned long ul_z;
	
	short s_x;
	unsigned short us_x;
	short s_y;
	short s_z;
	unsigned short us_z;
	
	char c_x;
	char c_y;
	char c_z;
        
	wchar wc_x;
	wchar wc_y;
	wchar wc_z;
    };
    
    interface i {
	long long marshal_ll( in s a, in short b );
	unsigned long long marshal_ull( in s a, in short b );
	
	long marshal_l( in s a, in short b );
	unsigned long marshal_ul( in s a, in short b );
	
	short marshal_s( in s a, in short b );
	unsigned short marshal_us( in s a, in short b );
	
	char marshal_c( in s a, in short b );
	wchar marshal_wc( in s a, in short b );
        
        string strcat( in string a, in string b );
        
	any marshal_any_3( in any x, in any y, in short b );
	any marshal_any_2( in any a, in short b );
    };

};
