blob: b171bef0098752874d87eee1c5346f0d66653aa0 [file] [log] [blame]
/*******************************************************************************
**+--------------------------------------------------------------------------+**
**| |**
**| Copyright 1998-2008 Texas Instruments, Inc. - http://www.ti.com/ |**
**| |**
**| Licensed under the Apache License, Version 2.0 (the "License"); |**
**| you may not use this file except in compliance with the License. |**
**| You may obtain a copy of the License at |**
**| |**
**| http://www.apache.org/licenses/LICENSE-2.0 |**
**| |**
**| Unless required by applicable law or agreed to in writing, software |**
**| distributed under the License is distributed on an "AS IS" BASIS, |**
**| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |**
**| See the License for the specific language governing permissions and |**
**| limitations under the License. |**
**| |**
**+--------------------------------------------------------------------------+**
*******************************************************************************/
/**************************************************************************/
/* */
/* MODULE: proc_main.c */
/* PURPOSE: Supplicant Initialization */
/* */
/**************************************************************************/
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include <errno.h>
#include <fcntl.h> /* for O_WRONLY*/
#include <sys/time.h>
#include <sys/resource.h>
#include <unistd.h>
typedef unsigned int UINT32; /*nick*/
#include "osTIType.h"
#include "TI_SupplicantStub.h"
#include "TI_IPC_Api.h"
#include "ipc_event.h"
extern tiBOOL g_bTerminate ;
int main(int argc, char ** argv)
{
#ifdef TI_DBG
struct rlimit rLimit;
rLimit.rlim_cur = 1024*1024;
rLimit.rlim_max = 1024*1024;
setrlimit(RLIMIT_CORE,&rLimit);
#endif
FILE *f = fopen("/dev/console", "w" );
int hfile_output = -1;
if( !f )
fprintf(stderr, "/dev/console open failed: %d(%s)\n", errno, strerror(errno) );
else
{
if( dup2( f->_fileno, 1 ) == -1 )
{
fprintf(f, "dup2(hfile, 1) failed: %d(%s)\n", errno, strerror(errno) );
}
if( dup2( f->_fileno, 2 ) == -1 )
{
fprintf(f, "dup2(hfile, 2) failed: %d(%s)\n", errno, strerror(errno) );
}
}
if( argc == 2 )
{
hfile_output = open((char *) argv[1], O_WRONLY );
if( hfile_output == -1 )
{
perror((char *) argv[1]);
goto exit;
}
if( dup2( 1, hfile_output ) == -1 )
{
fprintf(stderr, "dup2(1, hfile_output) failed: %d(%s)\n", errno, strerror(errno) );
}
if( dup2( 2, hfile_output ) == -1 )
{
fprintf(stderr, "dup2(2, hfile_output) failed: %d(%s)\n", errno, strerror(errno) );
}
}
/* Open socket channel for CLI configuration */
if(cnfg_open() != 0)
{
printf("\nCan't initialize configure socket\n");
return -1;
}
if(IPC_Init())
{
printf("---main(): ERROR IPC init\n");
}
IPC_CONFIG_PARAMS *pRegistry_config = (IPC_CONFIG_PARAMS*)malloc(sizeof(IPC_CONFIG_PARAMS));
pRegistry_config->F_ConfigNotification = SendDataStub;
if(IPC_RegisterConfig((void*)pRegistry_config,
sizeof(IPC_CONFIG_PARAMS)))
{
printf("---main(): ERROR registration CONFIG Messages\n");
}
free(pRegistry_config);
for(;g_bTerminate != TRUE;)
{
usleep(1000000); /* sleep 1 sec*/
}
exit:
if( f > 0 )
fclose( f );
if( hfile_output > 0 )
close( hfile_output );
return 0;
}