/Chapter_07_Threads/00_Start/kernel/devices.h
C Header | 51 lines | 30 code | 16 blank | 5 comment | 0 complexity | 724d551d7a1fdd08d98ec5ef1999b3c5 MD5 | raw file
- /*! Devices - common interface */
- #pragma once
- #include <lib/types.h>
- /*! syscall wrappers -------------------------------------------------------- */
- int sys__device_open ( char *dev_name, void **dev );
- int sys__device_close ( void *dev );
- int sys__device_send ( void *data, size_t size, int flags, void *dev );
- int sys__device_recv ( void *data, size_t size, int flags, void *dev );
- int sys__set_default_stdin ( char *dev_name, void **dev );
- int sys__set_default_stdout ( char *dev_name, void **dev );
- #ifndef _KERNEL_
- typedef void kdevice_t;
- #else /* _KERNEL_ */
- #include <lib/list.h>
- #include <devices/devices.h>
- /*! Kernel device object */
- typedef struct _kdevice_t_
- {
- device_t dev;
- int open;
- list_h list; /* all devices are in list */
- }
- kdevice_t;
- /* interface */
- int k_devices_init ();
- kdevice_t *k_device_add ( device_t *kdev );
- int k_device_init ( kdevice_t *kdev, int flags, void *params, void *callback );
- int k_device_remove ( kdevice_t *kdev );
- kdevice_t *k_device_open ( char *name );
- void k_device_close ( kdevice_t *kdev );
- int k_device_send ( void *data, size_t size, int flags, kdevice_t *kdev );
- int k_device_recv ( void *data, size_t size, int flags, kdevice_t *kdev );
- /* include device headers */
- #include <arch/devices.h>
- #endif /* _KERNEL_ */