' *********************************************************************
'           xvs.library 33.37 by Georg Hörmann & Dirk Stöcker
'             HBASIC functions/subroutines 33.37.1 (4.6.02)
'
'                  C->HBASIC manual '8-) conversion
'              (c) Dámaso D. Estévez <ast_dde@yahoo.es>
' *********************************************************************
'              Please read the comments/remarks included
'          in clib/xvs_protos.h and libraries/xvs.h files and
'                    the documentation for coders
'   (all included in the package Aminet:util/virus/xvslibrary.lha).
'      ----------------------------------------------------------
'   Por favor, lea los comentarios/notas incluidas en los ficheros
'             clib/xvs_protos.h y libraries/xvs.h
'             y en la documentación para programadores
' (todo ello incluido en el paquete Aminet:util/virus/xvslibrary.lha).
' *********************************************************************

REM $underlines

CONST xvs_DosBase&  = 40&
CONST xvs_ExecBase& = 44&

CONST XVS_VERSION&  = 33&

'      xvsVirusList struct's fields
' Campos de la estructura xvsVirusList
' ------------------------------------
CONST xvsvl_List%          =  0% ' struct List
CONST xvsvl_Count%         = 14% ' uword
' ------------------------------------
CONST xvsVirusList_sizeof% = 16%

' Values for xvsVirusList&+xvsl_List%+lh_Type%
'          & xvsCreateVirusList()
' --------------------------------------------
CONST XVSLIST_BOOTVIRUSES& = &H42&
CONST XVSLIST_DATAVIRUSES& = &H44& ' v33.34
CONST XVSLIST_FILEVIRUSES& = &H46&
CONST XVSLIST_LINKVIRUSES& = &H4C&

' Object types / Tipos de objetos
' -------------------------------
CONST XVSOBJ_BOOTINFO&     = 1&
CONST XVSOBJ_SECTORINFO&   = 2&
CONST XVSOBJ_FILEINFO&     = 3&
CONST XVSOBJ_MEMORYINFO&   = 4&
CONST XVSOBJ_MAX&          = 4& ' PRIVATE !!!

'     xvsBootblockInfo struct's fields
' Campos de la estructura xvsBootblockInfo
' ----------------------------------------
CONST xvsbi_Bootblock%     =  0% ' aptr
CONST xvsbi_Name%          =  4% ' strptr
CONST xvsbi_BootType%      =  8% ' ubyte
CONST xvsbi_DosType%       =  9% ' ubyte
CONST xvsbi_ChkSumFlag%    = 10% ' ubyte
CONST xvsbi_Reserved0%     = 11% ' ubyte - PRIVATE !!!
' ----------------------------------------
CONST xvsBootInfo_sizeof%  = 12%

' Values for xvsBootInfo&+xvsbi_BootType%
'         & xvsInstallBootblock()
' ----------------------------------------
CONST XVSBT_UNKNOWN&       =  0&
CONST XVSBT_NOTDOS&        =  1&
CONST XVSBT_STANDARD13&    =  2&
CONST XVSBT_STANDARD20&    =  3&
CONST XVSBT_VIRUS&         =  4& ' xvsbi_Name -> ptr virus name
CONST XVSBT_UNINSTALLED&   =  5&

'     xvsSectorInfo struct's fields
' Campos de la estructura xvsSectorInfo
' -------------------------------------
CONST xvssi_Sector&         =  0% ' aptr
CONST xvssi_Key&            =  4% ' ulong
CONST xvssi_Name&           =  8% ' strptr
CONST xvssi_SectorType&     = 12% ' ubyte
CONST xvssi_InternalType&   = 13% ' ubyte -  PRIVATE !!!
' -------------------------------------
CONST xvsSectorInfo_sizeof% = 14%

' Values for xvsSectorInfo&+xvssi_SectorType%
' -------------------------------------------
CONST XVSST_UNKNOWN&       = 0& '
CONST XVSST_DESTROYED&     = 1& ' xvssi_Name -> ptr virus name
CONST XVSST_INFECTED&      = 2& ' xvssi_Name -> ptr virus name

'    File Info struct's fields
' Campos de la estructura File Info
' ---------------------------------
CONST xvsfi_File&          =  0% ' aptr
CONST xvsfi_FileLen&       =  4% ' ulong
CONST xvsfi_Name&          =  8% ' strptr
CONST xvsfi_FileType&      = 12% ' ubyte
CONST xvsfi_ModifiedFlag&  = 13% ' ubyte
CONST xvsfi_ErrorCode&     = 14& ' ubyte
CONST xvsfi_InternalType&  = 15& ' ubyte - PRIVATE !!!
CONST xvsfi_Fixed&         = 16% ' aptr
CONST xvsfi_FixedLen&      = 20% ' ulong
' ---------------------------------
CONST xvsFileInfo_sizeof%  = 24%

' Values for xvsFileInfo&+xvsfi_FileType%
' ---------------------------------------
CONST XVSFT_EMPTYFILE&     =  1&
CONST XVSFT_DATAFILE&      =  2&
CONST XVSFT_EXEFILE&       =  3&
CONST XVSFT_DATAVIRUS&     =  4& ' xvsfi_Name -> ptr virus name
CONST XVSFT_FILEVIRUS&     =  5& ' xvsfi_Name -> ptr virus name
CONST XVSFT_LINKVIRUS&     =  6& ' xvsfi_Name -> ptr virus name

' Values for xvsFileInfo&+xvsfi_ErrorCode%
' ----------------------------------------
CONST XVSERR_WRONGFILETYPE&   = 1&
CONST XVSERR_FILETRUNCATED&   = 2&
CONST XVSERR_UNSUPPORTEDHUNK& = 3&
CONST XVSERR_UNEXPECTEDDATA&  = 4&
CONST XVSERR_OUTOFMEMORY&     = 5&
CONST XVSERR_NOTIMPLEMENTED&  = 6& ' v33.15

'    Memory Info struct's fields
' Campos de la estructura Memory Info
' -----------------------------------
CONST xvsmi_Count&          =  0% ' uword
CONST xvsmi_Reserved0&      =  2% ' uword  - PRIVATE !!!
CONST xvsmi_NameArray&      =  4% ' strptr - The #1 virus name's pointer
' xvsmi_NameArray& +  4&                  -> The #2 virus name's pointer
' xvsmi_NameArray& +  8&                  -> The #3 virus name's pointer
' xvsmi_NameArray& + 12&                  -> The #4 virus name's pointer
' xvsmi_NameArray& + 16&                  -> The #5 virus name's pointer
' -----------------------------------
CONST xvsMemoryInfo_sizeof% = 20%
