r282 - in trunk/software/gsm0710muxd: . src
smartphones-commits at lists.linuxtogo.org
smartphones-commits at lists.linuxtogo.org
Tue Apr 29 15:19:29 CEST 2008
Author: emdete
Date: 2008-04-29 15:19:27 +0200 (Tue, 29 Apr 2008)
New Revision: 282
Modified:
trunk/software/gsm0710muxd/autogen.sh
trunk/software/gsm0710muxd/configure.ac
trunk/software/gsm0710muxd/src/Makefile.am
trunk/software/gsm0710muxd/src/gsm0710muxd.c
trunk/software/gsm0710muxd/src/gsm0710muxd.vapi
trunk/software/gsm0710muxd/src/mux.xml
trunk/software/gsm0710muxd/src/muxercontrol.c
trunk/software/gsm0710muxd/src/muxercontrol.h
trunk/software/gsm0710muxd/src/muxercontrol.vala
Log:
added patches from marcel
Modified: trunk/software/gsm0710muxd/autogen.sh
===================================================================
--- trunk/software/gsm0710muxd/autogen.sh 2008-04-29 11:38:54 UTC (rev 281)
+++ trunk/software/gsm0710muxd/autogen.sh 2008-04-29 13:19:27 UTC (rev 282)
@@ -5,10 +5,9 @@
touch README
-echo "Running aclocal..." ; aclocal $ACLOCAL_FLAGS -I m4 || exit 1
+echo "Running aclocal..." ; aclocal $ACLOCAL_FLAGS || exit 1
echo "Running autoheader..." ; autoheader || exit 1
echo "Running autoconf..." ; autoconf || exit 1
-echo "Running libtoolize..." ; (libtoolize --copy --automake || glibtoolize --automake) || exit 1
echo "Running automake..." ; automake --add-missing --copy --gnu || exit 1
if [ -z "$NOCONFIGURE" ]; then
Modified: trunk/software/gsm0710muxd/configure.ac
===================================================================
--- trunk/software/gsm0710muxd/configure.ac 2008-04-29 11:38:54 UTC (rev 281)
+++ trunk/software/gsm0710muxd/configure.ac 2008-04-29 13:19:27 UTC (rev 282)
@@ -17,6 +17,8 @@
AC_PROG_CC
AC_PROG_INSTALL
+AC_PATH_PROG(VALAC, [valac])
+
PKG_CHECK_MODULES(GLIB, glib-2.0 >= 2.10, dummy=yes,
AC_MSG_ERROR(libglib-2.0 is required))
AC_SUBST(DBUS_CFLAGS)
Modified: trunk/software/gsm0710muxd/src/Makefile.am
===================================================================
--- trunk/software/gsm0710muxd/src/Makefile.am 2008-04-29 11:38:54 UTC (rev 281)
+++ trunk/software/gsm0710muxd/src/Makefile.am 2008-04-29 13:19:27 UTC (rev 282)
@@ -11,11 +11,15 @@
nodist_gsm0710muxd_SOURCES = $(BUILT_SOURCES)
-CLEANFILES = $(BUILT_SOURCES)
+CLEANFILES = mux-glue.h
-EXTRA_DIST = mux.xml muxercontrol.h muxercontrol.c muxercontrol.vala
+EXTRA_DIST = mux.xml muxercontrol.vala gsm0710muxd.vapi \
+ muxercontrol.h muxercontrol.c
MAINTAINERCLEANFILES = Makefile.in
mux-glue.h: mux.xml
$(DBUS_BINDING_TOOL) --prefix=mux --mode=glib-server --output=$@ $<
+
+vala: muxercontrol.vala
+ $(VALAC) --vapidir=$(top_srcdir)/src --pkg=gsm0710muxd --pkg=dbus-glib-1 --ccode $<
Modified: trunk/software/gsm0710muxd/src/gsm0710muxd.c
===================================================================
--- trunk/software/gsm0710muxd/src/gsm0710muxd.c 2008-04-29 11:38:54 UTC (rev 281)
+++ trunk/software/gsm0710muxd/src/gsm0710muxd.c 2008-04-29 13:19:27 UTC (rev 282)
@@ -205,7 +205,7 @@
////////////////////////////////// constants & globals
static unsigned char close_channel_cmd[] = { GSM0710_CONTROL_CLD | GSM0710_CR, GSM0710_EA | (0 << 1) };
static unsigned char test_channel_cmd[] = { GSM0710_CONTROL_TEST | GSM0710_CR, GSM0710_EA | (6 << 1), 'P', 'I', 'N', 'G', '\r', '\n', };
-static unsigned char psc_channel_cmd[] = { GSM0710_CONTROL_PSC | GSM0710_CR, GSM0710_EA | (0 << 1), };
+//static unsigned char psc_channel_cmd[] = { GSM0710_CONTROL_PSC | GSM0710_CR, GSM0710_EA | (0 << 1), };
static unsigned char wakeup_sequence[] = { GSM0710_FRAME_FLAG, };
// crc table from gsm0710 spec
static const unsigned char r_crctable[] = {//reversed, 8-bit, poly=0x07
@@ -234,7 +234,6 @@
0x57, 0xC6, 0xB3, 0x22, 0x50, 0xC1, 0xBA, 0x2B, 0x59, 0xC8, 0xBD,
0x2C, 0x5E, 0xCF, };
// config stuff
-static int wait_for_daemon_status = 0;
static int no_daemon = 1;
static int pin_code = -1;
static int use_ping = 0;
@@ -254,6 +253,7 @@
static int cmux_port_speed = 5;
// Maximum Frame Size (N1): 64/31
static int cmux_N1 = 64;
+#if 0
// Acknowledgement Timer (T1) sec/100: 10
static int cmux_T1 = 10;
// Maximum number of retransmissions (N2): 3
@@ -264,6 +264,7 @@
static int cmux_T3 = 10;
// Window Size (k): 2
static int cmux_k = 2;
+#endif
// TODO: set automatically from at+cmux=?
// neo: +CMUX: (1),(0),(1-5),(10-100),(1-255),(0-100),(2-255),(1-255),(1-7)
@@ -613,14 +614,14 @@
static gboolean watchdog(gpointer data);
static int close_devices();
-static gboolean c_get_power(const char* origin, int on)
+static gboolean c_get_power(const char* origin)
{
LOG(LOG_DEBUG, "Enter");
LOG(LOG_DEBUG, "Leave");
return serial.state != MUX_STATE_OFF;
}
-static gboolean c_power(const char* origin, int on)
+static gboolean c_set_power(const char* origin, gboolean on)
{
LOG(LOG_DEBUG, "Enter");
if (on)
@@ -1369,9 +1370,9 @@
//version test for Siemens terminals to enable version 2 functions
int frames_extracted = 0;
GSM0710_Frame *frame;
- while (frame = cmux_mode
+ while ((frame = cmux_mode
? gsm0710_advanced_buffer_get_frame(buf)
- : gsm0710_base_buffer_get_frame(buf))
+ : gsm0710_base_buffer_get_frame(buf)))
{
frames_extracted++;
if ((GSM0710_FRAME_IS(GSM0710_TYPE_UI, frame) || GSM0710_FRAME_IS(GSM0710_TYPE_UIH, frame)))
@@ -1484,58 +1485,6 @@
}
/**
- * Wait for child process to kill the parent.
- */
-static void parent_signal_treatment(
- int param)
-{
- fprintf(stderr, "started");
- exit(0);
-}
-
-/**
- * Daemonize process, this process create the daemon
- */
-static int daemonize(
- )
-{
- static pid_t the_pid = -1;
- LOG(LOG_DEBUG, "Enter");
- if (!no_daemon)
- {
- signal(SIGHUP, parent_signal_treatment);
- if ((the_pid = fork()) < 0)
- {
- wait_for_daemon_status = 0;
- return -1;
- }
- else if (the_pid != 0)
- {
- if (wait_for_daemon_status)
- {
- wait(NULL);
- fprintf(stderr, "startup failed. See syslog for details");
- exit(1);
- }
- exit(0);// parent goes bye-bye
- }
-//child continues
- setsid();// become session leader
-//signal(SIGHUP, SIG_IGN);
- if (wait_for_daemon_status == 0 && (the_pid = fork()) != 0)
- exit(0);
- chdir("/");// change working directory
- umask(0);// clear our file mode creation mask
-//Close out the standard file descriptors
- close(STDIN_FILENO);
- close(STDOUT_FILENO);
- close(STDERR_FILENO);
- }
-//daemonize process stop here
- return 0;
-}
-
-/**
* Function responsible by all signal handlers treatment
* any new signal must be added here
*/
@@ -1736,11 +1685,11 @@
, cmux_subset
, cmux_port_speed
, cmux_N1
- , cmux_T1
- , cmux_N2
- , cmux_T2
- , cmux_T3
- , cmux_k
+ //, cmux_T1
+ //, cmux_N2
+ //, cmux_T2
+ //, cmux_T3
+ //, cmux_k
));
LOG(LOG_INFO, "Starting mux mode");
SYSCHECK(chat(serial->fd, gsm_command, 3));
@@ -1860,7 +1809,6 @@
fprintf(stderr, "Options:\n");
// process control
fprintf(stderr, "\t-d: Fork, get a daemon [%s]\n", no_daemon?"no":"yes");
- fprintf(stderr, "\t-w: Wait for deamon startup success/failure [%s]\n", wait_for_daemon_status?"yes":"no");
fprintf(stderr, "\t-v: verbose logging\n");
// modem control
fprintf(stderr, "\t-s <serial port name>: Serial port device to connect to [%s]\n", serial.devicename);
@@ -1890,7 +1838,7 @@
pid_t parent_pid;
//for fault tolerance
serial.devicename = "/dev/ttySAC0";
- while ((opt = getopt(argc, argv, "dvws:t:p:f:h?m:b:P:x:")) > 0)
+ while ((opt = getopt(argc, argv, "dvs:t:p:f:h?m:b:P:x:")) > 0)
{
switch (opt)
{
@@ -1900,9 +1848,6 @@
case 'd':
no_daemon = !no_daemon;
break;
- case 'w':
- wait_for_daemon_status = !wait_for_daemon_status;
- break;
case 'x':
serial.pm_base_dir = optarg;
break;
@@ -1946,21 +1891,27 @@
// auto detect - i hate windows-like-behavior but mickey want's it ;)
struct stat sb;
int i;
- static const char* fn[] = {
+ static char* fn[] = {
"/sys/bus/platform/devices/neo1973-pm-gsm.0",
"/sys/bus/platform/devices/gta01-pm-gsm.0",
- }
- for (i=0;i<countof(fn);i++)
- if (stat(fn, &sb) >= 0)
+ NULL
+ };
+ for (i=0;fn[i];i++)
+ if (stat(fn[i], &sb) >= 0)
{
- serial.pm_base_dir = fn;
- LOG(LOG_INFO, "using '%s' as basedir for pm", fn);
+ serial.pm_base_dir = fn[i];
+ LOG(LOG_INFO, "using '%s' as basedir for pm", fn[i]);
break;
}
}
//daemonize show time
parent_pid = getpid();
- daemonize();
+ if (!no_daemon && daemon(0, 0))
+ {
+ fprintf(stderr, "Failed to daemonize: %s (%d)", strerror(errno), errno);
+ exit(1);
+ }
+ umask(0);
//signals treatment
signal(SIGHUP, signal_treatment);
signal(SIGPIPE, signal_treatment);
@@ -1982,11 +1933,6 @@
exit(-1);
}
//Initialize modem and virtual ports
- if (no_daemon)
- LOG(LOG_INFO, "You can quit the daemon with SIGKILL or SIGTERM");
- else
- if (wait_for_daemon_status)
- kill(parent_pid, SIGHUP);
serial.state = MUX_STATE_OPENING;
serial.g_source_watchdog = g_timeout_add_seconds(5, watchdog, &serial); // let the dog watch every 5 sec
LOG(LOG_INFO, "Watchdog started - initilization follows");
Modified: trunk/software/gsm0710muxd/src/gsm0710muxd.vapi
===================================================================
--- trunk/software/gsm0710muxd/src/gsm0710muxd.vapi 2008-04-29 11:38:54 UTC (rev 281)
+++ trunk/software/gsm0710muxd/src/gsm0710muxd.vapi 2008-04-29 13:19:27 UTC (rev 282)
@@ -1,8 +1,8 @@
namespace gsm0710muxd {
[CCode (cname = "c_get_power")]
public bool c_get_power (string origin);
- [CCode (cname = "c_power")]
- public bool c_power (string origin, bool on);
+ [CCode (cname = "c_set_power")]
+ public bool c_set_power (string origin, bool on);
[CCode (cname = "c_reset_modem")]
public bool c_reset_modem (string origin);
[CCode (cname = "c_alloc_channel")]
Modified: trunk/software/gsm0710muxd/src/mux.xml
===================================================================
--- trunk/software/gsm0710muxd/src/mux.xml 2008-04-29 11:38:54 UTC (rev 281)
+++ trunk/software/gsm0710muxd/src/mux.xml 2008-04-29 13:19:27 UTC (rev 282)
@@ -12,7 +12,7 @@
<annotation name="org.freedesktop.DBus.GLib.CSymbol" value="muxer_control"/>
<!-- switch modem on/off -->
<method name="SetPower">
- <annotation name="org.freedesktop.DBus.GLib.CSymbol" value="muxer_control_power"/>
+ <annotation name="org.freedesktop.DBus.GLib.CSymbol" value="muxer_control_set_power"/>
<!-- origin of the call (see AllocChannel) -->
<arg name="origin" type="s" direction="in"/>
<!-- switch on? -->
@@ -20,7 +20,7 @@
</method>
<!-- get if modem is onor off -->
<method name="GetPower">
- <annotation name="org.freedesktop.DBus.GLib.CSymbol" value="muxer_control_power"/>
+ <annotation name="org.freedesktop.DBus.GLib.CSymbol" value="muxer_control_get_power"/>
<!-- origin of the call (see AllocChannel) -->
<arg name="origin" type="s" direction="in"/>
<!-- current state -->
Modified: trunk/software/gsm0710muxd/src/muxercontrol.c
===================================================================
--- trunk/software/gsm0710muxd/src/muxercontrol.c 2008-04-29 11:38:54 UTC (rev 281)
+++ trunk/software/gsm0710muxd/src/muxercontrol.c 2008-04-29 13:19:27 UTC (rev 282)
@@ -34,12 +34,18 @@
}
-gboolean muxer_control_power (MuxerControl* self, const char* origin, gboolean on) {
+gboolean muxer_control_set_power (MuxerControl* self, const char* origin, gboolean on) {
g_return_val_if_fail (IS_MUXER_CONTROL (self), FALSE);
- return c_power (origin, on);
+ return c_set_power (origin, on);
}
+gboolean muxer_control_get_power (MuxerControl* self, const char* origin, gboolean on) {
+ g_return_val_if_fail (IS_MUXER_CONTROL (self), FALSE);
+ return c_get_power (origin);
+}
+
+
gboolean muxer_control_alloc_channel (MuxerControl* self, const char* origin, const char* channel) {
g_return_val_if_fail (IS_MUXER_CONTROL (self), FALSE);
return c_alloc_channel (origin, channel);
Modified: trunk/software/gsm0710muxd/src/muxercontrol.h
===================================================================
--- trunk/software/gsm0710muxd/src/muxercontrol.h 2008-04-29 11:38:54 UTC (rev 281)
+++ trunk/software/gsm0710muxd/src/muxercontrol.h 2008-04-29 13:19:27 UTC (rev 282)
@@ -38,7 +38,8 @@
void muxer_control_run (MuxerControl* self);
gboolean muxer_control_reset_modem (MuxerControl* self, const char* origin);
-gboolean muxer_control_power (MuxerControl* self, const char* origin, gboolean on);
+gboolean muxer_control_set_power (MuxerControl* self, const char* origin, gboolean on);
+gboolean muxer_control_get_power (MuxerControl* self, const char* origin, gboolean on);
gboolean muxer_control_alloc_channel (MuxerControl* self, const char* origin, const char* channel);
MuxerControl* muxer_control_gen (void);
MuxerControl* muxer_control_new (void);
Modified: trunk/software/gsm0710muxd/src/muxercontrol.vala
===================================================================
--- trunk/software/gsm0710muxd/src/muxercontrol.vala 2008-04-29 11:38:54 UTC (rev 281)
+++ trunk/software/gsm0710muxd/src/muxercontrol.vala 2008-04-29 13:19:27 UTC (rev 282)
@@ -17,9 +17,9 @@
{
return gsm0710muxd.c_reset_modem(origin);
}
- public bool power(string origin, bool on)
+ public bool set_power(string origin, bool on)
{
- return gsm0710muxd.c_power(origin, on);
+ return gsm0710muxd.c_set_power(origin, on);
}
public bool get_power(string origin, bool on)
{
More information about the Smartphones-commits
mailing list