/*
 * Copyright(C) 2000 Проект ИОК
 *
 * Этот файл содержит информацию, являющуюся
 * собственностью компании Крипто Про.
 *
 * Любая часть этого файла не может быть скопирована,
 * исправлена, переведена на другие языки,
 * локализована или модифицирована любым способом,
 * откомпилирована, передана по сети с или на
 * любую компьютерную систему без предварительного
 * заключения соглашения с компанией Крипто Про.
 */

/*!
 * \file $RCSfile$
 * \version $Revision: 214401 $
 * \date $Date:: 2020-07-02 10:19:13 +0300#$
 * \author $Author: sagafyin $
 * \brief Интерфейс таблеток DS19xx.
 */

#if !defined( _READER_DS_DS_CTX_H )
#define _READER_DS_DS_CTX_H

#include "reader.kit/reader.h"

#define DALLAS_FUN_IS_SAME_SER_NUM 0x2500

#if defined( __cplusplus )
extern "C" {
#endif
  
typedef DWORD (*DSReadFun)( TSupSysContext *context, size_t from, 
    size_t *length, unsigned char *buffer );

typedef DWORD (*DSWriteFun)( TSupSysContext *context, size_t from, 
    size_t *length, const unsigned char *buffer );

typedef struct TDSInfoIsSame_
{
    unsigned char unique[8];
} TDSInfoIsSame;

typedef struct TDSInfoConnectCarrier_
{
    unsigned char unique[8];
    TSupSysContext *context;
    DSReadFun read_proc;
    DSWriteFun write_proc;
    unsigned flags;
} TDSInfoConnectCarrier;

typedef struct TDSInfoUnique_
{
    unsigned char unique[8];
    TSupSysInfoText unique_str;
} TDSInfoUnique;

#if defined( __cplusplus )
}
#endif

#endif /* !_READER_DS_DS_H */
