Contiki-NG
Toggle main menu visibility
Loading...
Searching...
No Matches
diskio.c
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2016, Benoît Thébaudeau <benoit@wsystem.com>
3
* All rights reserved.
4
*
5
* Redistribution and use in source and binary forms, with or without
6
* modification, are permitted provided that the following conditions are met:
7
*
8
* 1. Redistributions of source code must retain the above copyright notice,
9
* this list of conditions and the following disclaimer.
10
*
11
* 2. Redistributions in binary form must reproduce the above copyright notice,
12
* this list of conditions and the following disclaimer in the documentation
13
* and/or other materials provided with the distribution.
14
*
15
* 3. Neither the name of the copyright holder nor the names of its contributors
16
* may be used to endorse or promote products derived from this software
17
* without specific prior written permission.
18
*
19
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
20
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
22
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
23
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
24
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
25
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
26
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
27
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
28
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
29
* POSSIBILITY OF SUCH DAMAGE.
30
*/
31
/**
32
* \addtogroup remote-fat
33
* @{
34
*
35
* \file
36
* Implementation of the default port of FatFs on RE-Mote.
37
*/
38
#include "diskio.h"
39
#include "
dev/storage/disk/mmc/mmc.h
"
40
#include "
rtcc.h
"
41
42
/*----------------------------------------------------------------------------*/
43
DSTATUS __attribute__((__weak__))
44
disk_status(BYTE pdrv)
45
{
46
return
~mmc_driver.status(pdrv);
47
}
48
/*----------------------------------------------------------------------------*/
49
DSTATUS __attribute__((__weak__))
50
disk_initialize(BYTE pdrv)
51
{
52
return
~mmc_driver.initialize(pdrv);
53
}
54
/*----------------------------------------------------------------------------*/
55
DRESULT __attribute__((__weak__))
56
disk_read(BYTE pdrv, BYTE *buff, DWORD sector, UINT
count
)
57
{
58
switch
(mmc_driver.read(pdrv, buff, sector,
count
)) {
59
default
:
60
case
DISK_RESULT_NO_INIT
:
61
case
DISK_RESULT_IO_ERROR
:
return
RES_ERROR;
62
case
DISK_RESULT_OK
:
return
RES_OK;
63
case
DISK_RESULT_WR_PROTECTED
:
return
RES_WRPRT;
64
case
DISK_RESULT_INVALID_ARG
:
return
RES_PARERR;
65
}
66
}
67
/*----------------------------------------------------------------------------*/
68
DRESULT __attribute__((__weak__))
69
disk_write(BYTE pdrv,
const
BYTE *buff, DWORD sector, UINT
count
)
70
{
71
switch
(mmc_driver.write(pdrv, buff, sector,
count
)) {
72
default
:
73
case
DISK_RESULT_NO_INIT
:
74
case
DISK_RESULT_IO_ERROR
:
return
RES_ERROR;
75
case
DISK_RESULT_OK
:
return
RES_OK;
76
case
DISK_RESULT_WR_PROTECTED
:
return
RES_WRPRT;
77
case
DISK_RESULT_INVALID_ARG
:
return
RES_PARERR;
78
}
79
}
80
/*----------------------------------------------------------------------------*/
81
DRESULT __attribute__((__weak__))
82
disk_ioctl(BYTE pdrv, BYTE cmd,
void
*buff)
83
{
84
switch
(mmc_driver.ioctl(pdrv, cmd, buff)) {
85
default
:
86
case
DISK_RESULT_NO_INIT
:
87
case
DISK_RESULT_IO_ERROR
:
return
RES_ERROR;
88
case
DISK_RESULT_OK
:
return
RES_OK;
89
case
DISK_RESULT_WR_PROTECTED
:
return
RES_WRPRT;
90
case
DISK_RESULT_INVALID_ARG
:
return
RES_PARERR;
91
}
92
}
93
/*----------------------------------------------------------------------------*/
94
DWORD __attribute__((__weak__))
95
get_fattime(
void
)
96
{
97
simple_td_map td;
98
99
return
rtcc_get_time_date
(&td) == AB08_SUCCESS ?
100
(2000 + td.years - 1980) << 25 | td.months << 21 | td.day << 16 |
101
td.hours << 11 | td.minutes << 5 | td.seconds : 0;
102
}
103
/*----------------------------------------------------------------------------*/
104
105
/** @} */
count
static volatile uint64_t count
Num.
Definition
clock.c:50
DISK_RESULT_IO_ERROR
@ DISK_RESULT_IO_ERROR
Unrecoverable I/O error.
Definition
disk.h:68
DISK_RESULT_OK
@ DISK_RESULT_OK
Success.
Definition
disk.h:67
DISK_RESULT_INVALID_ARG
@ DISK_RESULT_INVALID_ARG
Invalid argument.
Definition
disk.h:71
DISK_RESULT_WR_PROTECTED
@ DISK_RESULT_WR_PROTECTED
Write-protected medium.
Definition
disk.h:69
DISK_RESULT_NO_INIT
@ DISK_RESULT_NO_INIT
Device not initialized.
Definition
disk.h:70
rtcc_get_time_date
int8_t rtcc_get_time_date(simple_td_map *data)
Get the current time and date.
Definition
rtcc.c:368
mmc.h
Header file for the SD/MMC device driver.
rtcc.h
Header file for the RE-Mote RF antenna switch.
arch
platform
zoul
fs
fat
diskio.c
Generated on
for Contiki-NG by
1.17.0