OpenCores
URL https://opencores.org/ocsvn/openrisc_2011-10-31/openrisc_2011-10-31/trunk

Subversion Repositories openrisc_2011-10-31

[/] [openrisc/] [trunk/] [rtos/] [freertos-6.1.1/] [Demo/] [Common/] [ethernet/] [lwIP_132/] [src/] [include/] [lwip/] [sio.h] - Blame information for rev 637

Go to most recent revision | Details | Compare with Previous | View Log

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

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.