Kernel - Finally fixed that corruption bug (description follows)
[tpg/acess2.git] / Kernel / include / tpl_drv_common.h
index f281c0e..ebc9130 100644 (file)
@@ -78,10 +78,31 @@ enum eTplDrv_IOCtl {
        DRV_IOCTL_LOOKUP
 };
 
-//! \brief eTplDrv_IOCtl.DRV_IOCTL_LOOKUP names for the core IOCtls
-//! These are the official lookup names of the core calls
+/**
+ * \brief eTplDrv_IOCtl.DRV_IOCTL_LOOKUP names for the core IOCtls
+ * These are the official lookup names of the core calls
+ */
 #define        DRV_IOCTLNAMES  "type", "ident", "version", "lookup"
 
+/**
+ * \brief Helper macro for the base IOCtl calls
+ * \param _type        Type number from eTplDrv_Type to return
+ * \param _ident       String of max 32-characters that identifies this driver
+ * \param _version     Driver's 8.8.8 BCD version number
+ * \param _ioctls      Pointer to the IOCtls string array
+ * \warning If you have DEBUG enabled in the calling file, this function
+ *          will do LEAVE()s before returning, so make sure that the
+ *          IOCtl function is ENTER()ed when using debug with this macro
+ * 
+ * Usage: (Id is the IOCtl call ID)
+ * \code
+ * switch(Id)
+ * {
+ * BASE_IOCTLS(DRV_TYPE_MISC, "Ident", 0x100, csaIOCtls)
+ * // Your IOCtls go here, starting at index 4
+ * }
+ * \endcode
+ */
 #define BASE_IOCTLS(_type, _ident, _version, _ioctls)  \
        case DRV_IOCTL_TYPE:    LEAVE('i', (_type));    return (_type);\
        case DRV_IOCTL_IDENT: {\
@@ -90,7 +111,7 @@ enum eTplDrv_IOCtl {
                }\
        case DRV_IOCTL_VERSION: LEAVE('x', (_version)); return (_version);\
        case DRV_IOCTL_LOOKUP:{\
-               int tmp = ModUtil_LookupString( (char**)(_ioctls), (char*)Data );\
+               int tmp = ModUtil_LookupString( _ioctls, (const char*)Data );\
                LEAVE('i', tmp);\
                return tmp;\
                }

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