openbcm

Git mirror of https://github.com/Broadcom-Network-Switching-Software/OpenBCM
git clone git://git.finwo.net/mirror/broadcom/openbcm
Log | Files | Refs | README

dffs_driver.h (15450B)


      1 /* 
      2  * This license is set out in https://raw.githubusercontent.com/Broadcom-Network-Switching-Software/OpenBCM/master/Legal/LICENSE file.
      3  * 
      4  * Copyright 2007-2020 Broadcom Inc. All rights reserved.
      5 */
      6 
      7 
      8 #ifndef __DFFS_DRIVER_H_INCLUDED__
      9 /* { */
     10 #define __DFFS_DRIVER_H_INCLUDED__
     11 
     12 #ifdef  __cplusplus
     13 extern "C" {
     14 #endif
     15 
     16 /*************
     17  * INCLUDES  *
     18  */
     19 /* { */
     20 #include "dffs_low.h"
     21 #include "dffs_descriptor.h"
     22 /* } */
     23 
     24 /*************
     25  * DEFINES   *
     26  */
     27 /* { */
     28 
     29 /* } */
     30 
     31 /*************
     32  *  MACROS   *
     33  */
     34 /* { */
     35 
     36 /* } */
     37 
     38 /*************
     39  * TYPE DEFS *
     40  */
     41 /* { */
     42   typedef enum {
     43     DFFS_SHORT_FORMAT = 0,
     44     DFFS_LONG_FORMAT
     45   } DFFS_FORMAT_TYPE;
     46 
     47 /* } */
     48 
     49 /*************
     50  * GLOBALS   *
     51  */
     52 /* { */
     53 
     54 /* } */
     55 
     56 /*************
     57  * FUNCTIONS *
     58  */
     59 /* { */
     60 
     61 /*****************************************************
     62 *NAME
     63 *  dffs_drv_clear_dffs
     64 *TYPE:
     65 *  PROC
     66 *DATE:
     67 *  03/07/2006
     68 *FUNCTION:
     69 *  Erases DFFS from flash
     70 *INPUT:
     71 *  SOC_SAND_DIRECT:
     72 *    DFFS_LOW_FLASH_INFO_TYPE* flash_info - flash information
     73 *    DFFS_DESCRIPTOR_TYPE* dffs_descriptor - file system descriptor
     74 *    unsigned char silent - if TRUE, printing is suppressed
     75 *  SOC_SAND_INDIRECT:
     76 *    None.
     77 *OUTPUT:
     78 *  SOC_SAND_DIRECT:
     79 *    error indication
     80 *  SOC_SAND_INDIRECT:
     81 *    None.
     82 *REMARKS:
     83 *    None.
     84 *SEE ALSO:
     85  */
     86 unsigned int
     87   dffs_drv_clear_dffs(
     88     DFFS_LOW_FLASH_INFO_TYPE* flash_info,
     89     DFFS_DESCRIPTOR_TYPE*     dffs_descriptor,
     90     unsigned char silent
     91   );
     92 
     93 /*****************************************************
     94 *NAME
     95 *  dffs_drv_file_exists
     96 *TYPE:
     97 *  PROC
     98 *DATE:
     99 *  06/07/2006
    100 *FUNCTION:
    101 *  Checks if the requested file exists.
    102 *INPUT:
    103 *  SOC_SAND_DIRECT:
    104 *    DFFS_DESCRIPTOR_TYPE* dffs_descriptor - file system descriptor
    105 *    char*                     file_name - the name of the requested file
    106 *    unsigned int*             does_file_exist - TRUE if the file exists
    107 *                               on dffs
    108 *    unsigned char silent - if TRUE, printing is suppressed
    109 *  SOC_SAND_INDIRECT:
    110 *    None.
    111 *OUTPUT:
    112 *  SOC_SAND_DIRECT:
    113 *    error indication
    114 *  SOC_SAND_INDIRECT:
    115 *    TRUE/FALSE.
    116 *REMARKS:
    117 *    None.
    118 *SEE ALSO:
    119  */
    120 unsigned int
    121   dffs_drv_file_exists(
    122     DFFS_DESCRIPTOR_TYPE*     dffs_descriptor,
    123     char*                     file_name,
    124     unsigned int*             does_file_exist,
    125     unsigned char             silent
    126   );
    127 
    128 /*****************************************************
    129 *NAME
    130 *   dffs_drv_get_file_size
    131 *TYPE:
    132 *  PROC
    133 *DATE:
    134 *  02/07/2006
    135 *FUNCTION:
    136 *  Reads the requested file from flash to the in-memory buffer.
    137 *INPUT:
    138 *  SOC_SAND_DIRECT:
    139 *    DFFS_LOW_FLASH_INFO_TYPE* flash_info - flash information
    140 *    DFFS_DESCRIPTOR_TYPE* dffs_descriptor - file system descriptor
    141 *    char*                     file_name - the name of the requested file
    142 *    unsigned long*            file_size - the size of the requested file
    143 *    unsigned char silent - if TRUE, printing is suppressed
    144 *  SOC_SAND_INDIRECT:
    145 *    None.
    146 *OUTPUT:
    147 *  SOC_SAND_DIRECT:
    148 *    error indication
    149 *  SOC_SAND_INDIRECT:
    150 *    file_size.
    151 *REMARKS:
    152 *    None.
    153 *SEE ALSO:
    154  */
    155 unsigned int
    156   dffs_drv_get_file_size(
    157     DFFS_LOW_FLASH_INFO_TYPE* flash_info,
    158     DFFS_DESCRIPTOR_TYPE*     dffs_descriptor,
    159     char*                     file_name,
    160     uint32*            file_size,
    161     unsigned char             silent
    162   );
    163 
    164 /*****************************************************
    165 *NAME
    166 *   dffs_drv_file_from_flash
    167 *TYPE:
    168 *  PROC
    169 *DATE:
    170 *  02/07/2006
    171 *FUNCTION:
    172 *  Reads the requested file from flash to the in-memory buffer.
    173 *INPUT:
    174 *  SOC_SAND_DIRECT:
    175 *    DFFS_LOW_FLASH_INFO_TYPE* flash_info - flash information
    176 *    DFFS_DESCRIPTOR_TYPE* dffs_descriptor - file system descriptor
    177 *    char*                     file_name - the name of the requested file
    178 *    char*                     file_size - the size of the requested file
    179 *    char*                     file_buff - a memory allocated for the file
    180 *    unsigned char silent - if TRUE, printing is suppressed
    181 *  SOC_SAND_INDIRECT:
    182 *    None.
    183 *OUTPUT:
    184 *  SOC_SAND_DIRECT:
    185 *    error indication
    186 *  SOC_SAND_INDIRECT:
    187 *    file_buff.
    188 *REMARKS:
    189 *    None.
    190 *SEE ALSO:
    191  */
    192 unsigned int
    193   dffs_drv_file_from_flash(
    194     DFFS_LOW_FLASH_INFO_TYPE* flash_info,
    195     DFFS_DESCRIPTOR_TYPE*     dffs_descriptor,
    196     char*                     file_name,
    197     unsigned long             file_size,
    198     char*                     file_buff,
    199     unsigned char             silent
    200   );
    201 
    202 
    203 /*****************************************************
    204 *NAME
    205 *   dffs_drv_file_to_flash
    206 *TYPE:
    207 *  PROC
    208 *DATE:
    209 *  02/07/2006
    210 *FUNCTION:
    211 *  Writes the requested file to flash from the in-memory buffer.
    212 *INPUT:
    213 *  SOC_SAND_DIRECT:
    214 *    DFFS_LOW_FLASH_INFO_TYPE* flash_info - flash information
    215 *    DFFS_DESCRIPTOR_TYPE* dffs_descriptor - file system descriptor
    216 *    char*                     file_name - the name of the requested file
    217 *    char*                     file_size - the size of the requested file
    218 *    char*                     file_buff - the buffer containing the file
    219 *    unsigned char silent - if TRUE, printing is suppressed
    220 *  SOC_SAND_INDIRECT:
    221 *    None.
    222 *OUTPUT:
    223 *  SOC_SAND_DIRECT:
    224 *    error indication
    225 *  SOC_SAND_INDIRECT:
    226 *    None.
    227 *REMARKS:
    228 *    None.
    229 *SEE ALSO:
    230  */
    231 unsigned int
    232   dffs_drv_file_to_flash(
    233     DFFS_LOW_FLASH_INFO_TYPE* flash_info,
    234     DFFS_DESCRIPTOR_TYPE*     dffs_descriptor,
    235     char*                     file_name,
    236     unsigned long             file_size,
    237     char*                     file_buff,
    238     unsigned char             silent
    239   );
    240 
    241 
    242 /*****************************************************
    243 *NAME
    244 *   dffs_drv_delete_file
    245 *TYPE:
    246 *  PROC
    247 *DATE:
    248 *  02/07/2006
    249 *FUNCTION:
    250 *  Deletes the requested file.
    251 *INPUT:
    252 *  SOC_SAND_DIRECT:
    253 *    DFFS_LOW_FLASH_INFO_TYPE* flash_info - flash information
    254 *    DFFS_DESCRIPTOR_TYPE* dffs_descriptor - file system descriptor
    255 *    char*                     file_name - the name of the requested file
    256 *    unsigned char silent - if TRUE, printing is suppressed
    257 *  SOC_SAND_INDIRECT:
    258 *    None.
    259 *OUTPUT:
    260 *  SOC_SAND_DIRECT:
    261 *    error indication
    262 *  SOC_SAND_INDIRECT:
    263 *    None.
    264 *REMARKS:
    265 *    None.
    266 *SEE ALSO:
    267  */
    268 unsigned int
    269   dffs_drv_delete_file(
    270     DFFS_LOW_FLASH_INFO_TYPE* flash_info,
    271     DFFS_DESCRIPTOR_TYPE*     dffs_descriptor,
    272     char*                     file_name,
    273     unsigned char             silent
    274   );
    275 
    276 
    277 /*****************************************************
    278 *NAME
    279 *   dffs_drv_dir
    280 *TYPE:
    281 *  PROC
    282 *DATE:
    283 *  02/07/2006
    284 *FUNCTION:
    285 *  Prints to screen the file information on DFFS files.
    286 *INPUT:
    287 *  SOC_SAND_DIRECT:
    288 *    DFFS_LOW_FLASH_INFO_TYPE* flash_info - flash information
    289 *    DFFS_DESCRIPTOR_TYPE* dffs_descriptor - file system descriptor
    290 *    DFFS_FORMAT_TYPE          format - long or short format
    291 *    unsigned char silent - if TRUE, printing is suppressed
    292 *  SOC_SAND_INDIRECT:
    293 *    None.
    294 *OUTPUT:
    295 *  SOC_SAND_DIRECT:
    296 *    error indication
    297 *  SOC_SAND_INDIRECT:
    298 *    None.
    299 *REMARKS:
    300 *    None.
    301 *SEE ALSO:
    302  */
    303 unsigned int
    304   dffs_drv_dir(
    305     DFFS_LOW_FLASH_INFO_TYPE* flash_info,
    306     DFFS_DESCRIPTOR_TYPE*     dffs_descriptor,
    307     DFFS_FORMAT_TYPE          format,
    308     unsigned char             silent
    309   );
    310 
    311 /*****************************************************
    312 *NAME
    313 *   dffs_drv_diagnostics
    314 *TYPE:
    315 *  PROC
    316 *DATE:
    317 *  10/07/2006
    318 *FUNCTION:
    319 *  Prints general information on DFFS
    320 *INPUT:
    321 *  SOC_SAND_DIRECT:
    322 *    DFFS_LOW_FLASH_INFO_TYPE* flash_info - flash information
    323 *    DFFS_DESCRIPTOR_TYPE* dffs_descriptor - file system descriptor
    324 *    unsigned char silent - if TRUE, printing is suppressed
    325 *  SOC_SAND_INDIRECT:
    326 *    None.
    327 *OUTPUT:
    328 *  SOC_SAND_DIRECT:
    329 *    error indication
    330 *  SOC_SAND_INDIRECT:
    331 *    None.
    332 *REMARKS:
    333 *    None.
    334 *SEE ALSO:
    335  */
    336 unsigned int
    337   dffs_drv_diagnostics(
    338     DFFS_LOW_FLASH_INFO_TYPE* flash_info,
    339     DFFS_DESCRIPTOR_TYPE*     dffs_descriptor,
    340     unsigned char             silent
    341   );
    342 
    343 /*****************************************************
    344 *NAME
    345 *   dffs_drv_print_file
    346 *TYPE:
    347 *  PROC
    348 *DATE:
    349 *  02/07/2006
    350 *FUNCTION:
    351 *  Prints the contents of the requested file to screen.
    352 *INPUT:
    353 *  SOC_SAND_DIRECT:
    354 *    DFFS_LOW_FLASH_INFO_TYPE* flash_info - flash information
    355 *    DFFS_DESCRIPTOR_TYPE* dffs_descriptor - file system descriptor
    356 *    char*                     file_name - the name of the requested file
    357 *    unsigned long             size_int_bytes - the number of bytes to print
    358 *    unsigned char silent - if TRUE, printing is suppressed
    359 *  SOC_SAND_INDIRECT:
    360 *    None.
    361 *OUTPUT:
    362 *  SOC_SAND_DIRECT:
    363 *    error indication
    364 *  SOC_SAND_INDIRECT:
    365 *    None.
    366 *REMARKS:
    367 *    None.
    368 *SEE ALSO:
    369  */
    370 unsigned int
    371   dffs_drv_print_file(
    372     DFFS_LOW_FLASH_INFO_TYPE* flash_info,
    373     DFFS_DESCRIPTOR_TYPE*     dffs_descriptor,
    374     char*                     file_name,
    375     unsigned long             size_in_bytes,
    376     unsigned char             silent
    377   );
    378 
    379 
    380 /*****************************************************
    381 *NAME
    382 *   dffs_drv_set_version
    383 *TYPE:
    384 *  PROC
    385 *DATE:
    386 *  02/07/2006
    387 *FUNCTION:
    388 *  Sets the version field of the requested file.
    389 *INPUT:
    390 *  SOC_SAND_DIRECT:
    391 *    DFFS_LOW_FLASH_INFO_TYPE* flash_info - flash information
    392 *    DFFS_DESCRIPTOR_TYPE* dffs_descriptor - file system descriptor
    393 *    char*                     file_name - the name of the requested file
    394 *    unsigned char             version - the value to be set
    395 *    unsigned char silent - if TRUE, printing is suppressed
    396 *  SOC_SAND_INDIRECT:
    397 *    None.
    398 *OUTPUT:
    399 *  SOC_SAND_DIRECT:
    400 *    error indication
    401 *  SOC_SAND_INDIRECT:
    402 *    None.
    403 *REMARKS:
    404 *    None.
    405 *SEE ALSO:
    406  */
    407 unsigned int
    408   dffs_drv_set_version(
    409     DFFS_LOW_FLASH_INFO_TYPE* flash_info,
    410     DFFS_DESCRIPTOR_TYPE*     dffs_descriptor,
    411     char*                     file_name,
    412     unsigned char             version,
    413     unsigned char             silent
    414   );
    415 
    416 
    417 /*****************************************************
    418 *NAME
    419 *   dffs_drv_set_attr
    420 *TYPE:
    421 *  PROC
    422 *DATE:
    423 *  02/07/2006
    424 *FUNCTION:
    425 *  Sets the general attribute field of the requested file.'
    426 *  attr_index distinguishes between attr1, attr2 and attr3.
    427 *INPUT:
    428 *  SOC_SAND_DIRECT:
    429 *    DFFS_LOW_FLASH_INFO_TYPE* flash_info - flash information
    430 *    DFFS_DESCRIPTOR_TYPE* dffs_descriptor - file system descriptor
    431 *    char*                     file_name - the name of the requested file
    432 *    unsigned long             attribute - the value to be set
    433 *    unsigned char             attr_idx - the index of the general attribute
    434 *                               to be updated.
    435 *    unsigned char silent - if TRUE, printing is suppressed
    436 *  SOC_SAND_INDIRECT:
    437 *    None.
    438 *OUTPUT:
    439 *  SOC_SAND_DIRECT:
    440 *    error indication
    441 *  SOC_SAND_INDIRECT:
    442 *    None.
    443 *REMARKS:
    444 *    None.
    445 *SEE ALSO:
    446  */
    447 unsigned int
    448   dffs_drv_set_attr(
    449     DFFS_LOW_FLASH_INFO_TYPE* flash_info,
    450     DFFS_DESCRIPTOR_TYPE*     dffs_descriptor,
    451     char*                     file_name,
    452     unsigned long             attribute,
    453     unsigned char             attr_idx,
    454     unsigned char             silent
    455   );
    456 
    457 
    458 /*****************************************************
    459 *NAME
    460 *   dffs_drv_set_date
    461 *TYPE:
    462 *  PROC
    463 *DATE:
    464 *  02/07/2006
    465 *FUNCTION:
    466 *  Sets the date field of the requested file.
    467 * The date is a string 8 charecters long, i.e. 03/06/06
    468 *INPUT:
    469 *  SOC_SAND_DIRECT:
    470 *    DFFS_LOW_FLASH_INFO_TYPE* flash_info - flash information
    471 *    DFFS_DESCRIPTOR_TYPE* dffs_descriptor - file system descriptor
    472 *    char*                     file_name - the name of the requested file
    473 *    char                      date[DFFS_DATE_STR_SIZE] - the value to be set
    474 *    unsigned char silent - if TRUE, printing is suppressed
    475 *  SOC_SAND_INDIRECT:
    476 *    None.
    477 *OUTPUT:
    478 *  SOC_SAND_DIRECT:
    479 *    error indication
    480 *  SOC_SAND_INDIRECT:
    481 *    None.
    482 *REMARKS:
    483 *    None.
    484 *SEE ALSO:
    485  */
    486 unsigned int
    487   dffs_drv_set_date(
    488     DFFS_LOW_FLASH_INFO_TYPE* flash_info,
    489     DFFS_DESCRIPTOR_TYPE*     dffs_descriptor,
    490     char*                     file_name,
    491     char                      date[DFFS_DATE_STR_SIZE],
    492     unsigned char             silent
    493   );
    494 
    495 
    496 /*****************************************************
    497 *NAME
    498 *   dffs_drv_set_comment
    499 *TYPE:
    500 *  PROC
    501 *DATE:
    502 *  02/07/2006
    503 *FUNCTION:
    504 *  Sets the comment field of the requested file.
    505 *  A comment is a general text of
    506 *   max DFFS_COMMENT_STR_SIZE (20 on creation) charecters.
    507 *INPUT:
    508 *  SOC_SAND_DIRECT:
    509 *    DFFS_LOW_FLASH_INFO_TYPE* flash_info - flash information
    510 *    DFFS_DESCRIPTOR_TYPE* dffs_descriptor - file system descriptor
    511 *    char*                     file_name - the name of the requested file
    512 *    char                      comment[DFFS_COMMENT_STR_SIZE] - the value to be set
    513 *    unsigned char silent - if TRUE, printing is suppressed
    514 *  SOC_SAND_INDIRECT:
    515 *    None.
    516 *OUTPUT:
    517 *  SOC_SAND_DIRECT:
    518 *    error indication
    519 *  SOC_SAND_INDIRECT:
    520 *    None.
    521 *REMARKS:
    522 *    None.
    523 *SEE ALSO:
    524  */
    525 unsigned int
    526   dffs_drv_set_comment(
    527     DFFS_LOW_FLASH_INFO_TYPE* flash_info,
    528     DFFS_DESCRIPTOR_TYPE*     dffs_descriptor,
    529     char*                     file_name,
    530     char                      comment[DFFS_COMMENT_STR_SIZE],
    531     unsigned char             silent
    532   );
    533 
    534 
    535 /*****************************************************
    536 *NAME
    537 *   dffs_drv_print_comment
    538 *TYPE:
    539 *  PROC
    540 *DATE:
    541 *  02/07/2006
    542 *FUNCTION:
    543 *  Prints the comment field of the requested file to screen.
    544 *INPUT:
    545 *  SOC_SAND_DIRECT:
    546 *    DFFS_LOW_FLASH_INFO_TYPE* flash_info - flash information
    547 *    DFFS_DESCRIPTOR_TYPE* dffs_descriptor - file system descriptor
    548 *    char*                     file_name - the name of the requested file
    549 *    unsigned char silent - if TRUE, printing is suppressed
    550 *  SOC_SAND_INDIRECT:
    551 *    None.
    552 *OUTPUT:
    553 *  SOC_SAND_DIRECT:
    554 *    error indication
    555 *  SOC_SAND_INDIRECT:
    556 *    None.
    557 *REMARKS:
    558 *    None.
    559 *SEE ALSO:
    560  */
    561 unsigned int
    562   dffs_drv_print_comment(
    563     DFFS_LOW_FLASH_INFO_TYPE* flash_info,
    564     DFFS_DESCRIPTOR_TYPE*     dffs_descriptor,
    565     char*                     file_name,
    566     unsigned char             silent
    567   );
    568 
    569 /*****************************************************
    570 *NAME
    571 *  dffs_drv_set_defaults
    572 *TYPE:
    573 *  PROC
    574 *DATE:
    575 *  02/07/2006
    576 *FUNCTION:
    577 *  Sets a DFFS descriptor to a valid default values
    578 *INPUT:
    579 *  SOC_SAND_DIRECT:
    580 *    DFFS_LOW_FLASH_INFO_TYPE* flash_info - flash information
    581 *    DFFS_DESCRIPTOR_TYPE* dffs_descriptor - file system descriptor
    582 *    unsigned char silent - if TRUE, printing is suppressed
    583 *  SOC_SAND_INDIRECT:
    584 *    None.
    585 *OUTPUT:
    586 *  SOC_SAND_DIRECT:
    587 *    error indication
    588 *  SOC_SAND_INDIRECT:
    589 *    dffs_descriptor.
    590 *REMARKS:
    591 *    None.
    592 *SEE ALSO:
    593  */
    594 unsigned int
    595   dffs_drv_set_defaults(
    596     DFFS_LOW_FLASH_INFO_TYPE* flash_info,
    597     DFFS_DESCRIPTOR_TYPE* dffs_descriptor,
    598     unsigned char silent
    599   );
    600 
    601 
    602 /*****************************************************
    603 *NAME
    604 * char  dffs_signature_valid
    605 *TYPE:
    606 *  PROC
    607 *DATE:
    608 *  28/06/2006
    609 *FUNCTION:
    610 *  returns TRUE if the signature matches the expected pattern
    611 *INPUT:
    612 *  SOC_SAND_DIRECT:
    613 *    DFFS_DESCRIPTOR_TYPE* dffs_descriptor
    614 *  SOC_SAND_INDIRECT:
    615 *    None.
    616 *OUTPUT:
    617 *  SOC_SAND_DIRECT:
    618 *    TRUE / FALSE
    619 *  SOC_SAND_INDIRECT:
    620 *    None.
    621 *REMARKS:
    622 *    None.
    623 *SEE ALSO:
    624  */
    625 unsigned char
    626   dffs_signature_valid(
    627     DFFS_DESCRIPTOR_TYPE* dffs_descriptor
    628   );
    629 
    630 /*
    631  * Calculate dffs descriptor CRC, and verify it equals the contents
    632  *  of the CRC field.
    633  * It's caller's responsibility to verify dffs_descriptor is not NULL
    634  */
    635 unsigned char
    636   dffs_drv_desc_crc_is_valid(
    637     DFFS_DESCRIPTOR_TYPE* dffs_descriptor,
    638     unsigned char silent
    639   );
    640 /* } */
    641 
    642 #ifdef  __cplusplus
    643 }
    644 #endif
    645 
    646 /* } __DFFS_DRIVER_H_INCLUDED__*/
    647 #endif