makeindex error - General Purpose Index Processor has stopped working

Liam Hayes <[email protected]>
Newsgroups gmane.comp.tex.miktex
Message-ID <[email protected]>
Hi,
 I am using MikTex to produce cross referenced pdf files from doxygen.

 With one particular project I started getting "General Purpose Index Processor has stopped working" errors from makeindex. I've narrowed it down to a couple of functions in a particular module.

I'm using makeindex version 2.15 (MikTex 2.9) (kpathsea + thai support).

command line:
makeindex refman.idx

refman.idx is attached. The source file that produced it is also attached. If the names of RAIDM_NV_vInitNonVol() and RAIDM_NV_vSaveNonVol() are changed (eg append 2) then there is no error.
I've tried under Windows 7 and XP with identical results.

any help please?

regards

Liam
Development Engineer
---------------------------------------------------------------------------------------
 This email has been scanned for email related threats and delivered safely by Mimecast.
---------------------------------------------------------------------------------------

------------------------------------------------------------------------------

_______________________________________________
MiKTeX-Users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/miktex-users
RAIDM_NonVol.c (text/plain, 5.5 KB)
/*************************************************************************//**
\file RAIDM_NonVol.c
\brief Interface to JN5168 EEPROM

\ref EEPROMRef

\section EEPROMRef JN5168_EEPROM

Despite what the peripheral user guide says there appear to be no functions to
interface directly to the onboard EE. So have to use the PDM library.

This requies additions to the makefile.

- There is only one PDM record which saves the entire contents of ::sNV_States
- Entire EEPROM is dedicated to this structure.

*/

#include <jendefs.h>
#include <AppHardwareApi.h>

#include <string.h>

// this requires INCFLAGS += -I$(COMPONENTS_BASE_DIR)/OS/Include to be added to makefil
#include <pdm.h>
#include "RAIDM_NonVol.h"

#include "raidmUI/raidmui.h"

/****************************************************************************/
/***        Macro Definitions                                             ***/
/****************************************************************************/

/****************************************************************************/
/***        Local Function Prototypes                                     ***/
/****************************************************************************/
void PDMErrorHandler(uint32                          u32eventNumber,
	    PDM_eSystemEventCode            eSystemEventCode);

/****************************************************************************/
/***        Exported Variables                                            ***/
/****************************************************************************/

/// structure holding all data to be saved in EEPROM
stypeNVStatesConfig sNV_States;

/****************************************************************************/
/***        Local Variables                                               ***/
/****************************************************************************/
static PDM_tsRecordDescriptor sNV_StatesRecDesc;

/****************************************************************************/
/***        Exported Functions                                            ***/
/****************************************************************************/

/****************************************************//**
Initialise EEPROM for use by RAIDM SIM.

Recover contam readings
 */
void RAIDM_NV_vInitNonVol( void )
{
	PDM_vInit(0,63,64,0,0,NULL,NULL);
	PDM_vRegisterSystemCallback(PDMErrorHandler);

	if (PDM_eLoadRecord(&sNV_StatesRecDesc, 1, &sNV_States, sizeof(sNV_States), FALSE)!=PDM_E_STATUS_RECOVERED)
	{
		DebugPrintf("Non Vol Initialise:%d\n", sNV_StatesRecDesc.u32DataSize);
		memset(&sNV_States,0,sizeof(sNV_States));
		RAIDM_NV_vSaveNonVol();
	}
	if (sNV_StatesRecDesc.u32DataSize != sizeof(sNV_States))
	{
		DebugPrintf("NV Size Mismatch\n");
		PDM_vDelete();
		PDM_eLoadRecord(&sNV_StatesRecDesc, 1, &sNV_States, sizeof(sNV_States), FALSE);
		RAIDM_NV_vSaveNonVol();
	}

	LCDDisplayTypes[TYPE_G].u8ContamBarLev = sNV_States.sContam.u8G_bars;
	LCDDisplayTypes[TYPE_G].u16ContamAgent = sNV_States.sContam.u16_G_PS_Code;
	LCDDisplayTypes[TYPE_H].u8ContamBarLev = sNV_States.sContam.u8H_bars;
	LCDDisplayTypes[TYPE_H].u16ContamAgent = sNV_States.sContam.u16_H_PS_Code;
	LCDDisplayTypes[TYPE_TIC].u8ContamBarLev = sNV_States.sContam.u8TIC_bars;
	LCDDisplayTypes[TYPE_TIC].u16ContamAgent = sNV_States.sContam.u16_TIC_PS_Code;
}

/****************************************************//**
Save the non-volatile record in EEPROM

must be called after altering data structures otherwise changes won't be saved.
 */
void RAIDM_NV_vSaveNonVol( void )
{
	sNV_States.u32filter_reset_time = raidm_current_ui_state.filter_reset_time;
	sNV_States.bEventLoggerRunning = raidm_current_ui_state.event_logger_running;
	sNV_States.bSpecLoggerRunning = raidm_current_ui_state.spec_logger_running;
	sNV_States.u8event_logger_write_mode = raidm_current_ui_state.event_logger_write_mode;
	sNV_States.u8spec_logger_write_mode = raidm_current_ui_state.spec_logger_write_mode;
	sNV_States.u8LogRecordingMode = raidm_current_ui_state.event_logger_recording_mode;
	sNV_States.u8profile_mode = raidm_current_ui_state.profile_mode;
	if (raidm_current_ui_state.profile_mode==RAIDM_PROFILE_MODE_CUSTOM)
	{
		/// save changes to lib, horn and light
		sNV_States.u8Lib = raidm_current_ui_state.library_state;
		sNV_States.u8Light = raidm_current_ui_state.backlight_enabled;
		sNV_States.u8Horn = raidm_current_ui_state.horn_enabled;
	}
	sNV_States.sContam.u8G_bars = LCDDisplayTypes[TYPE_G].u8ContamBarLev;
	sNV_States.sContam.u16_G_PS_Code = LCDDisplayTypes[TYPE_G].u16ContamAgent;
	sNV_States.sContam.u8H_bars = LCDDisplayTypes[TYPE_H].u8ContamBarLev;
	sNV_States.sContam.u16_H_PS_Code = LCDDisplayTypes[TYPE_H].u16ContamAgent;
	sNV_States.sContam.u8TIC_bars = LCDDisplayTypes[TYPE_TIC].u8ContamBarLev;
	sNV_States.sContam.u16_TIC_PS_Code = LCDDisplayTypes[TYPE_TIC].u16ContamAgent;

	PDM_vSaveRecord(&sNV_StatesRecDesc);
}

/****************************************************************************/
/***        Local Functions                                            ***/
/****************************************************************************/

void PDMErrorHandler(
	    uint32                          u32eventNumber,
	    PDM_eSystemEventCode            eSystemEventCode)
{
	DebugPrintf("NV ErrCode=%d Ev Num=%d \n", u32eventNumber, eSystemEventCode);
	PDM_vDelete();
	PDM_eLoadRecord(&sNV_StatesRecDesc, 1, &sNV_States, sizeof(sNV_States), FALSE);
	PDM_vSaveRecord(&sNV_StatesRecDesc);
}
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.