Dependencies:   mbed

Committer:
slowness
Date:
Tue Sep 06 18:10:36 2011 +0000
Revision:
0:cd4c47744fa1

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
slowness 0:cd4c47744fa1 1 /*
slowness 0:cd4c47744fa1 2 * Copyright (c) 2001-2004 Swedish Institute of Computer Science.
slowness 0:cd4c47744fa1 3 * All rights reserved.
slowness 0:cd4c47744fa1 4 *
slowness 0:cd4c47744fa1 5 * Redistribution and use in source and binary forms, with or without modification,
slowness 0:cd4c47744fa1 6 * are permitted provided that the following conditions are met:
slowness 0:cd4c47744fa1 7 *
slowness 0:cd4c47744fa1 8 * 1. Redistributions of source code must retain the above copyright notice,
slowness 0:cd4c47744fa1 9 * this list of conditions and the following disclaimer.
slowness 0:cd4c47744fa1 10 * 2. Redistributions in binary form must reproduce the above copyright notice,
slowness 0:cd4c47744fa1 11 * this list of conditions and the following disclaimer in the documentation
slowness 0:cd4c47744fa1 12 * and/or other materials provided with the distribution.
slowness 0:cd4c47744fa1 13 * 3. The name of the author may not be used to endorse or promote products
slowness 0:cd4c47744fa1 14 * derived from this software without specific prior written permission.
slowness 0:cd4c47744fa1 15 *
slowness 0:cd4c47744fa1 16 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
slowness 0:cd4c47744fa1 17 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
slowness 0:cd4c47744fa1 18 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
slowness 0:cd4c47744fa1 19 * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
slowness 0:cd4c47744fa1 20 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
slowness 0:cd4c47744fa1 21 * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
slowness 0:cd4c47744fa1 22 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
slowness 0:cd4c47744fa1 23 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
slowness 0:cd4c47744fa1 24 * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
slowness 0:cd4c47744fa1 25 * OF SUCH DAMAGE.
slowness 0:cd4c47744fa1 26 *
slowness 0:cd4c47744fa1 27 * This file is part of the lwIP TCP/IP stack.
slowness 0:cd4c47744fa1 28 */
slowness 0:cd4c47744fa1 29
slowness 0:cd4c47744fa1 30 /*
slowness 0:cd4c47744fa1 31 * This is the interface to the platform specific serial IO module
slowness 0:cd4c47744fa1 32 * It needs to be implemented by those platforms which need SLIP or PPP
slowness 0:cd4c47744fa1 33 */
slowness 0:cd4c47744fa1 34
slowness 0:cd4c47744fa1 35 #ifndef __SIO_H__
slowness 0:cd4c47744fa1 36 #define __SIO_H__
slowness 0:cd4c47744fa1 37
slowness 0:cd4c47744fa1 38 #include "lwip/arch.h"
slowness 0:cd4c47744fa1 39
slowness 0:cd4c47744fa1 40 #ifdef __cplusplus
slowness 0:cd4c47744fa1 41 extern "C" {
slowness 0:cd4c47744fa1 42 #endif
slowness 0:cd4c47744fa1 43
slowness 0:cd4c47744fa1 44 /* If you want to define sio_fd_t elsewhere or differently,
slowness 0:cd4c47744fa1 45 define this in your cc.h file. */
slowness 0:cd4c47744fa1 46 #ifndef __sio_fd_t_defined
slowness 0:cd4c47744fa1 47 typedef void * sio_fd_t;
slowness 0:cd4c47744fa1 48 #endif
slowness 0:cd4c47744fa1 49
slowness 0:cd4c47744fa1 50 /* The following functions can be defined to something else in your cc.h file
slowness 0:cd4c47744fa1 51 or be implemented in your custom sio.c file. */
slowness 0:cd4c47744fa1 52
slowness 0:cd4c47744fa1 53 #ifndef sio_open
slowness 0:cd4c47744fa1 54 /**
slowness 0:cd4c47744fa1 55 * Opens a serial device for communication.
slowness 0:cd4c47744fa1 56 *
slowness 0:cd4c47744fa1 57 * @param devnum device number
slowness 0:cd4c47744fa1 58 * @return handle to serial device if successful, NULL otherwise
slowness 0:cd4c47744fa1 59 */
slowness 0:cd4c47744fa1 60 sio_fd_t sio_open(u8_t devnum);
slowness 0:cd4c47744fa1 61 #endif
slowness 0:cd4c47744fa1 62
slowness 0:cd4c47744fa1 63 #ifndef sio_send
slowness 0:cd4c47744fa1 64 /**
slowness 0:cd4c47744fa1 65 * Sends a single character to the serial device.
slowness 0:cd4c47744fa1 66 *
slowness 0:cd4c47744fa1 67 * @param c character to send
slowness 0:cd4c47744fa1 68 * @param fd serial device handle
slowness 0:cd4c47744fa1 69 *
slowness 0:cd4c47744fa1 70 * @note This function will block until the character can be sent.
slowness 0:cd4c47744fa1 71 */
slowness 0:cd4c47744fa1 72 void sio_send(u8_t c, sio_fd_t fd);
slowness 0:cd4c47744fa1 73 #endif
slowness 0:cd4c47744fa1 74
slowness 0:cd4c47744fa1 75 #ifndef sio_recv
slowness 0:cd4c47744fa1 76 /**
slowness 0:cd4c47744fa1 77 * Receives a single character from the serial device.
slowness 0:cd4c47744fa1 78 *
slowness 0:cd4c47744fa1 79 * @param fd serial device handle
slowness 0:cd4c47744fa1 80 *
slowness 0:cd4c47744fa1 81 * @note This function will block until a character is received.
slowness 0:cd4c47744fa1 82 */
slowness 0:cd4c47744fa1 83 u8_t sio_recv(sio_fd_t fd);
slowness 0:cd4c47744fa1 84 #endif
slowness 0:cd4c47744fa1 85
slowness 0:cd4c47744fa1 86 #ifndef sio_read
slowness 0:cd4c47744fa1 87 /**
slowness 0:cd4c47744fa1 88 * Reads from the serial device.
slowness 0:cd4c47744fa1 89 *
slowness 0:cd4c47744fa1 90 * @param fd serial device handle
slowness 0:cd4c47744fa1 91 * @param data pointer to data buffer for receiving
slowness 0:cd4c47744fa1 92 * @param len maximum length (in bytes) of data to receive
slowness 0:cd4c47744fa1 93 * @return number of bytes actually received - may be 0 if aborted by sio_read_abort
slowness 0:cd4c47744fa1 94 *
slowness 0:cd4c47744fa1 95 * @note This function will block until data can be received. The blocking
slowness 0:cd4c47744fa1 96 * can be cancelled by calling sio_read_abort().
slowness 0:cd4c47744fa1 97 */
slowness 0:cd4c47744fa1 98 u32_t sio_read(sio_fd_t fd, u8_t *data, u32_t len);
slowness 0:cd4c47744fa1 99 #endif
slowness 0:cd4c47744fa1 100
slowness 0:cd4c47744fa1 101 #ifndef sio_tryread
slowness 0:cd4c47744fa1 102 /**
slowness 0:cd4c47744fa1 103 * Tries to read from the serial device. Same as sio_read but returns
slowness 0:cd4c47744fa1 104 * immediately if no data is available and never blocks.
slowness 0:cd4c47744fa1 105 *
slowness 0:cd4c47744fa1 106 * @param fd serial device handle
slowness 0:cd4c47744fa1 107 * @param data pointer to data buffer for receiving
slowness 0:cd4c47744fa1 108 * @param len maximum length (in bytes) of data to receive
slowness 0:cd4c47744fa1 109 * @return number of bytes actually received
slowness 0:cd4c47744fa1 110 */
slowness 0:cd4c47744fa1 111 u32_t sio_tryread(sio_fd_t fd, u8_t *data, u32_t len);
slowness 0:cd4c47744fa1 112 #endif
slowness 0:cd4c47744fa1 113
slowness 0:cd4c47744fa1 114 #ifndef sio_write
slowness 0:cd4c47744fa1 115 /**
slowness 0:cd4c47744fa1 116 * Writes to the serial device.
slowness 0:cd4c47744fa1 117 *
slowness 0:cd4c47744fa1 118 * @param fd serial device handle
slowness 0:cd4c47744fa1 119 * @param data pointer to data to send
slowness 0:cd4c47744fa1 120 * @param len length (in bytes) of data to send
slowness 0:cd4c47744fa1 121 * @return number of bytes actually sent
slowness 0:cd4c47744fa1 122 *
slowness 0:cd4c47744fa1 123 * @note This function will block until all data can be sent.
slowness 0:cd4c47744fa1 124 */
slowness 0:cd4c47744fa1 125 u32_t sio_write(sio_fd_t fd, u8_t *data, u32_t len);
slowness 0:cd4c47744fa1 126 #endif
slowness 0:cd4c47744fa1 127
slowness 0:cd4c47744fa1 128 #ifndef sio_read_abort
slowness 0:cd4c47744fa1 129 /**
slowness 0:cd4c47744fa1 130 * Aborts a blocking sio_read() call.
slowness 0:cd4c47744fa1 131 *
slowness 0:cd4c47744fa1 132 * @param fd serial device handle
slowness 0:cd4c47744fa1 133 */
slowness 0:cd4c47744fa1 134 void sio_read_abort(sio_fd_t fd);
slowness 0:cd4c47744fa1 135 #endif
slowness 0:cd4c47744fa1 136
slowness 0:cd4c47744fa1 137 #ifdef __cplusplus
slowness 0:cd4c47744fa1 138 }
slowness 0:cd4c47744fa1 139 #endif
slowness 0:cd4c47744fa1 140
slowness 0:cd4c47744fa1 141 #endif /* __SIO_H__ */