view src/g23m-fad/tcpip/rnet/rnet_rt/rnet_rt_i.h @ 662:8cd8fd15a095

SIM speed enhancement re-enabled and made configurable TI's original code supported SIM speed enhancement, but Openmoko had it disabled, and OM's disabling of speed enhancement somehow caused certain SIM cards to start working which didn't work before (OM's bug #666). Because our FC community is much smaller in year 2020 than OM's community was in their day, we are not able to find one of those #666-affected SIMs, thus the real issue they had encountered remains elusive. Thus our solution is to re-enable SIM speed enhancement and simply wait for if and when someone runs into a #666-affected SIM once again. We provide a SIM_allow_speed_enhancement global variable that allows SIM speed enhancement to be enabled or disabled per session, and an /etc/SIM_spenh file in FFS that allows it to enabled or disabled on a non-volatile basis. SIM speed enhancement is now enabled by default.
author Mychaela Falconia <falcon@freecalypso.org>
date Sun, 24 May 2020 05:02:28 +0000
parents 90eb61ecd093
children
line wrap: on
line source

/**
 * @file  rnet_rt_i.h
 *
 * Internal definitions for RNET_RT.
 *
 * @author  Jose Yp-Tcha (j-yp-tcha@ti.com)
 * @version 0.1
 */

/*
 * $Id: rnet_rt_i.h,v 1.6 2002/10/30 15:23:34 rf Exp $
 * $Name: ti_20021030 $
 *
 * History:
 *
 *  Date         Author          Modification
 *  -------------------------------------------------------------------
 *  3/19/2002  Jose Yp-Tcha (j-yp-tcha@ti.com)    Create.
 *  3/29/2002 Regis Feneon      NexGenIP definitions
 *  10/28/2002 Regis Feneon      added RNET_RT_ETH_SUPPORT
 *
 * (C) Copyright 2002 by TI, All Rights Reserved
 */

#include "rnet_cfg.h"

#ifdef RNET_CFG_REAL_TRANSPORT

#ifndef __RNET_RT_I_H_
#define __RNET_RT_I_H_

#define NG_NO_BSDSOCK_DECLS

#include "rv_general.h"
#include "rvf_api.h"
#include "rvm_gen.h"
#include "rvm_use_id_list.h"
#include "rvm_ext_priorities.h"

#include "rnet_rt_cfg.h"
#include "rnet_rt_api.h"
#include "rnet_rt_message.h"

/** NexGenOS/NexGenIP definitions */
#include "ngos.h"
#include "ngip.h"
#include "ngudp.h"
#include "ngtcp.h"
#include "ngsockio.h"
#include "ngresolv.h"

#ifdef _WINDOWS
#include "ngeth.h"
#endif
#ifdef RNET_RT_ATP_SUPPORT
#include "rnet_rt_atp_i.h"
#endif
#ifdef RNET_RT_DTI_SUPPORT
#include "rnet_rt_dti_i.h"
#endif

/** size of debug output buffer */
#define RNET_RT_NGIP_DEBUG_MAX 128

/** size of host info data buffer */
#define RNET_RT_NGIP_GETHOSTINFO_BUFMAX 192

/* debug informations */
/* #define RNET_RT_NGIP_DEBUG_ENABLE (is defined in the Makefile) */

/** RNET socket control block */
typedef struct {
  /** NexGenIP control block */
  NGsock sock;
  /** return path */
  T_RV_RETURN_PATH return_path;
  /** flags */
  int flags;
#define RNET_RT_SOCKF_NOTIFY_RECV 0x0001
#define RNET_RT_SOCKF_NOTIFY_SEND 0x0002
#define RNET_RT_SOCKF_NOTIFY_CONNECT 0x0004
#define RNET_RT_SOCKF_NOTIFY_CLOSED 0x0008
  /** user (application) data */
  void *user_data;
} T_RNET_RT_SOCK;

/**
 * The Control Block buffer of RNET_RT, which gathers all 'Global variables'
 * used by RNET_RT instance.
 */
typedef struct {
  T_RVM_RETURN (*error_ft)( T_RVM_NAME swe_name,
                          T_RVM_RETURN error_cause,
                          T_RVM_ERROR_TYPE error_type,
                          T_RVM_STRING error_msg);
  T_RVF_MB_ID mb_id;
/** SWE address */
  T_RVF_ADDR_ID addr_id;
/** global mutex for access to SWE */
  T_RVF_MUTEX mutex;
/** pointer to pool of network buffers */
  T_RVF_BUFFER *buf_net;
/** table of socket control blocks */
  T_RNET_RT_SOCK socktable[RNET_RT_SOCK_MAX];
/** table of TCP control blocks */
  NGtcpcb tcbtable[RNET_RT_SOCK_MAX];
/** resolver queries */
  NGslvpquer resolvquery[RNET_RT_RESOLV_QUERY_MAX];
/** resolver cache entries */
  NGslvcaent resolvcache[RNET_RT_RESOLV_CACHE_MAX];
#ifdef RNET_RT_LOOPBACK_SUPPORT
/** loopback interface */
  NGifnet ifnet_lo;
#endif
#ifdef RNET_RT_ETH_SUPPORT
/** ARP table */
  NGarpent arptable[RNET_RT_ARP_MAX];
/** ethernet interface */
  NGethifnet ifnet_eth;
#endif
#ifdef RNET_RT_ATP_SUPPORT
/** ATP point-to-point interface */
  T_RNET_RT_ATP_IFNET ifnet_atp;
#endif
#ifdef RNET_RT_DTI_SUPPORT
/** DTI point-to-point interface */
  T_RNET_RT_DTI_IFNET ifnet_dti;
#endif
/** buffer for debug output */
#ifdef RNET_RT_NGIP_DEBUG_ENABLE
  char buf_debug[RNET_RT_NGIP_DEBUG_MAX];
#endif
/** system clock emulation */
  unsigned long clock;
} T_RNET_RT_ENV_CTRL_BLK;

/** External ref "global variables" structure. */
extern T_RNET_RT_ENV_CTRL_BLK *rnet_rt_env_ctrl_blk_p;

/** get_host_info data */
typedef struct {
  T_RV_RETURN_PATH return_path;
  void *user_data;
  NGubyte tmpbuf[RNET_RT_NGIP_GETHOSTINFO_BUFMAX];
  NGhostent hostent;
} T_RNET_RT_GETHOSTINFO;

/** RNET interface driver message handling */
#define NG_RNETIFO_HANDLE_MSG 0x0210

/** Macro used for tracing RNET messages. */
#define RNET_RT_SEND_TRACE(string, trace_level) \
  rvf_send_trace (string, (sizeof(string) - 1), NULL_PARAM, trace_level, RNET_RT_USE_ID)

/**
 * Interface functions between NexGenIP and Riviera
 */
/*@{*/
int rnet_rt_ngip_init( void *bufpool_ptr, int bufpool_size, int buf_hdr_size,
  int buf_data_size, T_RNET_RT_SOCK *socktable, int sockmax, const NGcfgent *cfg);
void rnet_rt_ngip_input( NGbuf *bufp);
void rnet_rt_ngip_timer( void);
int rnet_rt_ngip_start( void);
void rnet_rt_ngip_stop( void);
T_RNET_RET rnet_rt_ngip_error( int err);
/*@}*/

#endif /* __RNET_RT_I_H_ */

#endif /* ifdef RNET_CFG_REAL_TRANSPORT */