Commit Graph

146 Commits (ffdf9ddcae8f095538cda3c7078c768aa616967d)

Author SHA1 Message Date
Sam Grove 1a91c1cc1d Merge pull request #2561 from geky/nsapi-network-state
lwip - Add checks for invalid state of network
2016-09-16 17:20:34 -05:00
Sam Grove c940d0e20a Merge pull request #2551 from ARMmbed/runtime_configuration
Remove IPv6 link time dependency on an RF phy
2016-09-16 17:17:51 -05:00
Sam Grove e4c8d76ba9 Merge pull request #2688 from artokin/master
Avoid type collision by renaming callback variable
2016-09-16 14:22:59 -05:00
Martin Kojtal 5d1d8b4033 Merge pull request #2685 from andreaslarssonublox/stm32f4_phy_fix
lwip - replace vendor specific register usage in stm32f4_emac.c with basic register
2016-09-16 08:23:37 +01:00
Sam Grove da14bce7a2 Merge pull request #2518 from fvincenzo/master
Enable uvisor on Beetle
2016-09-15 14:01:07 -05:00
Arto Kinnunen 1b46d2bbf9 Avoid type collision by renaming callback variable
Build jobs are failing due build error "arm_hal_timer.cpp:50:5:
error: reference to 'callback' is ambiguous".

Fix the build error by renaming callback to arm_hal_callback to
avoid collision with callback defined in ./mbed-os/hal/api/Callback.h
2016-09-13 15:02:43 +03:00
andreas.larsson 189d932169 Replaced usage of vendor specific register with basic registers when checking link status 2016-09-13 12:04:04 +02:00
Vincenzo Frascino 08e6f4121c [BEETLE] Add platform to uvisor importer
This patch adds Beetle platform to uvisor importer.

Signed-off-by: Vincenzo Frascino <vincenzo.frascino@arm.com>
2016-09-12 10:54:33 +01:00
Sam Grove 5c30c0f166 Merge pull request #2594 from svastm/fix_tcp_server_constructor
Fix TCPServer constructor
2016-09-10 13:04:55 -05:00
Sam Grove 5b90bf7b1d Merge pull request #2624 from simonqhughes/master
CFSTORE Bugfix for realloc() moving KV area and cfstore_file_t data structures not being updated correctly
2016-09-10 07:26:41 -05:00
Sam Grove 3806c8713b Merge pull request #2559 from pan-/utest_globals_optimizations
[utest]: Allow the linker to remove any part of utest if not used
2016-09-10 07:16:34 -05:00
Sam Grove c1ee7fb494 Merge pull request #2504 from ohagendorf/disco_f769_ii
[Disco_F769NI] adding new target
2016-09-10 07:16:21 -05:00
Sam Grove a35cd7f81f Merge pull request #2579 from geky/nsapi-max-socket-accept
lwip - Fix handling of max sockets in socket_accept
2016-09-10 07:11:20 -05:00
Sam Grove fb7ffcb5a3 Merge pull request #2580 from geky/nsapi-bind-again
lwip - Add check for previously-bound socket
2016-09-10 07:10:45 -05:00
Sam Grove b10e3a9163 Merge pull request #2578 from c1728p9/fix_double_free
Fix double free in NanostackInterface
2016-09-09 18:00:09 -05:00
Vincent Coubard aab107020b Use SingletonPtr for the internal variables defaults and handlers in utest_harness. 2016-09-09 17:22:41 +01:00
Olaf Hagendorf 765aeb0dc6 disco_f769ni adding ethernet init
the IPV4 feature was already enabled in an earlier commit but the mbed 5 ethernet initialisation was missing
2016-09-09 14:21:55 +02:00
Sam Grove 72b0d46e01 Merge pull request #2545 from marcuschangarm/flash_blob
Added define guards for SEQUENTIAL_FLASH_JOURNAL_MAX_LOGGED_BLOBS so …
2016-09-09 01:49:39 +02:00
Sam Grove a6b27319ec Merge pull request #2496 from geky/callback-cv
Add cv-qualifiers to Callback and deprecate combinatorial explody functions
2016-09-09 01:45:25 +02:00
Vincent Coubard caa4c4f2a3 Use a SingletonPtr for the Timeout object in utest_shim.
Makes sure to initialize it, otherwize, it might be initialized in
interrupt context.
2016-09-06 10:14:26 +01:00
Simon Hughes b2f561a917 Restoring swap code to cfstore_test_delete_all() after being previously removed to work around CFSTORE issue 17/23 (realloc()). 2016-09-05 14:16:40 +01:00
Simon Hughes d9ad7bbb99 This commit contains CFSTORE fixes for the following related issues:
- issue 17: Heap corruption.
- issue 23: Handles invalidated when realloc called.
- issue 24: cfstore_find returns error when "previous" parameter is NULL.
- issue 25: Memory leak when out of memory.

