FreeCalypso > hg > fc-magnetite
view src/aci2/atb/ATBPb_i.h @ 638:cab2f315827e
FFS dev.c: added Spansion PL032J to the "generic" table
With the discovery of first GTM900 and then Tango, it now appears that
Openmoko was not the only manuf after all who kept TI's TCS211 firmware
largely intact (as opposed to changing it beyond all recognition like
Compal, Chi-Mei and BenQ did), thus we are now getting new "alien" targets
on which we reuse the original manuf's FFS with IMEI and RF calibration
tables as if it were native. On these targets we use the original
device table for FFS, even though we previously thought that it would
never apply to any target other than dsample, leonardo and gtamodem.
We have previously added Samsung K5L33xxCAM (a new kind of multi-ID device)
to the generic table to support its use in Huawei GTM900-B modules; now
we got news that some slightly older GTM900-B specimen used S71PL032J
instead, so we are now adding PL032J as well.
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Thu, 30 Jan 2020 17:45:48 +0000 |
parents | 93999a60b835 |
children |
line wrap: on
line source
/********************************************** * T_PB_COMMAND * * Command ID of executing function * **********************************************/ typedef enum { PB_INITIALISE, PB_READREC, PB_WRITEREC, PB_DELETEREC, PB_FIND, PB_READRECLIST, PB_SEARCH } T_PB_COMMAND; /********************************************** * T_PB_STATUS * * Status of executing function * **********************************************/ typedef enum { PB_STATUS_NONE, PB_STATUS_INIT, PB_STATUS_EXEC, PB_STATUS_COMPLETE } T_PB_STATUS; typedef struct { T_PB_TYPE type; /* The type of phonebook */ SHORT records_max; /* The maximum no. of records that can be stored */ SHORT phys_index; T_PB_RECORD *record; /* Currently read record */ UBYTE first_record; /* Flag that is true when the first record is being read */ } T_PB_INITIALISE; typedef struct { SHORT log_index; T_PB_TYPE index_type; SHORT phys_index; T_PB_RECORD *record; } T_PB_WRITEREC; typedef struct { SHORT log_index; T_PB_TYPE index_type; SHORT phys_index; } T_PB_DELETEREC; typedef union { T_PB_INITIALISE Initialise; T_PB_WRITEREC WriteRec; T_PB_DELETEREC DeleteRec; } T_PB_PARAM; /************************************************** * T_PB_DATA * * Data structure to keep track of phonebook entries * and index tables. * **************************************************/ typedef struct { T_PB_TYPE current_type; /* Currently selected phonebook */ SHORT records_max; /* Total number of records available */ SHORT records_used; /* Number of records that are in use */ SHORT search_results; /* Number of results for last search */ SHORT alpha_max; /* Max size of alpha tag in bytes */ SHORT number_max; /* Max size of phone number in bytes */ SHORT ext_max; /* Max size of extended data in bytes */ SHORT* name_table; /* Index table, sorted by name. Dynamically updated. */ SHORT* number_table; /* Index table, sorted by phone number. Dynamically updated. */ SHORT* search_table; /* Search table, contains matching elements. Sorted by whichever field is searched. Not dynamically updated. */ SHORT* in_memory; /* -1 if the record does not exist * 0 if the record is not in RAM * >0 - number of times record has been read */ SHORT cache_max; /* Maximum number of records that can be stored in memory concurrently*/ SHORT cache_size; /* Current size of the cache */ T_PB_RECORD** cache; /* List of entries in cache */ T_PB_COMMAND command_id; /* Currently processing command */ T_PB_STATUS status; /* Status of current command */ T_PB_PARAM param; /* Parameter storage for current command */ } T_PB_DATA; /* FUNCTION PROTOTYPES */ T_PB_DATA* ATB_hnd_GetPbData(SHORT phonebook_id); void ATB_hnd_SetPbData(SHORT phonebook_id, T_PB_DATA *data); PB_RET ATB_status_Initialise(SHORT phonebook_id); PB_RET ATB_status_WriteRec(SHORT phonebook_id); PB_RET ATB_status_DeleteRec(SHORT phonebook_id); PB_RET ATB_index_Find (SHORT phonebook_id, T_PB_INDEX index_type, T_PB_RECORD *record, SHORT *new_log_index, T_PB_MATCH *match); SHORT *ATB_index_GetTable(SHORT phonebook_id, T_PB_INDEX index_type); SHORT ATB_index_GetPhysIndex(SHORT phonebook_id, T_PB_INDEX index_type, SHORT log_index); SHORT ATB_index_GetLogIndex(SHORT phonebook_id, T_PB_INDEX index_type, SHORT phys_index); void ATB_index_AddRec(SHORT phonebook_id, T_PB_INDEX index_type, SHORT phys_index, T_PB_RECORD *record, SHORT *new_log_index); void ATB_index_RemoveRec(SHORT phonebook_id, T_PB_INDEX index_type, SHORT log_index); T_PB_MATCH ATB_index_Match(T_PB_RECORD *record1, T_PB_RECORD *record2, T_PB_INDEX index_type); T_PB_COMPARE ATB_index_Compare(T_PB_RECORD *record1, T_PB_RECORD *record2, T_PB_INDEX index_type); T_PB_COMPARE ATB_alpha_Match(T_PB_ALPHA *alpha1, T_PB_ALPHA *alpha2); T_PB_COMPARE ATB_alpha_Compare(T_PB_ALPHA *Alpha_1, T_PB_ALPHA *Alpha_2); UBYTE ATB_num_Digit(UBYTE *num, SHORT numIndex); T_PB_MATCH ATB_num_Match(UBYTE *num1, UBYTE *num2); T_PB_COMPARE ATB_num_Compare(UBYTE *num1, UBYTE *num2); void ATB_mem_UpdateCache(SHORT phonebook_id, SHORT phys_index, T_PB_RECORD *record); PB_RET ATB_mem_ReadRec(SHORT phonebook_id, T_PB_INDEX index_type, SHORT log_index, T_PB_RECORD *record);