Kernel - Integrated PTY with VTerm, userland currently broken
[tpg/acess2.git] / Usermode / Libraries / ld-acess.so_src / include_exp / acess / devices.h
index 8c0955a..9ee77b0 100644 (file)
@@ -1,50 +1,70 @@
 /**
- * \file drivers.h
+ * Acess2 User Core
+ * - By John Hodge (thePowersGang)
+ *
+ * acess/devices.h
+ * - Core device IOCtls
  */
-#ifndef _SYS_DRIVERS_H
-#define _SYS_DRIVERS_H
+#ifndef _ACESS_DRIVERS_H
+#define _ACESS_DRIVERS_H
 
 // === COMMON ===
 enum eDrv_Common {
+       /**
+        * ioctl(...)
+        * \brief Get driver type
+        * \return The relevant entry from ::eTplDrv_Type
+        */
        DRV_IOCTL_TYPE,
+       
+       /**
+        * ioctl(..., char *dest[32])
+        * \brief Get driver identifier string
+        * \return 0 on no error
+        * 
+        * This call sets the 32-byte array \a dest to the drivers 31 character
+        * identifier. This identifier must be unique to the driver series.
+        */
        DRV_IOCTL_IDENT,
-       DRV_IOCTL_VER,
+       
+       /**
+        * ioctl(...)
+        * \brief Get driver version number
+        * \return 24-bit BCD version number (2.2.2)
+        * 
+        * This call returns the 6-digit (2 major, 2 minor, 2 patch) version
+        * number of the driver.
+        */
+       DRV_IOCTL_VERSION,
+       
+       /**
+        * ioctl(..., char *name)
+        * \brief Get a IOCtl call ID from a symbolic name
+        * \return ID number of the call, or 0 if not found
+        * 
+        * This call allows user applications to not need to know the ID numbers
+        * of this driver's IOCtl calls by taking a string and returning the
+        * IOCtl call number associated with that method name.
+        */
        DRV_IOCTL_LOOKUP,
+
+       /**
+        * \brief First non-reserved IOCtl number for driver extension
+        */
+       DRV_IOCTL_USERMIN = 0x1000,
 };
 
 enum eDrv_Types {
-       DRV_TYPE_NULL,          //!< NULL Type - Custom Interface
-       DRV_TYPE_TERMINAL,      //!< Terminal
-       DRV_TYPE_VIDEO,         //!< Video - LFB
+       DRV_TYPE_NULL,          //!< NULL Type - Custom Interface (must support core calls)
+       DRV_TYPE_MISC,          //!< Miscelanious Compilant - Supports the core calls
+       DRV_TYPE_TERMINAL,      //!< Terminal - see api_drv_terminal.h
+       DRV_TYPE_VIDEO,         //!< Video - see api_drv_video.h
        DRV_TYPE_SOUND,         //!< Audio
+       DRV_TYPE_DISK,          //!< Disk - see api_drv_disk.h
+       DRV_TYPE_KEYBOARD,      //!< Keyboard - see api_drv_keyboard.h
        DRV_TYPE_MOUSE,         //!< Mouse
-       DRV_TYPE_JOYSTICK       //!< Joystick / Gamepad
-};
-
-// === VIDEO ===
-enum eDrv_Video {
-       VID_IOCTL_SETMODE = 4,
-       VID_IOCTL_GETMODE,
-       VID_IOCTL_FINDMODE,
-       VID_IOCTL_MODEINFO,
-       VID_IOCTL_REQLFB        // Request LFB
-};
-struct sVideo_IOCtl_Mode {
-       short   id;
-       unsigned short  width;
-       unsigned short  height;
-       unsigned short  bpp;
+       DRV_TYPE_JOYSTICK,      //!< Joystick / Gamepad
+       DRV_TYPE_NETWORK        //!< Network Device - see api_drv_network.h
 };
-typedef struct sVideo_IOCtl_Mode       tVideo_IOCtl_Mode;      //!< Mode Type
-
-// === MOUSE ===
-enum eDrv_Mouse {
-       MSE_IOCTL_SENS = 4,
-       MSE_IOCTL_MAX_X,
-       MSE_IOCTL_MAX_Y
-};
-
-// === Terminal ===
-#include "devices/terminal.h"
 
 #endif

UCC git Repository :: git.ucc.asn.au