|
From: | Claude Marinier |
Subject: | [Chicken-users] call Chicken Scheme from C and pass a bytevector |
Date: | Thu, 27 Jun 2013 13:07:52 -0400 (EDT) |
User-agent: | Alpine 2.02 (DEB 1266 2009-07-14) |
Hi,A function in pcap-interface.c calls Chicken Scheme. It builds a vector containing a bunch of things, e.g. C_fix(ethtype), and the source and destination addresses as vectors. The scheme code converts the address vectors to u8vector (u16vector for IPv6). This is a lot of work: just under 20% of CPU time is spent in vector->u8vector.
If I could create a blob in C and pass it to scheme, the scheme code could use blob->u8vector/shared and blob->u16vector/shared which would achieve the same result with much less work.
What is the recommended way to pass a blob to scheme from C? Is there a way to create a u8vector or u16vector directly in C? Thank you. -- Claude Marinier
[Prev in Thread] | Current Thread | [Next in Thread] |