With respect to issues 17 and 23:
- A code defect existed for correctly updating cfstore_file_t data structures
  under the following conditions:
  -- the KV memory area contained some KV's.
  -- cfstore calls realloc() to increase the size of the KV area in
     memory because:
	  * A new KV was being added to the KV area, or
	  * the size of a pre-existing KV was being increased.
  -- The returned address from realloc() has changed from before the
     call (i.e. the location in memory of the KV area has changed)
	 e.g. the presence of heap memory objects directly above the KV memory
	 area in the memory address space causes realloc() to move the KV area
	 so the newly increased area can be accommodated at contiguous addresses.
  -- In this scenario, the cfstore_file_t (structures for open files) head pointers
     do not get correctly updated.
  -- The defect was fixed by correctly updating the cfstore_file_t:: head pointer.
  -- A new add_del test case was added to the scenario where a new KV is being added
     to the KV area.
  -- A new create test case was added to the scenario where the size of a
     pre-existing KV is being increased in size.

- A code defect for suppling a NULL handle as the previous argument to the Find() method
  (issue 24).
	-- Supply a null handle is valid, but it was being used to check for a valid hkey,
	   which was incorrect.
	-- A new test case was added to check the case of supplying a NULL previous argument
	   works correctly.

- A code defect for a memory leak under the following conditions (issue 25):
  -- When realloc() fails to perform a requested change to the size of the KV area, the
     error handling sometimes incorrectly sets cfstore_context_t::area_0_head to NULL.
	 Cfstore returns a suitable error to the client. If memory had previously been held
	 at area_0_head, realloc(area_0_head, size) returning NULL means the memory
	 at area_0_head is still retained.
  -- On receiving the error code, the client cleans up including a call to Uninitialize().
     This should free the retained but as area_0_head == NULL this is not possible. Hence
	 a memory leak occurred.
  -- This was fixed by not setting area_0_head = NULL on the realloc() failure.
  -- A create test case was modified to detect the leaking of memory in this way.
2016-09-05 12:45:43 +01:00
Russ Butler 126c8be053 Remove IPv6 link time dependency on an RF phy
Create a Nanostack rf phy class to wrap various rf physical interfaces.
Allow this phy to be set at runtime rather than compile time.
2016-08-31 15:24:51 -05:00
svastm b56201c8c4 Fix TCPServer constructor
- Avoid a call to the protected method `get_stack()` which cause a build fail.
 - Remove the constructor definition `TCPServer(NetworkStack *stack)`
   because it has no implementation.
2016-08-31 17:35:10 +02:00
Vincent Coubard cb4a7fa85e Use greentea_serial SingletonPtr. 2016-08-31 16:24:12 +01:00
Vincent Coubard 85bce1467f Improve compatibility between base_control_t and control_t.
* provide missing member functions from control_t in base_control_t
* construction of control_t from reference of base_control_t instead of
  value.
* overload operator+ for all permutations between control_t and
  base_control_t.
2016-08-30 13:29:17 +01:00
Vincent Coubard df3e3b251d Fix scope of the serial variable. 2016-08-30 13:29:16 +01:00
Vincent Coubard daa135a1b3 Move defaults and handlers variable into a static function.
This change allow a lot of code from utest to be removed from the final
binary if not used.
2016-08-30 13:29:14 +01:00
Vincent Coubard eed52a05d5 Replace default_handlers value by a reference. 2016-08-30 13:29:12 +01:00
Vincent Coubard 4bf28d474c Convert case_control to a POD. 2016-08-30 13:29:10 +01:00
Vincent Coubard 7a6edda44c Enhance compatibility between control_t and base_control_t:
* Add conversion operator in control_t to convert instances to base_control_t
2016-08-30 13:29:09 +01:00
Vincent Coubard 6d319c521f Construct control_t from a POD struct.
Replace const control_t instances by this POD.

