gisi: Add new API for setting modem remote device

This commit is contained in:
Aki Niemi 2011-02-07 09:49:27 +02:00
parent 5b3a43a17c
commit 4eedacac20
2 changed files with 28 additions and 0 deletions

View File

@ -59,6 +59,7 @@ typedef struct _GIsiServiceMux GIsiServiceMux;
struct _GIsiModem {
unsigned index;
uint8_t device;
GHashTable *services;
gboolean subs_source;
int req_fd;
@ -537,6 +538,27 @@ void g_isi_modem_set_flags(GIsiModem *modem, unsigned long flags)
modem->flags = flags;
}
uint8_t g_isi_modem_device(GIsiModem *modem)
{
if (modem == NULL)
return 0;
return modem->device;
}
int g_isi_modem_set_device(GIsiModem *modem, uint8_t remote)
{
if (modem == NULL)
return -EINVAL;
if (remote != PN_DEV_HOST && remote != PN_DEV_MODEM)
return -EINVAL;
modem->device = remote;
return 0;
}
static uint8_t service_next_utid(GIsiServiceMux *mux)
{
if (mux->last_utid == 0x00 || mux->last_utid == 0xFF)

View File

@ -48,9 +48,15 @@ typedef void (*GIsiDebugFunc)(const char *fmt, ...);
GIsiModem *g_isi_modem_create(unsigned index);
GIsiModem *g_isi_modem_create_by_name(const char *name);
void g_isi_modem_destroy(GIsiModem *modem);
unsigned g_isi_modem_index(GIsiModem *modem);
uint8_t g_isi_modem_device(GIsiModem *modem);
int g_isi_modem_set_device(GIsiModem *modem, uint8_t dev);
void g_isi_modem_set_trace(GIsiModem *modem, GIsiNotifyFunc notify);
void g_isi_modem_set_debug(GIsiModem *modem, GIsiDebugFunc debug);
void *g_isi_modem_set_userdata(GIsiModem *modem, void *data);
void *g_isi_modem_get_userdata(GIsiModem *modem);