|
|
1.1 root 1: /* Encoding of types for Objective C.
2: Copyright (C) 1993 Free Software Foundation, Inc.
3:
4: Author: Kresten Krab Thorup
5:
6: This file is part of GNU CC.
7:
8: GNU CC is free software; you can redistribute it and/or modify
9: it under the terms of the GNU General Public License as published by
10: the Free Software Foundation; either version 2, or (at your option)
11: any later version.
12:
13: GNU CC is distributed in the hope that it will be useful,
14: but WITHOUT ANY WARRANTY; without even the implied warranty of
15: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16: GNU General Public License for more details.
17:
18: You should have received a copy of the GNU General Public License
19: along with GNU CC; see the file COPYING. If not, write to
20: the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
21:
22: /* As a special exception, if you link this library with files
23: compiled with GCC to produce an executable, this does not cause
24: the resulting executable to be covered by the GNU General Public License.
25: This exception does not however invalidate any other reasons why
26: the executable file might be covered by the GNU General Public License. */
27:
28: #ifndef __encoding_INCLUDE_GNU
29: #define __encoding_INCLUDE_GNU
30:
31: #include <ctype.h>
32: #include "objc/objc-api.h"
33:
34: #define _C_CONST 'r'
35: #define _C_IN 'n'
36: #define _C_INOUT 'N'
37: #define _C_OUT 'o'
38: #define _C_BYCOPY 'O'
39: #define _C_ONEWAY 'V'
40:
41: #define _F_CONST 0x01
42: #define _F_IN 0x01
43: #define _F_OUT 0x02
44: #define _F_INOUT 0x03
45: #define _F_BYCOPY 0x04
46: #define _F_ONEWAY 0x08
47:
48:
49: int objc_aligned_size (const char* type);
50: int objc_sizeof_type (const char* type);
51: int objc_alignof_type (const char* type);
52: int objc_aligned_size (const char* type);
53: int objc_promoted_size (const char* type);
54: const char* objc_skip_type_qualifiers (const char* type);
55: const char* objc_skip_typespec (const char* type);
56: const char* objc_skip_offset (const char* type);
57: const char* objc_skip_argspec (const char* type);
58: int method_get_number_of_arguments (struct objc_method*);
59: int method_get_size_of_arguments (struct objc_method*);
60:
61: char* method_get_first_argument (struct objc_method*,
62: arglist_t argframe,
63: const char** type);
64: char* method_get_next_argument (arglist_t argframe,
65: const char **type);
66: char* method_get_nth_argument (struct objc_method* m,
67: arglist_t argframe,
68: int arg,
69: const char **type);
70:
71: unsigned objc_get_type_qualifiers (const char* type);
72:
73:
74: #endif /* __encoding_INCLUDE_GNU */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.