This save memory and prevent inclusion of the constants in the binary if
they are not used.
2016-08-30 13:29:07 +01:00
Vincent Coubard 8fa239cdfd Move constant definitions of non POD object into cpp file.
It save space and fix the ODR violation.
2016-08-30 13:29:05 +01:00
Vincent Coubard 2bc5c3d069 Move global Timeout object from utest_shim in static function.
The change of scope allow the linker to remove the variable if not used.
2016-08-30 13:29:03 +01:00
Vincent Coubard acc3115e27 Move utest global serial object into a function.
That way it is not a global object anymore and is not attached to the
.init section and init array. If the function which contain the object is
not called then the serial object will not be present in the final binary.
2016-08-30 13:23:08 +01:00
Christopher Haster c3130e51e4 lwip - Added check for previously-bound socket
Avoids what turns into an infinite loop in lwip's internals
2016-08-29 18:47:30 -05:00
Christopher Haster db2738f850 nsapi - Corrected handling of errors in TCPServer accept
- Corrected handling, before errors would forcibly restart the
  accept loop without checks for timeouts
- Rearranged accept logic to match the logic of
  recv/send/recvfrom/sendto
2016-08-29 17:38:06 -05:00
Christopher Haster 506aa3d4ea lwip - Fixed handling of max sockets in socket_accept 2016-08-29 17:37:13 -05:00
Russ Butler dd07c522c9 Fix double free in NanostackInterface
When freeing all memory in the rx buffer chain set the head pointer to
NULL. This prevents the head rx buffer from getting freed twice.
2016-08-29 17:14:16 -05:00
Yogesh Pande be70130f3e Fix failing compilation for mbed-os
This commit fixes issue
https://github.com/ARMmbed/mbed-os/issues/2569

This commit has to go in coming mbed-os release else the build is broken.
2016-08-29 14:49:29 +03:00
Sam Grove eeead562f1 Merge pull request #2558 from meriac/master
Update uVisor with new page allocator
2016-08-27 07:30:50 -05:00
Christopher Haster 98ec80c484 lwip - Added checks for invalid state of network
- Check if disconnected in socket open
- Check if connected in interface connect
- Check if disconnected in interface disconnect
2016-08-26 15:35:26 -05:00
Christopher Haster 4ffeec1797 [nsapi] Restructured nsapi_dns.h to have clear separation between C/C++
- Separated overloads based on language
- Removed NSAPI_C_LINKAGE definition
2016-08-26 12:39:52 -05:00
Christopher Haster a3ecdf3b71 [nsapi] Adopted netconn_gethostbyname in the lwip interface
Provides proper integration with DHCP through lwip
2016-08-26 12:16:41 -05:00
Christopher Haster f9552ddbbe [nsapi] Add support for implementation-provided DNS servers
Support intended for DNS servers provided by DHCP requests.
2016-08-26 12:16:41 -05:00
Christopher Haster dc9ddd42ef [nsapi] Removed unnecessary dns_query functions 2016-08-26 12:16:41 -05:00
Christopher Haster 08584916a5 [nsapi] Added IPv6 support to DNS query
To avoid complications with unexpected IP versions, the wanted
IP version was added as an extra argument to DNS query functions
(defaults to NSAPI_IPv4).

Internal API changes:
m nsapi_dns_query
m nsapi_dns_query_multiple

Interestingly, though multiple questions can be encoded in a single
DNS packet, few, if any, nameservers respect any but the first
question. This makes support for coelescing DNS queries useless.
2016-08-26 12:16:41 -05:00
Christopher Haster 665309986e [nsapi] Added support for multiple results in a dns-query
Internal API changes:
+ nsapi_dns_query_multiple

Note, dns_query_multiple takes a buffer of nsapi_addr_t to fill. This is
less dynamic than the linked-list method used in linux's gethostbyname,
but is easier to manage and more constrained.
2016-08-26 12:16:41 -05:00
Christopher Haster 126df2b4a9 [nsapi] Refactored dns-query to match style of the rest of the nsapi
Internal API changes:
dnsQuery -> nsapi_dns_query

Additionally restructured query code to emit/parse network structures
in stream form to hopefully document the underlying structure more
explicitly.
2016-08-26 12:16:41 -05:00
Milosch Meriac 9cb6d6099e Update uVisor page allocator 2016-08-26 17:18:45 +01:00