refine-multi-layer-process
Convert the arm assembly sources to unix newlines
Merge pull request #400 from mstorsjo/cleanup-arm-assembly

Convert the arm assembly sources to unix newlines
Update the makefile generator to support .S arm assembly files

These are built if ASM_ARCH is set to arm.
Hook up building arm assembly in the generic linux and android makefiles
Enable the android runtime CPU feature detection

Build and include the android cpufeatures library in libcommon.
Don't set -mfpu=neon while building the normal C++ files

This will make the normal C++ code not run on non-NEON devices at
all, making the runtime CPU feature detection pointless.

Adding -mfpu=neon to CFLAGS is not necessary, it's enough to
add it while building those individual .S files (via ASMFLAGS).
Add the APPLE_IOS define when building for iOS with make

Previously the define was only used when building from within the
xcode project files.

This enables the arm neon assembly.
get cpu cores for android
Merge pull request #403 from volvet/get-cpu-cores-android

get cpu cores for android
Unify the interface for the different variants of WelsCPUFeatureDetect

The caller of the function should not need to know exactly which
implementation of it is being used.

For the variants that don't support detecting the number of cores,
the pNumberOfLogicProcessors parameter can be left untouched
and the caller will use a higher level API for finding it out.

This simplifies all the calling code, and simplifies adding
more implementations of cpu feature detection.
Add cpu feature detection for generic arm/linux

For platforms without runtime detection, assume whoever built it
with HAVE_NEON actually wanted it.
Mark the arm asm labels as functions

This fixes calling them from thumb code, on linux.
Merge some WIN32 ifdefs that were directly next to each other
Change the unix version of WELS_EVENT to sem_t*

Typedeffing WELS_EVENT as sem_t* makes the typedef behave similarly
to the windows version (typedeffed as HANDLE), unifying the code
that allocates and uses these event objects (getting rid of
most of the need for separate codepaths and ifdefs).
Share the declarations for WELS_EVENT arrays between win32 and unix codepaths
Simplify code by allocating the arrays of events and thread handles statically

This avoids having to malloc a whole lot of separate arrays,
all which are all bounded by MAX_THREADS_NUM.
Use the windows INFINITE define instead of manually casting -1 to uint32_t
Do a blocking wait with WelsMultipleEventsWaitSingleBlocking

There is no point in doing a timed wait here - there's no work
that we can do if the wait timed out, and sleeping for 1 ms
inbetween doesn't help, it only adds potential extra latency
to reacting to threads that need more work to do.
Merge pull request #402 from mstorsjo/unify-cpu-feature-detect

Unify the interface for the different variants of WelsCPUFeatureDetect