/* * * oFono - Open Source Telephony * * Copyright (C) 2008-2009 Intel Corporation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA * */ #ifdef HAVE_CONFIG_H #include #endif #include #include #include #include #define OFONO_API_SUBJECT_TO_CHANGE #include #include #include "atutil.h" void dump_response(const char *func, gboolean ok, GAtResult *result) { GSList *l; ofono_debug("%s got result: %d", func, ok); ofono_debug("Final response: %s", result->final_or_pdu); for (l = result->lines; l; l = l->next) ofono_debug("Response line: %s", (char *) l->data); } void decode_at_error(struct ofono_error *error, const char *final) { if (!strcmp(final, "OK")) { error->type = OFONO_ERROR_TYPE_NO_ERROR; error->error = 0; } else { error->type = OFONO_ERROR_TYPE_FAILURE; error->error = 0; } } gint at_util_call_compare_by_status(gconstpointer a, gconstpointer b) { const struct ofono_call *call = a; int status = GPOINTER_TO_INT(b); if (status != call->status) return 1; return 0; } gint at_util_call_compare(gconstpointer a, gconstpointer b) { const struct ofono_call *ca = a; const struct ofono_call *cb = b; if (ca->id < cb->id) return -1; if (ca->id > cb->id) return 1; return 0; } unsigned int at_util_alloc_next_id(unsigned int *id_list) { unsigned int i; for (i = 1; i < sizeof(unsigned int) * 8; i++) { if (*id_list & (1 << i)) continue; *id_list |= (1 << i); return i; } return 0; } void at_util_release_id(unsigned int *id_list, unsigned int id) { *id_list &= ~(1 << id); }