

// %CopyrightBegin%
// 
// Copyright Ericsson AB 2003-2016. All Rights Reserved.
// 
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions 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 );
    };

};
