FreeCalypso > hg > fc-tourmaline
view src/ui/atb/ATBPbFS.h @ 280:82665effff30
keypad boot init overhaul: handle initially held-down keys
This change fixes two previous behavioural defects:
1) On Compal phones, the PWR key had to be released before the boot
sequence would proceed at all - it was stuck in an endless IRQ loop
at the point of Nucleus enabling interrupts, before anything else.
2) On both Compal and sane platforms including Luna, if some regular
non-PWR key was held down at boot time, the boot sequence would
proceed and complete normally, but all non-PWR keypad buttons would
be dead for the remainder of that boot cycle.
The fix is a generic solution - no Compal-specific hack ended up being
needed for the special case of their idiotic PWON-to-ROW4 hw wiring.
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Fri, 24 Sep 2021 00:47:12 +0000 |
parents | 67bfe9f274f6 |
children |
line wrap: on
line source
/********************************************* * PB_RECS_PER_FILE * * Specifies how many records should be stored in * each file on the flash. *********************************************/ #define PB_RECS_PER_FILE 10 /********************************************* * PB_xxx_UPPER_LIMIT * * The absolute maximum size of various aspects * of the records stored on the file system. Used * to keep values read in from file within a * sensible range. *********************************************/ #define PB_RECORDS_UPPER_LIMIT 500 #define PB_ALPHATAG_UPPER_LIMIT 500 #define PB_NUMBER_UPPER_LIMIT 500 #define PB_EXT_UPPER_LIMIT 500 /********************************************** * T_PB_FSDATA * * Internal information for FS *********************************************/ typedef struct { SHORT records_max; SHORT alpha_max; SHORT number_max; SHORT ext_max; SHORT record_size; T_FFS_FD info_file; SHORT fileID; T_FFS_FD file; } T_PB_FSDATA; /********************************************** * T_PB_FSINFO * * Information about phonebook - * e.g. is SIM or FFS selected ? *********************************************/ typedef struct { UBYTE type_selected; /* The current selected phonebook */ SHORT records_max; SHORT alpha_max; SHORT number_max; SHORT ext_max; } T_PB_FSINFO; /********************************************** * LOCAL FUNCTION PROTOTYPES * *********************************************/ void FS_file_GetIndex(SHORT phys_index, SHORT *fileIndex, SHORT *recIndex); void FS_file_GetName(char *filename, SHORT phonebook_id, SHORT fileIndex); SHORT FS_file_OpenForRec(SHORT phonebook_id, SHORT phys_index);