| 1 | /*************************************************************** |
|---|
| 2 | ** |
|---|
| 3 | ** Broadcom Corp. Confidential |
|---|
| 4 | ** Copyright 1998-2000 Broadcom Corp. All Rights Reserved. |
|---|
| 5 | ** |
|---|
| 6 | ** THIS SOFTWARE MAY ONLY BE USED SUBJECT TO AN EXECUTED |
|---|
| 7 | ** SOFTWARE LICENSE AGREEMENT BETWEEN THE USER AND BROADCOM. |
|---|
| 8 | ** YOU HAVE NO RIGHT TO USE OR EXPLOIT THIS MATERIAL EXCEPT |
|---|
| 9 | ** SUBJECT TO THE TERMS OF SUCH AN AGREEMENT. |
|---|
| 10 | ** |
|---|
| 11 | ** File: fstore.c |
|---|
| 12 | ** Description: Flash storage manager |
|---|
| 13 | ** |
|---|
| 14 | ****************************************************************/ |
|---|
| 15 | /* include files */ |
|---|
| 16 | #include <stdio.h> |
|---|
| 17 | #include "bapp_store.h" |
|---|
| 18 | #include "bapp_util.h" |
|---|
| 19 | |
|---|
| 20 | static char* s_data = NULL; |
|---|
| 21 | bresult fstore_init(fstore_t *p_fs) |
|---|
| 22 | { |
|---|
| 23 | return b_ok; |
|---|
| 24 | } |
|---|
| 25 | bresult fstore_update(fstore_t *p_fs, |
|---|
| 26 | fstore_data_type_t type, |
|---|
| 27 | void *data, |
|---|
| 28 | unsigned int length) |
|---|
| 29 | { |
|---|
| 30 | FILE* fstore_file = fopen("fstore.dat","wb+"); |
|---|
| 31 | |
|---|
| 32 | if (!fstore_file) |
|---|
| 33 | { |
|---|
| 34 | return berr_invalid_parameter; |
|---|
| 35 | } |
|---|
| 36 | fwrite(data,1,length,fstore_file); |
|---|
| 37 | fclose(fstore_file); |
|---|
| 38 | return b_ok; |
|---|
| 39 | } |
|---|
| 40 | bresult fstore_get(fstore_t *p_fs, |
|---|
| 41 | fstore_data_type_t type, |
|---|
| 42 | void **data, |
|---|
| 43 | unsigned int *length) |
|---|
| 44 | { |
|---|
| 45 | long f_len; |
|---|
| 46 | FILE* fstore_file = fopen("fstore.dat","wb+"); |
|---|
| 47 | |
|---|
| 48 | if (!fstore_file) |
|---|
| 49 | { |
|---|
| 50 | return berr_invalid_parameter; |
|---|
| 51 | } |
|---|
| 52 | fseek(fstore_file,0,SEEK_END); |
|---|
| 53 | f_len = ftell(fstore_file); |
|---|
| 54 | fseek(fstore_file,0,SEEK_SET); |
|---|
| 55 | |
|---|
| 56 | if (f_len != *length) |
|---|
| 57 | { |
|---|
| 58 | if (s_data) |
|---|
| 59 | { |
|---|
| 60 | bapp_util_free(s_data); |
|---|
| 61 | } |
|---|
| 62 | fclose(fstore_file); |
|---|
| 63 | return berr_invalid_parameter; |
|---|
| 64 | } |
|---|
| 65 | if (!s_data) |
|---|
| 66 | { |
|---|
| 67 | s_data = (char*)bapp_util_malloc(f_len); |
|---|
| 68 | } |
|---|
| 69 | *data = s_data; |
|---|
| 70 | |
|---|
| 71 | fread(s_data,1,f_len,fstore_file); |
|---|
| 72 | fclose(fstore_file); |
|---|
| 73 | return b_ok; |
|---|
| 74 | } |
|---|
| 75 | |
|---|