From d7305d07f57247d7b31a2115a62e96b1ee40bf2e Mon Sep 17 00:00:00 2001 From: adamdunkels Date: Sun, 18 Jun 2006 08:19:10 +0000 Subject: [PATCH] Code imported from the SICS CVS server --- platform/esb/net/rs232-slip-drv.c | 72 ++++++++++++++++++++++++++ platform/esb/net/rs232-slip-drv.h | 40 ++++++++++++++ platform/esb/net/tr1001-drv.c | 86 +++++++++++++++++++++++++++++++ platform/esb/net/tr1001-drv.h | 44 ++++++++++++++++ 4 files changed, 242 insertions(+) create mode 100644 platform/esb/net/rs232-slip-drv.c create mode 100644 platform/esb/net/rs232-slip-drv.h create mode 100644 platform/esb/net/tr1001-drv.c create mode 100644 platform/esb/net/tr1001-drv.h diff --git a/platform/esb/net/rs232-slip-drv.c b/platform/esb/net/rs232-slip-drv.c new file mode 100644 index 000000000..58c9ad182 --- /dev/null +++ b/platform/esb/net/rs232-slip-drv.c @@ -0,0 +1,72 @@ +/* + * Copyright (c) 2005, Swedish Institute of Computer Science + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the Institute nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * This file is part of the Contiki operating system. + * + * @(#)$Id: rs232-slip-drv.c,v 1.3 2006/06/18 08:19:28 adamdunkels Exp $ + */ + +#include "contiki.h" +#include "uip.h" +#include "tcpip.h" +#include "rs232-slip.h" + +EK_POLLHANDLER(pollhandler); +EK_EVENTHANDLER(eventhandler, ev, data); +EK_PROCESS(p, "SLIP driver", EK_PRIO_HIGH, + eventhandler, pollhandler, NULL); +static ek_id_t id = EK_ID_NONE; + + +/*---------------------------------------------------------------------------*/ +EK_POLLHANDLER(pollhandler) +{ + uip_len = rs232_slip_poll(); + tcpip_input(); +} +/*---------------------------------------------------------------------------*/ +EK_PROCESS_INIT(rs232_slip_drv_init, arg) +{ + arg_free(arg); + + if(id == EK_ID_NONE) { + id = ek_start(&p); + } +} +/*---------------------------------------------------------------------------*/ +EK_EVENTHANDLER(eventhandler, ev, data) +{ + EK_EVENTHANDLER_ARGS(ev, data); +} +/*---------------------------------------------------------------------------*/ +void +rs232_slip_drv_request_poll(void) +{ + ek_request_poll(id); +} +/*---------------------------------------------------------------------------*/ diff --git a/platform/esb/net/rs232-slip-drv.h b/platform/esb/net/rs232-slip-drv.h new file mode 100644 index 000000000..cca904f73 --- /dev/null +++ b/platform/esb/net/rs232-slip-drv.h @@ -0,0 +1,40 @@ +/* + * Copyright (c) 2005, Swedish Institute of Computer Science + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the Institute nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * This file is part of the Contiki operating system. + * + * @(#)$Id: rs232-slip-drv.h,v 1.3 2006/06/18 08:19:28 adamdunkels Exp $ + */ +#ifndef __RS232_SLIP_DRV_H__ +#define __RS232_SLIP_DRV_H__ + +void rs232_slip_drv_init(void *); + +void rs232_slip_drv_request_poll(void); + +#endif /* __RS232_SLIP_DRV_H__ */ diff --git a/platform/esb/net/tr1001-drv.c b/platform/esb/net/tr1001-drv.c new file mode 100644 index 000000000..282e08b73 --- /dev/null +++ b/platform/esb/net/tr1001-drv.c @@ -0,0 +1,86 @@ +/* + * Copyright (c) 2005, Swedish Institute of Computer Science + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the Institute nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * This file is part of the Contiki operating system. + * + * @(#)$Id: tr1001-drv.c,v 1.1 2006/06/18 08:19:10 adamdunkels Exp $ + */ + +#include "contiki-esb.h" +#include "net/hc.h" + +#include +#include + +PROCESS(tr1001_drv_process, "TR1001 driver"); + +static unsigned char slip_dump; + +/*---------------------------------------------------------------------------*/ +PROCESS_THREAD(tr1001_drv_process, ev, data) +{ + PROCESS_BEGIN(); + + tr1001_init(); + + while(1) { + + PROCESS_WAIT_EVENT_UNTIL(ev == PROCESS_EVENT_POLL); + + uip_len = tr1001_poll(); + + if(uip_len > 0) { + uip_len = hc_inflate(); + tcpip_input(); + } + } + + PROCESS_END(); +} +/*---------------------------------------------------------------------------*/ +void +tr1001_drv_request_poll(void) +{ + process_poll(&tr1001_drv_process); +} +/*---------------------------------------------------------------------------*/ +u8_t +tr1001_drv_send(void) +{ + int len; + + len = hc_compress(); + return tr1001_send(&uip_buf[UIP_LLH_LEN], len); +} +/*---------------------------------------------------------------------------*/ +void +tr1001_drv_set_slip_dump(int dump) +{ + slip_dump = dump; +} +/*---------------------------------------------------------------------------*/ diff --git a/platform/esb/net/tr1001-drv.h b/platform/esb/net/tr1001-drv.h new file mode 100644 index 000000000..5dbaee8bd --- /dev/null +++ b/platform/esb/net/tr1001-drv.h @@ -0,0 +1,44 @@ +/* + * Copyright (c) 2005, Swedish Institute of Computer Science + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the Institute nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * This file is part of the Contiki operating system. + * + * @(#)$Id: tr1001-drv.h,v 1.1 2006/06/18 08:19:10 adamdunkels Exp $ + */ +#ifndef __TR1001_DRV_H__ +#define __TR1001_DRV_H__ + +PROCESS_NAME(tr1001_drv_process); + +void tr1001_drv_set_slip_dump(int dump); + +u8_t tr1001_drv_send(void); + +void tr1001_drv_request_poll(void); + +#endif /* __TR1001_DRV_H__ */