mirror of
https://github.com/apache/nuttx.git
synced 2026-06-05 15:58:59 +08:00
Fix conflict in ChangeLog
This commit is contained in:
@@ -7540,12 +7540,8 @@
|
||||
runs from ISRAM and loads an Intel HEX file into DRAM (2014-6-26).
|
||||
* configs/sama5d4-ek/nsh and scripts/: Setup the SAMA5D4-EK NSHi
|
||||
configuration to use the DRAMBOOT loader by default (2014-6-26).
|
||||
* binfmt: Various changes associated with symbol tables. Most from Pelle
|
||||
Windestam (2014-6-27).
|
||||
* Networkin: Add network device ioctl to access PHY registers. From Daniel
|
||||
Lazlo Sitzer (2014-6-27).
|
||||
* net/netdev: Move net/netdev*.c to net/netdev/netdev*.c (2014-6-27).
|
||||
* net/netdev: Move net/netdev*.c to net/netdev/netdev*.c (2014-6-27).
|
||||
* net/netdev: Move net/netdev*.c to net/netdev/netdev*.c (2014-6-27).
|
||||
* net/netdev: Move net/netdev*.c to net/netdev/netdev*.c (2014-6-27).
|
||||
* net/netdev: Move net/netdev*.c to net/netdev/netdev*.c (2014-6-27).
|
||||
* net/netdev: Move net/netdev*.c to net/netdev/netdev*.c (2014-6-27).
|
||||
* net/netdev: Move net/netdev*.c to net/netdev/netdev*.c (2014-6-27).
|
||||
* net/netdev: Move net/netdev*.c to net/netdev/netdev*.c (2014-6-27).
|
||||
|
||||
|
||||
@@ -407,7 +407,10 @@ any following arguments.
|
||||
<code>nuttx/syscall/syscall.csv</code> that describes the NuttX RTOS interface, and
|
||||
</li>
|
||||
<li>
|
||||
<code>nuttx/libc/lib.csv</code> that describes the NuttX C library interface.
|
||||
<code>nuttx/libc/libc.csv</code> that describes the NuttX C library interface.
|
||||
</li>
|
||||
<li>
|
||||
<code>nuttx/libc/math.cvs</code> that descirbes any math library.
|
||||
</li>
|
||||
</ol>
|
||||
<ul><pre>
|
||||
@@ -424,7 +427,7 @@ Where:
|
||||
</p>
|
||||
<ul><pre>
|
||||
cd nuttx/tools
|
||||
cat ../syscall/syscall.csv ../libc/lib.csv | sort >tmp.csv
|
||||
cat ../syscall/syscall.csv ../libc/libc.csv | sort >tmp.csv
|
||||
./mksymtab.exe tmp.csv tmp.c
|
||||
</pre></ul>
|
||||
|
||||
|
||||
@@ -665,6 +665,9 @@ static void stm32_rxdescinit(FAR struct stm32_ethmac_s *priv);
|
||||
|
||||
/* PHY Initialization */
|
||||
|
||||
#ifdef CONFIG_NETDEV_PHY_IOCTL
|
||||
static int stm32_ioctl(int cmd, struct mii_ioctl_data *req);
|
||||
#endif
|
||||
static int stm32_phyread(uint16_t phydevaddr, uint16_t phyregaddr, uint16_t *value);
|
||||
static int stm32_phywrite(uint16_t phydevaddr, uint16_t phyregaddr, uint16_t value);
|
||||
#ifdef CONFIG_ETH0_PHY_DM9161
|
||||
@@ -2475,6 +2478,63 @@ static void stm32_rxdescinit(FAR struct stm32_ethmac_s *priv)
|
||||
stm32_putreg((uint32_t)priv->rxtable, STM32_ETH_DMARDLAR);
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
* Function: stm32_ioctl
|
||||
*
|
||||
* Description:
|
||||
* Executes the SIOCxMIIxxx command and responds using the request struct
|
||||
* that must be provided as its 2nd parameter.
|
||||
*
|
||||
* When called with SIOCGMIIPHY it will get the PHY address for the device
|
||||
* and write it to the req->phy_id field of the request struct.
|
||||
*
|
||||
* When called with SIOCGMIIREG it will read a register of the PHY that is
|
||||
* specified using the req->reg_no struct field and then write its output
|
||||
* to the req->val_out field.
|
||||
*
|
||||
* When called with SIOCSMIIREG it will write to a register of the PHY that
|
||||
* is specified using the req->reg_no struct field and use req->val_in as
|
||||
* its input.
|
||||
*
|
||||
* Parameters:
|
||||
* cmd - SIOCxMIIxxx command code
|
||||
* req - request structure also used to return values
|
||||
*
|
||||
* Returned Value: Negated errno on failure.
|
||||
*
|
||||
* Assumptions:
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
#ifdef CONFIG_NETDEV_PHY_IOCTL
|
||||
static int stm32_ioctl(int cmd, struct mii_ioctl_data *req)
|
||||
{
|
||||
int ret = -ENOTTY;
|
||||
|
||||
switch (cmd)
|
||||
{
|
||||
case SIOCGMIIPHY: /* Get MII PHY address */
|
||||
req->phy_id = CONFIG_STM32_PHYADDR;
|
||||
ret = OK;
|
||||
break;
|
||||
|
||||
case SIOCGMIIREG: /* Get register from MII PHY */
|
||||
ret = stm32_phyread(req->phy_id, req->reg_num, &req->val_out);
|
||||
break;
|
||||
|
||||
case SIOCSMIIREG: /* Set register in MII PHY */
|
||||
ret = stm32_phywrite(req->phy_id, req->reg_num, req->val_in);
|
||||
break;
|
||||
|
||||
default:
|
||||
ret = -EINVAL;
|
||||
break;
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
#endif /* CONFIG_NETDEV_PHY_IOCTL */
|
||||
|
||||
/****************************************************************************
|
||||
* Function: stm32_phyread
|
||||
*
|
||||
@@ -3460,6 +3520,9 @@ int stm32_ethinitialize(int intf)
|
||||
#ifdef CONFIG_NET_IGMP
|
||||
priv->dev.d_addmac = stm32_addmac; /* Add multicast MAC address */
|
||||
priv->dev.d_rmmac = stm32_rmmac; /* Remove multicast MAC address */
|
||||
#endif
|
||||
#ifdef CONFIG_NETDEV_PHY_IOCTL
|
||||
priv->dev.d_ioctl = stm32_ioctl; /* Support PHY ioctl() calls */
|
||||
#endif
|
||||
priv->dev.d_private = (void*)g_stm32ethmac; /* Used to recover private state from dev */
|
||||
|
||||
|
||||
+1
-1
@@ -684,7 +684,7 @@ There are also common-separated value (CSV) values in the source try that
|
||||
provide information about symbols. In particular:
|
||||
|
||||
nuttx/syscall/syscall.csv - Describes the NuttX RTOS interface, and
|
||||
nuttx/lib/lib.csv - Describes the NuttX C library interface.
|
||||
nuttx/lib/libc.csv - Describes the NuttX C library interface.
|
||||
|
||||
There is a tool at nuttx/tools/mksymtab that will use these CSV files as
|
||||
input to generate a generic symbol table. See nuttx/tools/README.txt for
|
||||
|
||||
@@ -50,7 +50,7 @@ config SAMA5D4EK_DRAM_MAIN
|
||||
by SAMA5D4EK_DRAM_START.
|
||||
|
||||
NOTE: If you use this boot loader, then your program must be built at
|
||||
origin 0x2000:0000, not at 0x2100:0000 as is customary with U-Boot.
|
||||
origin 0x2000:0000, not at 0x2000:8000 as is customary with U-Boot.
|
||||
|
||||
config SAMA5D4EK_DRAM_START
|
||||
bool "Start DRAM program"
|
||||
@@ -71,7 +71,7 @@ config SAMA5D4EK_DRAM_BOOT
|
||||
Select this option if you are going to boot using the sdram_main
|
||||
bootloader (created with SAMA5D4EK_DRAM_MAIN=y). This selection
|
||||
will simply origin your program at 0x2000:0000 as required by the
|
||||
sdram_main bootloader (vs. 0x2100:0000 as required by U-Boot).
|
||||
sdram_main bootloader (vs. 0x2000:8000 as required by U-Boot).
|
||||
|
||||
config SAMA5D4EK_NAND_AUTOMOUNT
|
||||
bool "NAND FLASH auto-mount"
|
||||
|
||||
+1
-1
@@ -66,7 +66,7 @@ namespace std
|
||||
using ::rmdir;
|
||||
using ::getopt;
|
||||
using ::getoptargp;
|
||||
using ::getopindgp;
|
||||
using ::getoptindp;
|
||||
using ::getoptoptp;
|
||||
}
|
||||
|
||||
|
||||
+8
-7
@@ -165,7 +165,8 @@ typedef void *imaxdiv_t; /* Dummy type since imaxdiv is not yet supported */
|
||||
|
||||
#ifdef __cplusplus
|
||||
#define EXTERN extern "C"
|
||||
extern "C" {
|
||||
extern "C"
|
||||
{
|
||||
#else
|
||||
#define EXTERN extern
|
||||
#endif
|
||||
@@ -174,13 +175,13 @@ extern "C" {
|
||||
* macros. Function prototypes shall be provided."
|
||||
*/
|
||||
|
||||
EXTERN intmax_t imaxabs(intmax_t);
|
||||
EXTERN imaxdiv_t imaxdiv(intmax_t, intmax_t);
|
||||
EXTERN intmax_t strtoimax(const char *, char **, int);
|
||||
EXTERN uintmax_t strtoumax(const char *, char **, int);
|
||||
intmax_t imaxabs(intmax_t);
|
||||
imaxdiv_t imaxdiv(intmax_t, intmax_t);
|
||||
intmax_t strtoimax(const char *, char **, int);
|
||||
uintmax_t strtoumax(const char *, char **, int);
|
||||
|
||||
EXTERN intmax_t wcstoimax(const wchar_t *, wchar_t **, int);
|
||||
EXTERN uintmax_t wcstoumax(const wchar_t *, wchar_t **, int);
|
||||
intmax_t wcstoimax(const wchar_t *, wchar_t **, int);
|
||||
uintmax_t wcstoumax(const wchar_t *, wchar_t **, int);
|
||||
|
||||
#undef EXTERN
|
||||
#ifdef __cplusplus
|
||||
|
||||
+26
-1
@@ -57,11 +57,22 @@
|
||||
#define IFF_RUNNING (1 << 2)
|
||||
#define IFF_NOARP (1 << 7)
|
||||
|
||||
|
||||
/*******************************************************************************************
|
||||
* Public Type Definitions
|
||||
*******************************************************************************************/
|
||||
|
||||
/* Part of the I/F request used to read from or write to the MII/PHY management
|
||||
* interface when SIOCxMIIREG ioctl was called.
|
||||
*/
|
||||
|
||||
struct mii_ioctl_data
|
||||
{
|
||||
uint16_t phy_id; /* PHY device address */
|
||||
uint16_t reg_num; /* PHY register address */
|
||||
uint16_t val_in; /* PHY input data */
|
||||
uint16_t val_out; /* PHY output data */
|
||||
};
|
||||
|
||||
/* This is the newer form if the I/F request structure that can be used with both IPv4
|
||||
* and IPv6.
|
||||
*/
|
||||
@@ -79,6 +90,7 @@ struct lifreq
|
||||
int lifru_count; /* Number of devices */
|
||||
int lifru_mtu; /* MTU size */
|
||||
uint8_t lifru_flags; /* Interface flags */
|
||||
struct mii_ioctl_data lifru_mii_data; /* MII request data */
|
||||
} lifr_ifru;
|
||||
};
|
||||
|
||||
@@ -90,6 +102,10 @@ struct lifreq
|
||||
#define lifr_mtu lifr_ifru.lifru_mtu /* MTU */
|
||||
#define lifr_count lifr_ifru.lifru_count /* Number of devices */
|
||||
#define lifr_flags lifr_ifru.lifru_flags /* interface flags */
|
||||
#define lifr_mii_phy_id lifr_ifru.lifru_mii_data.phy_id /* PHY device address */
|
||||
#define lifr_mii_reg_num lifr_ifru.lifru_mii_data.reg_num /* PHY register address */
|
||||
#define lifr_mii_val_in lifr_ifru.lifru_mii_data.val_in /* PHY input data */
|
||||
#define lifr_mii_val_out lifr_ifru.lifru_mii_data.val_out /* PHY output data */
|
||||
|
||||
/* This is the older I/F request that should only be used with IPv4. However, since
|
||||
* NuttX only supports IPv4 or 6 (not both), we can force the older structure to
|
||||
@@ -110,6 +126,7 @@ struct ifreq
|
||||
int ifru_count; /* Number of devices */
|
||||
int ifru_mtu; /* MTU size */
|
||||
uint8_t ifru_flags; /* Interface flags */
|
||||
struct mii_ioctl_data ifru_mii_data; /* MII request data */
|
||||
} ifr_ifru;
|
||||
};
|
||||
|
||||
@@ -121,6 +138,10 @@ struct ifreq
|
||||
#define ifr_mtu ifr_ifru.ifru_mtu /* MTU */
|
||||
#define ifr_count ifr_ifru.ifru_count /* Number of devices */
|
||||
#define ifr_flags ifr_ifru.ifru_flags /* interface flags */
|
||||
#define ifr_mii_phy_id ifr_ifru.ifru_mii_data.phy_id /* PHY device address */
|
||||
#define ifr_mii_reg_num ifr_ifru.ifru_mii_data.reg_num /* PHY register address */
|
||||
#define ifr_mii_val_in ifr_ifru.ifru_mii_data.val_in /* PHY input data */
|
||||
#define ifr_mii_val_out ifr_ifru.ifru_mii_data.val_out /* PHY output data */
|
||||
|
||||
#else /* CONFIG_NET_IPv6 */
|
||||
|
||||
@@ -134,6 +155,10 @@ struct ifreq
|
||||
#define ifr_mtu lifr_ifru.lifru_mtu /* MTU */
|
||||
#define ifr_count lifr_ifru.lifru_count /* Number of devices */
|
||||
#define ifr_flags lifr_ifru.lifru_flags /* interface flags */
|
||||
#define ifr_mii_phy_id lifr_ifru.lifru_mii_data.phy_id /* PHY device address */
|
||||
#define ifr_mii_reg_num lifr_ifru.lifru_mii_data.reg_num /* PHY register address */
|
||||
#define ifr_mii_val_in lifr_ifru.lifru_mii_data.val_in /* PHY input data */
|
||||
#define ifr_mii_val_out lifr_ifru.lifru_mii_data.val_out /* PHY output data */
|
||||
|
||||
#endif /* CONFIG_NET_IPv6 */
|
||||
|
||||
|
||||
@@ -150,6 +150,14 @@ double round (double x);
|
||||
long double roundl(long double x);
|
||||
#endif
|
||||
|
||||
float rintf(float x); /* Not implemented */
|
||||
#if CONFIG_HAVE_DOUBLE
|
||||
double_t rint(double_t x);
|
||||
#endif
|
||||
#ifdef CONFIG_HAVE_LONG_DOUBLE
|
||||
long double rintl(long double x); /* Not implemented */
|
||||
#endif
|
||||
|
||||
float fabsf (float x);
|
||||
#if CONFIG_HAVE_DOUBLE
|
||||
double fabs (double x);
|
||||
|
||||
@@ -160,6 +160,12 @@
|
||||
|
||||
#define SIOCSIWPMKSA _SIOC(0x0041) /* PMKSA cache operation */
|
||||
|
||||
/* MDIO/MCD *****************************************************************/
|
||||
|
||||
#define SIOCGMIIPHY _SIOC(0x0042) /* Get address of MII PHY in use */
|
||||
#define SIOCGMIIREG _SIOC(0x0043) /* Get a MII register via MDIO */
|
||||
#define SIOCSMIIREG _SIOC(0x0044) /* Set a MII register via MDIO */
|
||||
|
||||
/****************************************************************************
|
||||
* Type Definitions
|
||||
****************************************************************************/
|
||||
|
||||
@@ -187,6 +187,9 @@ struct uip_driver_s
|
||||
int (*d_addmac)(struct uip_driver_s *dev, FAR const uint8_t *mac);
|
||||
int (*d_rmmac)(struct uip_driver_s *dev, FAR const uint8_t *mac);
|
||||
#endif
|
||||
#ifdef CONFIG_NETDEV_PHY_IOCTL
|
||||
int (*d_ioctl)(int cmd, struct mii_ioctl_data *req);
|
||||
#endif
|
||||
|
||||
/* Drivers may attached device-specific, private information */
|
||||
|
||||
|
||||
+2
-2
@@ -119,7 +119,7 @@ EXTERN int optind; /* Index into argv */
|
||||
EXTERN int optopt; /* unrecognized option character */
|
||||
#else
|
||||
# define optarg (*(getoptargp()))
|
||||
# define optind (*(getopindgp()))
|
||||
# define optind (*(getoptindp()))
|
||||
# define optopt (*(getoptoptp()))
|
||||
#endif
|
||||
|
||||
@@ -183,7 +183,7 @@ int getopt(int argc, FAR char *const argv[], FAR const char *optstring);
|
||||
*/
|
||||
|
||||
FAR char **getoptargp(void); /* Optional argument following option */
|
||||
int *getopindgp(void); /* Index into argv */
|
||||
int *getoptindp(void); /* Index into argv */
|
||||
int *getoptoptp(void); /* unrecognized option character */
|
||||
|
||||
#undef EXTERN
|
||||
|
||||
+1
-1
@@ -52,7 +52,7 @@ Library Database
|
||||
|
||||
Information about functions available in the NuttX C library information is
|
||||
maintained in a database. That "database" is implemented as a simple comma-
|
||||
separated-value file, lib.csv. Most spreadsheets programs will accept this
|
||||
separated-value file, libc.csv. Most spreadsheets programs will accept this
|
||||
format and can be used to maintain the library database.
|
||||
|
||||
This library database will (eventually) be used to generate symbol library
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
|
||||
# Add the fixed precision math C files to the build
|
||||
|
||||
CSRCS += lib_rint.c lib_fixedmath.c lib_b16sin.c lib_b16cos.c lib_b16atan2.c
|
||||
CSRCS += lib_fixedmath.c lib_b16sin.c lib_b16cos.c lib_b16atan2.c
|
||||
|
||||
# Add the fixed precision math directory to the build
|
||||
|
||||
|
||||
@@ -51,7 +51,7 @@
|
||||
"gmtime_r","time.h","","FAR struct tm","FAR const time_t *","FAR struct tm *"
|
||||
"htonl","arpa/inet.h","","uint32_t","uint32_t"
|
||||
"htons","arpa/inet.h","","uint16_t","uint16_t"
|
||||
"imaxabs","stdlib.h","","intmax_t","intmax_t"
|
||||
"imaxabs","inttypes.h","","intmax_t","intmax_t"
|
||||
"inet_addr","arpa/inet.h","","in_addr_t","FAR const char "
|
||||
"inet_ntoa","arpa/inet.h","!defined(CONFIG_NET_IPv6) && defined(CONFIG_CAN_PASS_STRUCTS)","FAR char","struct in_addr"
|
||||
"inet_ntop","arpa/inet.h","","FAR const char","int","FAR const void *","FAR char *","socklen_t"
|
||||
@@ -62,7 +62,7 @@
|
||||
"lldbg","debug.h","!defined(CONFIG_CPP_HAVE_VARARGS) && defined(CONFIG_DEBUG) && defined(CONFIG_ARCH_LOWPUTC)","int","const char *","..."
|
||||
"llvdbg","debug.h","!defined(CONFIG_CPP_HAVE_VARARGS) && defined(CONFIG_DEBUG) && defined(CONFIG_DEBUG_VERBOSE) && defined(CONFIG_ARCH_LOWPUTC)","int","const char *","..."
|
||||
"lowsyslog","syslog.h","","int","FAR const char *","..."
|
||||
"match","","","int","const char *","const char *"
|
||||
"match","nuttx/regex.h","","int","const char *","const char *"
|
||||
"memccpy","string.h","","FAR void","FAR void *","FAR const void *","int c","size_t"
|
||||
"memchr","string.h","","FAR void","FAR const void *","int c","size_t"
|
||||
"memcmp","string.h","","int","FAR const void *","FAR const void *","size_t"
|
||||
@@ -102,7 +102,6 @@
|
||||
"qsort","stdlib.h","","void","void *","size_t","size_t","int(*)(const void *","const void *)"
|
||||
"rand","stdlib.h","","int"
|
||||
"readdir_r","dirent.h","CONFIG_NFILE_DESCRIPTORS > 0","int","FAR DIR *","FAR struct dirent *","FAR struct dirent **"
|
||||
"rint","","","double_t","double_t"
|
||||
"sched_get_priority_max","sched.h","","int","int"
|
||||
"sched_get_priority_min","sched.h","","int","int"
|
||||
"sem_getvalue","semaphore.h","","int","FAR sem_t *","FAR int *"
|
||||
|
@@ -0,0 +1,73 @@
|
||||
"acos","math.h","defined(CONFIG_HAVE_DOUBLE) && (defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH))","double","double"
|
||||
"acosf","math.h","defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH)","float","float"
|
||||
"acosl","math.h","defined(CONFIG_HAVE_LONG_DOUBLE) && (defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH))","long double","long double"
|
||||
"asin","math.h","defined(CONFIG_HAVE_DOUBLE) && (defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH))","double","double"
|
||||
"asinf","math.h","defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH)","float","float"
|
||||
"asinl","math.h","defined(CONFIG_HAVE_LONG_DOUBLE) && (defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH))","long double","long double"
|
||||
"atan","math.h","defined(CONFIG_HAVE_DOUBLE) && (defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH))","double","double"
|
||||
"atan2","math.h","defined(CONFIG_HAVE_DOUBLE) && (defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH))","double","double",double"
|
||||
"atan2f","math.h","defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH)","float","float",float"
|
||||
"atan2l","math.h","defined(CONFIG_HAVE_LONG_DOUBLE) && (defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH))","long double","long double","long double"
|
||||
"atanf","math.h","defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH)","float","float"
|
||||
"atanl","math.h","defined(CONFIG_HAVE_LONG_DOUBLE) && (defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH))","long double","long double"
|
||||
"ceil","math.h","defined(CONFIG_HAVE_DOUBLE) && (defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH))","double","double"
|
||||
"ceilf","math.h","defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH)","float","float"
|
||||
"ceill","math.h","defined(CONFIG_HAVE_LONG_DOUBLE) && (defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH))","long double","long double"
|
||||
"cos","math.h","defined(CONFIG_HAVE_DOUBLE) && (defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH))","double","double"
|
||||
"cosf","math.h","defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH)","float","float"
|
||||
"cosh","math.h","defined(CONFIG_HAVE_DOUBLE) && (defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH))","double","double"
|
||||
"coshf","math.h","defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH)","float","float"
|
||||
"coshl","math.h","defined(CONFIG_HAVE_LONG_DOUBLE) && (defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH))","long double","long double"
|
||||
"cosl","math.h","defined(CONFIG_HAVE_LONG_DOUBLE) && (defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH))","long double","long double"
|
||||
"exp","math.h","defined(CONFIG_HAVE_DOUBLE) && (defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH))","double","double"
|
||||
"expf","math.h","defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH)","float","float"
|
||||
"expl","math.h","defined(CONFIG_HAVE_LONG_DOUBLE) && (defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH))","long double","long double"
|
||||
"fabs","math.h","defined(CONFIG_HAVE_DOUBLE) && (defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH))","double","double"
|
||||
"fabsf","math.h","defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH)","float","float"
|
||||
"fabsl","math.h","defined(CONFIG_HAVE_LONG_DOUBLE) && (defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH))","long double","long double"
|
||||
"floor","math.h","defined(CONFIG_HAVE_DOUBLE) && (defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH))","double","double"
|
||||
"floorf","math.h","defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH)","float","float"
|
||||
"floorl","math.h","defined(CONFIG_HAVE_LONG_DOUBLE) && (defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH))","long double","long double"
|
||||
"fmod","math.h","defined(CONFIG_HAVE_DOUBLE) && (defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH))","double","double","double"
|
||||
"fmodf","math.h","defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH)","float","float","float"
|
||||
"fmodl","math.h","defined(CONFIG_HAVE_LONG_DOUBLE) && (defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH))","long double","long double","long double"
|
||||
"frexp","math.h","defined(CONFIG_HAVE_DOUBLE) && (defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH))","double","double","int *"
|
||||
"frexpf","math.h","defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH)","float","float","int *"
|
||||
"frexpl","math.h","defined(CONFIG_HAVE_LONG_DOUBLE) && (defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH))","long double","long double",int *"
|
||||
"ldexp","math.h","defined(CONFIG_HAVE_DOUBLE) && (defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH))","double","double",int"
|
||||
"ldexpf","math.h","defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH)","float","float",int"
|
||||
"ldexpl","math.h","defined(CONFIG_HAVE_LONG_DOUBLE) && (defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH))","long double","long double","int"
|
||||
"log","math.h","defined(CONFIG_HAVE_DOUBLE) && (defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH))","double","double"
|
||||
"log10","math.h","defined(CONFIG_HAVE_DOUBLE) && (defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH))","double","double"
|
||||
"log10f","math.h","defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH)","float","float"
|
||||
"log10l","math.h","defined(CONFIG_HAVE_LONG_DOUBLE) && (defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH))","long double","long double"
|
||||
"log2","math.h","defined(CONFIG_HAVE_DOUBLE) && (defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH))","double","double"
|
||||
"log2f","math.h","defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH)","float","float"
|
||||
"log2l","math.h","defined(CONFIG_HAVE_LONG_DOUBLE) && (defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH))","long double","long double"
|
||||
"logf","math.h","defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH)","float","float"
|
||||
"logl","math.h","defined(CONFIG_HAVE_LONG_DOUBLE) && (defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH))","long double","long double"
|
||||
"modf","math.h","defined(CONFIG_HAVE_DOUBLE) && (defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH))","double","double","double *"
|
||||
"modff","math.h","defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH)","float","float","float *"
|
||||
"modfl","math.h","defined(CONFIG_HAVE_LONG_DOUBLE) && (defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH))","long double","long double","long double *"
|
||||
"pow","math.h","defined(CONFIG_HAVE_DOUBLE) && (defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH))","double","double","double"
|
||||
"powf","math.h","defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH)","float","float","float"
|
||||
"powl","math.h","defined(CONFIG_HAVE_LONG_DOUBLE) && (defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH))","long double","long double","long double"
|
||||
"rint","math.h","defined(CONFIG_HAVE_DOUBLE) && (defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH))","double_t","double_t"
|
||||
"round","math.h","defined(CONFIG_HAVE_DOUBLE) && (defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH))","double","double"
|
||||
"roundf","math.h","defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH)","float","float"
|
||||
"roundl","math.h","defined(CONFIG_HAVE_LONG_DOUBLE) && (defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH))","long double","long double"
|
||||
"sin","math.h","defined(CONFIG_HAVE_DOUBLE) && (defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH))","double","double"
|
||||
"sinf","math.h","defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH)","float","float"
|
||||
"sinh","math.h","defined(CONFIG_HAVE_DOUBLE) && (defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH))","double","double"
|
||||
"sinhf","math.h","defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH)","float","float"
|
||||
"sinhl","math.h","defined(CONFIG_HAVE_LONG_DOUBLE) && (defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH))","long double","long double"
|
||||
"sinl","math.h","defined(CONFIG_HAVE_LONG_DOUBLE) && (defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH))","long double","long double"
|
||||
"sqrt","math.hdefined(CONFIG_HAVE_DOUBLE) && (defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH))","double","",""
|
||||
"sqrtf","math.h","defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH)","float","float"
|
||||
"sqrtl","math.h","defined(CONFIG_HAVE_LONG_DOUBLE) && (defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH))","long double","long double"
|
||||
"tan","math.h","defined(CONFIG_HAVE_DOUBLE) && (defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH))","double","double"
|
||||
"tanf","math.h","defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH)","float","float"
|
||||
"tanh","math.h","defined(CONFIG_HAVE_DOUBLE) && (defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH))","double","double"
|
||||
"tanhf","math.h","defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH)","float","float"
|
||||
"tanhl","math.h","defined(CONFIG_HAVE_LONG_DOUBLE) && (defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH))","long double","long double"
|
||||
"tanl","math.h","defined(CONFIG_HAVE_LONG_DOUBLE) && (defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH))","long double","long double"
|
||||
|
Can't render this file because it contains an unexpected character in line 8 and column 127.
|
+1
-1
@@ -45,7 +45,7 @@ CSRCS += lib_roundf.c lib_sinf.c lib_sinhf.c lib_sqrtf.c lib_tanf.c lib_tanhf.c
|
||||
CSRCS += lib_acos.c lib_asin.c lib_atan.c lib_atan2.c lib_ceil.c lib_cos.c
|
||||
CSRCS += lib_cosh.c lib_exp.c lib_fabs.c lib_floor.c lib_fmod.c lib_frexp.c
|
||||
CSRCS += lib_ldexp.c lib_log.c lib_log10.c lib_log2.c lib_modf.c lib_pow.c
|
||||
CSRCS += lib_round.c lib_sin.c lib_sinh.c lib_sqrt.c lib_tan.c lib_tanh.c
|
||||
CSRCS += lib_rint.c lib_round.c lib_sin.c lib_sinh.c lib_sqrt.c lib_tan.c lib_tanh.c
|
||||
|
||||
CSRCS += lib_acosl.c lib_asinl.c lib_atan2l.c lib_atanl.c lib_ceill.c lib_cosl.c
|
||||
CSRCS += lib_coshl.c lib_expl.c lib_fabsl.c lib_floorl.c lib_fmodl.c lib_frexpl.c
|
||||
|
||||
@@ -42,8 +42,10 @@
|
||||
************************************************************/
|
||||
|
||||
#include <nuttx/config.h>
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <stdlib.h>
|
||||
#include <math.h>
|
||||
|
||||
/************************************************************
|
||||
* Definitions
|
||||
@@ -73,6 +73,12 @@ config NET_SOCKOPTS
|
||||
---help---
|
||||
Enable or disable support for socket options
|
||||
|
||||
config NETDEV_PHY_IOCTL
|
||||
bool "Enable PHY ioctl()"
|
||||
default n
|
||||
---help---
|
||||
Enable support for ioctl() commands to access PHY registers"
|
||||
|
||||
if NET_SOCKOPTS
|
||||
|
||||
config NET_SOLINGER
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
#
|
||||
# For a description of the syntax of this configuration file,
|
||||
# see misc/tools/kconfig-language.txt.
|
||||
#
|
||||
|
||||
#menu "Network Device Operations"
|
||||
|
||||
#endmenu # Network Device Operations
|
||||
@@ -0,0 +1,54 @@
|
||||
############################################################################
|
||||
# net/netdev/Make.defs
|
||||
#
|
||||
# Copyright (C) 2014 Gregory Nutt. All rights reserved.
|
||||
# Author: Gregory Nutt <gnutt@nuttx.org>
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions
|
||||
# are met:
|
||||
#
|
||||
# 1. Redistributions of source code must retain the above copyright
|
||||
# notice, this list of conditions and the following disclaimer.
|
||||
# 2. Redistributions in binary form must reproduce the above copyright
|
||||
# notice, this list of conditions and the following disclaimer in
|
||||
# the documentation and/or other materials provided with the
|
||||
# distribution.
|
||||
# 3. Neither the name NuttX nor the names of its contributors may be
|
||||
# used to endorse or promote products derived from this software
|
||||
# without specific prior written permission.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||
# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||
# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
||||
# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
||||
# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
# POSSIBILITY OF SUCH DAMAGE.
|
||||
#
|
||||
############################################################################
|
||||
|
||||
ifeq ($(CONFIG_NET),y)
|
||||
|
||||
# Support for operations on network devices
|
||||
|
||||
NETDEV_CSRCS += netdev_register.c netdev_ioctl.c net_poll.c netdev_txnotify.c
|
||||
NETDEV_CSRCS += netdev_findbyname.c netdev_findbyaddr.c netdev_count.c
|
||||
NETDEV_CSRCS += netdev_foreach.c netdev_unregister.c netdev_sem.c
|
||||
NETDEV_CSRCS += netdev_carrier.c
|
||||
|
||||
ifeq ($(CONFIG_NET_RXAVAIL),y)
|
||||
NETDEV_CSRCS += netdev_rxnotify.c
|
||||
endif
|
||||
|
||||
# Include netdev build support
|
||||
|
||||
DEPPATH += --dep-path netdev
|
||||
VPATH += :netdev
|
||||
|
||||
endif # CONFIG_NET
|
||||
@@ -0,0 +1,125 @@
|
||||
/****************************************************************************
|
||||
* net/netdev/netdev.h
|
||||
*
|
||||
* Copyright (C) 2014 Gregory Nutt. All rights reserved.
|
||||
* Author: Gregory Nutt <gnutt@nuttx.org>
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
* 3. Neither the name NuttX nor the names of its contributors may be
|
||||
* used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
||||
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
||||
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
#ifndef __NET_NETDEV_NETDEV_H
|
||||
#define __NET_NETDEV_NETDEV_H
|
||||
|
||||
/****************************************************************************
|
||||
* Included Files
|
||||
****************************************************************************/
|
||||
|
||||
#include <nuttx/config.h>
|
||||
|
||||
#include <sys/types.h>
|
||||
|
||||
#include <nuttx/net/uip.h>
|
||||
|
||||
/****************************************************************************
|
||||
* Pre-processor Definitions
|
||||
****************************************************************************/
|
||||
|
||||
/****************************************************************************
|
||||
* Public Type Definitions
|
||||
****************************************************************************/
|
||||
|
||||
/****************************************************************************
|
||||
* Public Data
|
||||
****************************************************************************/
|
||||
|
||||
#undef EXTERN
|
||||
#if defined(__cplusplus)
|
||||
#define EXTERN extern "C"
|
||||
extern "C"
|
||||
{
|
||||
#else
|
||||
#define EXTERN extern
|
||||
#endif
|
||||
|
||||
/* List of registered Ethernet device drivers */
|
||||
|
||||
#if CONFIG_NSOCKET_DESCRIPTORS > 0
|
||||
EXTERN struct uip_driver_s *g_netdevices;
|
||||
#endif
|
||||
|
||||
/****************************************************************************
|
||||
* Public Function Prototypes
|
||||
****************************************************************************/
|
||||
|
||||
/* netdev_register.c *********************************************************/
|
||||
|
||||
#if CONFIG_NSOCKET_DESCRIPTORS > 0
|
||||
void netdev_seminit(void);
|
||||
void netdev_semtake(void);
|
||||
void netdev_semgive(void);
|
||||
#endif
|
||||
|
||||
/* netdev_findbyname.c *******************************************************/
|
||||
|
||||
#if CONFIG_NSOCKET_DESCRIPTORS > 0
|
||||
FAR struct uip_driver_s *netdev_findbyname(FAR const char *ifname);
|
||||
#endif
|
||||
|
||||
/* netdev_findbyaddr.c *******************************************************/
|
||||
|
||||
#if CONFIG_NSOCKET_DESCRIPTORS > 0
|
||||
FAR struct uip_driver_s *netdev_findbyaddr(const uip_ipaddr_t addr);
|
||||
#endif
|
||||
|
||||
/* netdev_txnotify.c *********************************************************/
|
||||
|
||||
#if CONFIG_NSOCKET_DESCRIPTORS > 0
|
||||
void netdev_txnotify(const uip_ipaddr_t addr);
|
||||
#endif
|
||||
|
||||
/* netdev_rxnotify.c *********************************************************/
|
||||
|
||||
#if CONFIG_NSOCKET_DESCRIPTORS > 0 && defined(CONFIG_NET_RXAVAIL)
|
||||
void netdev_rxnotify(const uip_ipaddr_t addr);
|
||||
#else
|
||||
# define netdev_rxnotify(addr)
|
||||
#endif
|
||||
|
||||
/* net_count.c ***************************************************************/
|
||||
|
||||
#if CONFIG_NSOCKET_DESCRIPTORS > 0
|
||||
int netdev_count(void);
|
||||
#endif
|
||||
|
||||
#undef EXTERN
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* __NET_NETDEV_NETDEV_H */
|
||||
@@ -423,6 +423,21 @@ static int netdev_ifrioctl(FAR struct socket *psock, int cmd,
|
||||
# error "IOCTL Commands not implemented"
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_NETDEV_PHY_IOCTL
|
||||
case SIOCGMIIPHY: /* Get address of MII PHY in use */
|
||||
case SIOCGMIIREG: /* Get MII register via MDIO */
|
||||
case SIOCSMIIREG: /* Set MII register via MDIO */
|
||||
{
|
||||
dev = netdev_ifrdev(req);
|
||||
if (dev && dev->d_ioctl)
|
||||
{
|
||||
struct mii_ioctl_data *mii_data = &req->ifr_ifru.ifru_mii_data;
|
||||
ret = dev->d_ioctl(cmd, mii_data);
|
||||
}
|
||||
}
|
||||
break;
|
||||
#endif
|
||||
|
||||
default:
|
||||
{
|
||||
ret = -ENOTTY;
|
||||
|
||||
+1
-1
@@ -207,7 +207,7 @@ mksymtab.c, cvsparser.c, and cvsparser.h
|
||||
Example:
|
||||
|
||||
cd nuttx/tools
|
||||
cat ../syscall/syscall.csv ../lib/lib.csv | sort >tmp.csv
|
||||
cat ../syscall/syscall.csv ../lib/libc.csv | sort >tmp.csv
|
||||
./mksymtab.exe tmp.csv tmp.c
|
||||
|
||||
mkctags.sh
|
||||
|
||||
@@ -222,6 +222,7 @@ int main(int argc, char **argv, char **envp)
|
||||
|
||||
fprintf(outstream, "/* %s: Auto-generated symbol table. Do not edit */\n\n", symtab);
|
||||
fprintf(outstream, "#include <nuttx/config.h>\n");
|
||||
fprintf(outstream, "#include <nuttx/compiler.h>\n");
|
||||
fprintf(outstream, "#include <nuttx/binfmt/symtab.h>\n\n");
|
||||
|
||||
/* Output all of the require header files */
|
||||
|
||||
Reference in New Issue
Block a user