jack sexton jack sexton - 1 year ago 122
Swift Question

calling a function defined in assembly from swift

I know in swift it is possible to interop with c using the

attr on a function in a swift module. Is there a way to do this with a symbol defined in an assembly file? I would like to make syscalls using Swift. This is why I'm asking.

Answer Source

Create the bridge header.h file and put the prototype of the function in that file.

For example your assembly code:

.globl _add // make it global so that others can find this symbol
_add: // int add(int a, int b)
  movl %esi, %eax
  addl %edi, %eax

Then in bridging header.h file

int add(int a, int b);


define this at the top of the swift module

@_silgen_name("add") func add(a: Int32, b: Int32) -> Int32

Then in swift you can use it:

let a = add(1, 2);
Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download