|
|
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
1.1.1.2 ! root 20: the Free Software Foundation, 59 Temple Place - Suite 330,
! 21: Boston, MA 02111-1307, USA. */
1.1 root 22:
23: /* As a special exception, if you link this library with files
24: compiled with GCC to produce an executable, this does not cause
25: the resulting executable to be covered by the GNU General Public License.
26: This exception does not however invalidate any other reasons why
27: the executable file might be covered by the GNU General Public License. */
28:
29: #ifndef __encoding_INCLUDE_GNU
30: #define __encoding_INCLUDE_GNU
31:
32: #include <ctype.h>
33: #include "objc/objc-api.h"
34:
35: #define _C_CONST 'r'
36: #define _C_IN 'n'
37: #define _C_INOUT 'N'
38: #define _C_OUT 'o'
39: #define _C_BYCOPY 'O'
40: #define _C_ONEWAY 'V'
41:
42: #define _F_CONST 0x01
43: #define _F_IN 0x01
44: #define _F_OUT 0x02
45: #define _F_INOUT 0x03
46: #define _F_BYCOPY 0x04
47: #define _F_ONEWAY 0x08
48:
49:
50: int objc_aligned_size (const char* type);
51: int objc_sizeof_type (const char* type);
52: int objc_alignof_type (const char* type);
53: int objc_aligned_size (const char* type);
54: int objc_promoted_size (const char* type);
55: const char* objc_skip_type_qualifiers (const char* type);
56: const char* objc_skip_typespec (const char* type);
57: const char* objc_skip_offset (const char* type);
58: const char* objc_skip_argspec (const char* type);
59: int method_get_number_of_arguments (struct objc_method*);
60: int method_get_size_of_arguments (struct objc_method*);
61:
62: char* method_get_first_argument (struct objc_method*,
63: arglist_t argframe,
64: const char** type);
65: char* method_get_next_argument (arglist_t argframe,
66: const char **type);
67: char* method_get_nth_argument (struct objc_method* m,
68: arglist_t argframe,
69: int arg,
70: const char **type);
71:
72: unsigned objc_get_type_qualifiers (const char* type);
73:
74:
75: #endif /* __encoding_INCLUDE_GNU */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.