summaryrefslogtreecommitdiff
path: root/src/include/gm/method.h
blob: ac6ab0e135426906f7459df7cd153f464ba93edf (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#ifndef DEF_METHOD_H
#define DEF_METHOD_H

#define MP(r, a, b, c) (((r << 6) | (a << 4) | (b << 2) | c) << 24)

/* 			****** FORMAT FOR #define NAMES : ******
 *  	M_<method_name>_<ret><param1><param2><param3>
 *  	where ret, param1, param2 and param3 are one of the following :
 *  	- V (0) : nothing (void)
 *  	- O (1) : object descriptor
 *  	- I (2) : int
 *  	- B (2) : int used as a boolean (0 = no, 1 = yes)
 *  	- M (3) : shared memory, only for parameters
 *  	- L (3) : int64 (long long), only for return values
 */

#define M_HANDLECHECK_BIVV	(1 | MP(2, 2, 0, 0))
#define M_HANDLECHECK_BMIV	(1 | MP(2, 3, 2, 0))
/* 	Checks if object handles that method. In case BIVV, only one method is checked for.
 *  In case BMIV, the [b] methods in shared memory [a] are checked, first one not found returns false. */

#endif