FreeCalypso > hg > freecalypso-sw
view rvinterf/g23sh/main.c @ 884:353daaa6014d
gsm-fw/gpf/conf/gsmcomp.c: increased max partition in the voice-only config
The code we got from TCS211 had the maximum prim pool partition size set to
900 bytes in the voice-only config (no FAX_AND_DATA, no GPRS) and to 1600 bytes
in every other config. As it turns out, this "minimized" config breaks when
the AT command interface is used with %CPI enabled, as the responsible code in
ATI does an ACI_MALLOC of 1012 bytes. TI may have considered this case to be
unsupported usage (perhaps they didn't care about the combination of a
voice-only PS with AT command control), but we do want this use case to work
without crashing. Solution: I made the largest prim pool the same as it is
with FAX_AND_DATA: 3 partitions of 1600 bytes.
author | Space Falcon <falcon@ivan.Harhan.ORG> |
---|---|
date | Sat, 27 Jun 2015 07:31:30 +0000 |
parents | 922efdd65dce |
children |
line wrap: on
line source
/* * This module contains the main() function for g23sh. */ #include <sys/types.h> #include <sys/errno.h> #include <stdio.h> #include <stdlib.h> #include <unistd.h> char *socket_pathname = "/tmp/rvinterf_socket"; int ttyhacks, dflag; int sock; extern char *rvinterf_Bopt, *rvinterf_lopt, *rvinterf_wopt; main(argc, argv) char **argv; { extern int optind; extern char *optarg; int c; fd_set fds; while ((c = getopt(argc, argv, "B:dl:s:w:")) != EOF) switch (c) { case 'B': rvinterf_Bopt = optarg; continue; case 'd': dflag++; continue; case 'l': rvinterf_lopt = optarg; continue; case 's': socket_pathname = optarg; continue; case 'w': rvinterf_wopt = optarg; continue; case '?': default: usage: fprintf(stderr, "usage: %s [options] [ttyport]\n", argv[0]); exit(1); } switch (argc - optind) { case 0: if (rvinterf_Bopt || rvinterf_lopt || rvinterf_wopt) { fprintf(stderr, "%s: -B, -l and -w options are meaningful only when launching rvinterf\n", argv[0]); exit(1); } break; case 1: launch_rvinterf(argv[optind]); break; default: goto usage; } ttyhacks = isatty(0) && !dflag; init(); tty_init(); for (;;) { FD_ZERO(&fds); FD_SET(0, &fds); FD_SET(sock, &fds); c = select(sock+1, &fds, 0, 0, 0); if (c < 0) { if (errno == EINTR) continue; tty_cleanup(); perror("select"); exit(1); } if (FD_ISSET(0, &fds)) handle_tty_input(); if (FD_ISSET(sock, &fds)) handle_rvinterf_input(); fflush(stdout); } }