What is gsmd
Gsmd is a daemon that handles the communication between applications and GSM modem. Applications control gsmd through libgsmd. libgsmd communicates with gsmd through unix socket, and modem goes through Uart. The diagram is as following. http://lh6.google.com/ticktock35/RwDCAWdUPEI/AAAAAAAAAD4/wBrRLv-1oyE/s400/gsmd_overview.jpg
GSMD is a event driven daemon. Each event shall has a response. Every event will pass through the gsmd_select_main() in which finding and executing their correspond call back functions.