FreeCalypso > hg > fc-magnetite
view src/aci2/atb/ATBPb_i.h @ 701:35e7f9d0379f
targets: add TARGET_HAS_BUZZER to c11x, c139 and dsample
This new target config preprocessor symbol was introduced in Tourmaline
in connection with the new approach to playing buzzer melodies via PWT,
properly omitting the responsible code on targets where BU output
controls the vibrator instead. That code is not present in Magnetite
and we have no plans to backport it here, but target header files
should be kept consistent between the two trees, especially given
that we plan to support FC Venus target in Magnetite.
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sat, 26 Mar 2022 19:51:34 +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);