<div dir="ltr"><div>Wait, your callback function is not function!</div><div><br></div><div>Jussi<br></div></div><br><div class="gmail_quote"><div dir="ltr">On Tue, Nov 13, 2018 at 2:11 AM Steve via User <<a href="mailto:user@lists.gambas-basic.org">user@lists.gambas-basic.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">I turned the pigipod_if2.c function set into a shared library that <br>
Gambas3 found acceptable for use with Extern statement.<br>
<br>
In general the functions work fine. The connected hardware is accessed <br>
and properly manipulated.<br>
<br>
However one of the functions needs a callback. When the callback is <br>
triggered a segmentation fault occurs. Generally this means to me that <br>
the address being passed is invalid and an attempt was made to go <br>
outside user space.<br>
<br>
The gambas documentation says it should work. Is there something special <br>
I need to do?<br>
<br>
tia<br>
<br>
Code below<br>
<br>
Library "/home/pi/Desktop/PigpioLib/libpigpiod_if2"<br>
<br>
Extern callback(aPi As Integer, user_gpio As Integer, int_edge As <br>
Integer, func As Pointer) As Integer<br>
<br>
Public sub main_load<br>
<br>
iGpio_CB_Left = callback(iPi, 23, 0, Callback_Left)<br>
End<br>
<br>
Public sub callback_left(igpio as integer, istate as integer, itick as <br>
integer)<br>
<br>
...<br>
<br>
End<br>
<br>
[System]<br>
Gambas=3.9.1<br>
OperatingSystem=Linux<br>
Kernel=4.14.50-v7+<br>
Architecture=armDistribution=debian 9.4<br>
Desktop=LXDE<br>
Theme=Qt5CTProxy<br>
Language=en_US.UTF-8<br>
Memory=927M<br>
<br>
[Libraries]<br>
Cairo=libcairo.so.2.11400.8<br>
Curl=libcurl.so.4.4.0<br>
DBus=libdbus-1.so.3.14.15<br>
GStreamer=libgstreamer-0.10.so.0.30.0<br>
GStreamer=<a href="http://libgstreamer-1.0.so" target="_blank">libgstreamer-1.0.so</a>.0.1004.0<br>
GTK+2=libgtk-x11-2.0.so.0.2400.31<br>
GTK+3=libgtk-3.so.0.2200.11<br>
OpenGL=libGL.so.1.2.0<br>
Poppler=libpoppler.so.64.0.0<br>
QT5=libQt5Core.so.5.7.1<br>
SDL=libSDL-1.2.so.0.11.4<br>
SQLite=libsqlite3.so.0.8.6<br>
<br>
[Environment]<br>
DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus<br>
DESKTOP_SESSION=LXDE-<user><br>
DISPLAY=:0.0<br>
GB_GUI=gb.qt5<br>
GDMSESSION=lightdm-xsession<br>
GPG_AGENT_INFO=/run/user/1000/gnupg/S.gpg-agent:0:1<br>
HOME=<home><br>
INFINALITY_FT_AUTOHINT_HORIZONTAL_STEM_DARKEN_STRENGTH=10<br>
INFINALITY_FT_AUTOHINT_INCREASE_GLYPH_HEIGHTS=true<br>
INFINALITY_FT_AUTOHINT_SNAP_STEM_HEIGHT=100<br>
INFINALITY_FT_AUTOHINT_VERTICAL_STEM_DARKEN_STRENGTH=25<br>
INFINALITY_FT_BOLD_EMBOLDEN_X_VALUE=0<br>
INFINALITY_FT_BOLD_EMBOLDEN_Y_VALUE=0<br>
INFINALITY_FT_BRIGHTNESS=0<br>
INFINALITY_FT_CHROMEOS_STYLE_SHARPENING_STRENGTH=0<br>
INFINALITY_FT_CONTRAST=0<br>
INFINALITY_FT_FILTER_PARAMS=11 22 38 22 11<br>
INFINALITY_FT_FRINGE_FILTER_STRENGTH=0<br>
INFINALITY_FT_GAMMA_CORRECTION=0 100<br>
INFINALITY_FT_GLOBAL_EMBOLDEN_X_VALUE=0<br>
INFINALITY_FT_GLOBAL_EMBOLDEN_Y_VALUE=0<br>
INFINALITY_FT_GRAYSCALE_FILTER_STRENGTH=0<br>
INFINALITY_FT_STEM_ALIGNMENT_STRENGTH=25<br>
INFINALITY_FT_STEM_FITTING_STRENGTH=25<br>
INFINALITY_FT_STEM_SNAPPING_SLIDING_SCALE=40<br>
INFINALITY_FT_USE_KNOWN_SETTINGS_ON_SELECTED_FONTS=true<br>
INFINALITY_FT_USE_VARIOUS_TWEAKS=true<br>
INFINALITY_FT_WINDOWS_STYLE_SHARPENING_STRENGTH=10<br>
LANG=en_US.UTF-8<br>
LANGUAGE=en_US.UTF-8<br>
LC_ALL=en_US.UTF-8<br>
LOGNAME=<user><br>
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games<br>
PWD=<home><br>
QT_QPA_PLATFORMTHEME=qt5ct<br>
SAL_USE_VCLPLUGIN=gtk<br>
SHELL=/bin/bash<br>
SSH_AGENT_PID=614<br>
SSH_AUTH_SOCK=/tmp/ssh-oBISTq0a0BrD/agent.489<br>
TEXTDOMAIN=Linux-PAM<br>
TZ=:/etc/localtime<br>
USER=<user><br>
XAUTHORITY=<home>/.Xauthority<br>
XDG_CONFIG_DIRS=/etc/xdg<br>
XDG_CONFIG_HOME=<home>/.config<br>
XDG_CURRENT_DESKTOP=LXDE<br>
XDG_DATA_DIRS=/usr/local/share:/usr/share/ras<user>-ui-overrides:/usr/share:/usr/share/gdm:/var/lib/menu-xdg<br>
XDG_GREETER_DATA_DIR=/var/lib/lightdm/data/<user><br>
XDG_MENU_PREFIX=lxde-<user>-<br>
XDG_RUNTIME_DIR=/run/user/1000<br>
XDG_SEAT=seat0<br>
XDG_SEAT_PATH=/org/freedesktop/DisplayManager/Seat0<br>
XDG_SESSION_DESKTOP=lightdm-xsession<br>
XDG_SESSION_ID=c1<br>
XDG_SESSION_PATH=/org/freedesktop/DisplayManager/Session0<br>
XDG_SESSION_TYPE=x11<br>
XDG_VTNR=7<br>
_LXSESSION_PID=489<br>
<br>
<br>
----[ Gambas mailing-list is hosted by <a href="https://www.hostsharing.net" rel="noreferrer" target="_blank">https://www.hostsharing.net</a> ]----<br>
</blockquote></div>