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