diff options
Diffstat (limited to 'src/include/gm/method.h')
-rw-r--r-- | src/include/gm/method.h | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/include/gm/method.h b/src/include/gm/method.h new file mode 100644 index 0000000..ac6ab0e --- /dev/null +++ b/src/include/gm/method.h @@ -0,0 +1,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 |