HALFRED  0.4.0
hal_iodevice.h
Go to the documentation of this file.
1 
10 #ifndef HAL_IODEVICE_H
11 #define HAL_IODEVICE_H
12 
13 #include <stdint.h>
14 #include <stddef.h>
15 #include <signal.h>
16 #include <stdarg.h>
17 #include "hal_config.h"
18 #include "hal_defs.h"
19 #if defined HAL_IO_OS_INTEGRATION && (HAL_IO_OS_INTEGRATION != 0)
20 #include "hal_os.h"
21 #endif
22 
258 
259 
260 // -----------------------------------------------------------------------------
261 // PUBLIC TYPEDEFS
262 // -----------------------------------------------------------------------------
263 
264 #if defined HAL_IO_OS_INTEGRATION && (HAL_IO_OS_INTEGRATION != 0)
265 
270 typedef OSTime IOTime;
271 
272 #else
273 
278 typedef unsigned int IOTime;
279 
280 #endif // HAL_IO_OS_INTEGRATION
281 
282 
287 typedef struct IODeviceDesc* IODevice;
288 
289 
290 // -----------------------------------------------------------------------------
291 // PUBLIC API
292 // -----------------------------------------------------------------------------
293 
300 HALRESULT IODEV_Init(IODevice iodevice);
301 
308 HALRESULT IODEV_Deinit(IODevice iodevice);
309 
317 HALRESULT IODEV_IOCtl(IODevice iodevice, unsigned int request, ...);
318 
325 HALRESULT IODEV_EnableWrite(IODevice iodevice);
326 
333 HALRESULT IODEV_DisableWrite(IODevice iodevice);
334 
341 HALRESULT IODEV_EnableRead(IODevice iodevice);
342 
349 HALRESULT IODEV_DisableRead(IODevice iodevice);
350 
357 size_t IODEV_GetReadCount(IODevice iodevice);
358 
365 size_t IODEV_GetWriteSpace(IODevice iodevice);
366 
377 size_t IODEV_Read(IODevice iodevice, void* data, size_t size, IOTime timeout);
378 
389 size_t IODEV_Write(IODevice iodevice, const void* data, size_t size, IOTime timeout);
390 
401 int IODEV_Lock(IODevice iodevice, unsigned int timeout);
402 
409 void IODEV_Unlock(IODevice iodevice);
410 
414 #endif // HAL_IODEVICE_H
struct IODeviceDesc * IODevice
Definition: hal_iodevice.h:287
HALRESULT
Definition: hal_defs.h:16
HALRESULT IODEV_IOCtl(IODevice iodevice, unsigned int request,...)
int IODEV_Lock(IODevice iodevice, unsigned int timeout)
HALRESULT IODEV_DisableRead(IODevice iodevice)
Definition: hali_iodevice.h:44
HALRESULT IODEV_EnableWrite(IODevice iodevice)
OSTime IOTime
Definition: hal_iodevice.h:270
HALRESULT IODEV_EnableRead(IODevice iodevice)
void IODEV_Unlock(IODevice iodevice)
size_t IODEV_Write(IODevice iodevice, const void *data, size_t size, IOTime timeout)
HALRESULT IODEV_Init(IODevice iodevice)
HALRESULT IODEV_Deinit(IODevice iodevice)
size_t IODEV_GetWriteSpace(IODevice iodevice)
size_t IODEV_GetReadCount(IODevice iodevice)
Various HAL definitions.
HALRESULT IODEV_DisableWrite(IODevice iodevice)
Operating system (OS) API.
size_t IODEV_Read(IODevice iodevice, void *data, size_t size, IOTime timeout)