genode/os/src/drivers/sd_card/pl180/host_driver.h
2013-03-22 15:26:13 +01:00

87 lines
2.2 KiB
C

/*
* \brief SD-card host-interface driver
* \author Christian Helmuth
* \date 2011-05-19
*/
/*
* Copyright (C) 2011-2013 Genode Labs GmbH
*
* This file is part of the Genode OS framework, which is distributed
* under the terms of the GNU General Public License version 2.
*/
#ifndef _HOST_DRIVER_H_
#define _HOST_DRIVER_H_
struct Host_driver
{
/**
* Send request
*
* \param cmd command index
* \param out_resp response for command
* (set to 0 if not expected)
*/
virtual void request(unsigned char cmd,
unsigned *out_resp) = 0;
/**
* Send request
*
* \param cmd command index
* \param arg command argument
* \param out_resp response for command
* (set to 0 if not expected)
*/
virtual void request(unsigned char cmd,
unsigned arg,
unsigned *out_resp) = 0;
/**
* Send data-read request
*
* \param cmd command index
* \param arg command argument
* \param length number of bytes in data transfer
* \param out_resp response for command
* (set to 0 if not expected)
*/
virtual void read_request(unsigned char cmd,
unsigned arg,
unsigned length,
unsigned *out_resp) = 0;
/**
* Send data-write request
*
* \param cmd command index
* \param arg command argument
* \param length number of bytes in data transfer
* \param out_resp response for command
* (set to 0 if not expected)
*/
virtual void write_request(unsigned char cmd,
unsigned arg,
unsigned length,
unsigned *out_resp) = 0;
/**
* Read data
*
* Used to read the data after a successful data-read request.
*/
virtual void read_data(unsigned length,
char *out_buffer) = 0;
/**
* Write data
*
* Used to write the data after a successful data-write request.
*/
virtual void write_data(unsigned length,
char const *buffer) = 0;
};
#endif /* _HOST_DRIVER_H_ */