aboutsummaryrefslogtreecommitdiff
path: root/base/runtime/procs_darwin.odin
blob: 497978a760e865e717a6b32d8dca4a4f747a864c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
//+private
package runtime

foreign import "system:Foundation.framework"

import "base:intrinsics"

objc_id :: ^intrinsics.objc_object
objc_Class :: ^intrinsics.objc_class
objc_SEL :: ^intrinsics.objc_selector

foreign Foundation {
	objc_lookUpClass :: proc "c" (name: cstring) -> objc_Class ---
	sel_registerName :: proc "c" (name: cstring) -> objc_SEL ---
	objc_allocateClassPair :: proc "c" (superclass: objc_Class, name: cstring, extraBytes: uint) -> objc_Class ---

	objc_msgSend        :: proc "c" (self: objc_id, op: objc_SEL, #c_vararg args: ..any) ---
	objc_msgSend_fpret  :: proc "c" (self: objc_id, op: objc_SEL, #c_vararg args: ..any) -> f64 ---
	objc_msgSend_fp2ret :: proc "c" (self: objc_id, op: objc_SEL, #c_vararg args: ..any) -> complex128 ---
	objc_msgSend_stret  :: proc "c" (self: objc_id, op: objc_SEL, #c_vararg args: ..any) ---
}