Revision f3ac1c96 core/src/aos_iostream.c
| core/src/aos_iostream.c | ||
|---|---|---|
| 27 | 27 |
|
| 28 | 28 |
#include <aos_iostream.h> |
| 29 | 29 |
|
| 30 |
#include <aos_debug.h> |
|
| 31 |
#include <chprintf.h> |
|
| 30 |
/******************************************************************************/ |
|
| 31 |
/* LOCAL DEFINITIONS */ |
|
| 32 |
/******************************************************************************/ |
|
| 33 |
|
|
| 34 |
/******************************************************************************/ |
|
| 35 |
/* EXPORTED VARIABLES */ |
|
| 36 |
/******************************************************************************/ |
|
| 37 |
|
|
| 38 |
/******************************************************************************/ |
|
| 39 |
/* LOCAL TYPES */ |
|
| 40 |
/******************************************************************************/ |
|
| 41 |
|
|
| 42 |
/******************************************************************************/ |
|
| 43 |
/* LOCAL VARIABLES */ |
|
| 44 |
/******************************************************************************/ |
|
| 45 |
|
|
| 46 |
/* |
|
| 47 |
* forward declarations |
|
| 48 |
*/ |
|
| 49 |
static size_t _channelwrite(void *instance, const uint8_t *bp, size_t n); |
|
| 50 |
static size_t _channelread(void *instance, uint8_t *bp, size_t n); |
|
| 51 |
static msg_t _channelput(void *instance, uint8_t b); |
|
| 52 |
static msg_t _channelget(void *instance); |
|
| 53 |
static msg_t _channelputt(void *instance, uint8_t b, sysinterval_t time); |
|
| 54 |
static msg_t _channelgett(void *instance, sysinterval_t time); |
|
| 55 |
static size_t _channelwritet(void *instance, const uint8_t *bp, size_t n, sysinterval_t time); |
|
| 56 |
static size_t _channelreadt(void *instance, uint8_t *bp, size_t n, sysinterval_t time); |
|
| 57 |
static msg_t _channelctl(void *instance, unsigned int operation, void *arg); |
|
| 58 |
static size_t _streamwrite(void *instance, const uint8_t *bp, size_t n); |
|
| 59 |
static size_t _stremread(void *instance, uint8_t *bp, size_t n); |
|
| 60 |
static msg_t _streamput(void *instance, uint8_t b); |
|
| 61 |
static msg_t _streamget(void *instance); |
|
| 62 |
|
|
| 63 |
/** |
|
| 64 |
* @brief Virtual methods table for all AosIOChannel objects. |
|
| 65 |
*/ |
|
| 66 |
static const struct AosIOChannelVMT _channelvmt = {
|
|
| 67 |
(size_t) 0, |
|
| 68 |
_channelwrite, |
|
| 69 |
_channelread, |
|
| 70 |
_channelput, |
|
| 71 |
_channelget, |
|
| 72 |
_channelputt, |
|
| 73 |
_channelgett, |
|
| 74 |
_channelwritet, |
|
| 75 |
_channelreadt, |
|
| 76 |
_channelctl, |
|
| 77 |
}; |
|
| 78 |
|
|
| 79 |
/** |
|
| 80 |
* @brief Virtual methods table for all AosIOStream objects. |
|
| 81 |
*/ |
|
| 82 |
static const struct AosIOStreamVMT _streamvmt = {
|
|
| 83 |
(size_t) 0, |
|
| 84 |
_streamwrite, |
|
| 85 |
_stremread, |
|
| 86 |
_streamput, |
|
| 87 |
_streamget, |
|
| 88 |
}; |
|
| 89 |
|
|
| 90 |
/******************************************************************************/ |
|
| 91 |
/* LOCAL FUNCTIONS */ |
|
| 92 |
/******************************************************************************/ |
|
| 32 | 93 |
|
| 33 | 94 |
/** |
| 34 | 95 |
* @brief Implementation of the BaseAsynchronousChannel write() method (inherited from BaseSequentialStream). |
| ... | ... | |
| 139 | 200 |
} |
| 140 | 201 |
|
| 141 | 202 |
/** |
| 142 |
* @brief Virtual methods table for all AosIOChannel objects. |
|
| 143 |
*/ |
|
| 144 |
static const struct AosIOChannelVMT _channelvmt = {
|
|
| 145 |
(size_t) 0, |
|
| 146 |
_channelwrite, |
|
| 147 |
_channelread, |
|
| 148 |
_channelput, |
|
| 149 |
_channelget, |
|
| 150 |
_channelputt, |
|
| 151 |
_channelgett, |
|
| 152 |
_channelwritet, |
|
| 153 |
_channelreadt, |
|
| 154 |
_channelctl, |
|
| 155 |
}; |
|
| 156 |
|
|
| 157 |
/** |
|
| 158 | 203 |
* @brief Implementation of the BaseSequentialStream write() method. |
| 159 | 204 |
*/ |
| 160 | 205 |
static size_t _streamwrite(void *instance, const uint8_t *bp, size_t n) |
| ... | ... | |
| 219 | 264 |
return 0; |
| 220 | 265 |
} |
| 221 | 266 |
|
| 222 |
/** |
|
| 223 |
* @brief Virtual methods table for all AosIOStream objects. |
|
| 224 |
*/ |
|
| 225 |
static const struct AosIOStreamVMT _streamvmt = {
|
|
| 226 |
(size_t) 0, |
|
| 227 |
_streamwrite, |
|
| 228 |
_stremread, |
|
| 229 |
_streamput, |
|
| 230 |
_streamget, |
|
| 231 |
}; |
|
| 267 |
/******************************************************************************/ |
|
| 268 |
/* EXPORTED FUNCTIONS */ |
|
| 269 |
/******************************************************************************/ |
|
| 232 | 270 |
|
| 233 | 271 |
/** |
| 234 | 272 |
* @brief Initializes an aos_iostream_t object. |
Also available in: Unified diff