blob: 4e640d9d698f9543e0f14eca74114212ff2496a6 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
/* -------------------------------------------
Copyright ZKA Technologies
Purpose: DDK Devices.
------------------------------------------- */
#pragma once
#include <DDKit/KernelStd.h>
struct _kernelDevice;
/// @brief Kernel Device driver.
typedef struct _kernelDevice
{
char name[255]; // the device name. Could be /./DEVICE_NAME/
void* (*read)(void* arg, int len); // read from device.
void (*write)(void* arg, int len);
void (*wait)(void); // write to device.
struct _kernelDevice* (*open)(const char* path); // open device.
void (*close)(struct _kernelDevice* dev); // close device.
} kernelDevice, *kernelDeviceRef;
/// @brief Open a new device from path.
/// @param devicePath the device's path.
DK_EXTERN kernelDeviceRef kernelOpenDevice(const char* devicePath);
/// @brief Close any device.
/// @param device valid device.
DK_EXTERN void kernelCloseDevice(kernelDeviceRef device);
|