Add support for Solaris 2.6 on sun4m builds
It is an excellent platform for catching bugs: big-endian, slow enough that a context switch in the middle of an operation becomes a regular occurrence, and all that on a SMP box. Or: I just wanted to see if it would work. Signed-off-by: Erik Boasson <eb@ilities.com>
This commit is contained in:
parent
47920df65c
commit
fda285e2f5
52 changed files with 1266 additions and 4197 deletions
30
performance/quick-microbenchmark
Normal file
30
performance/quick-microbenchmark
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
export CYCLONEDDS_URI='<Internal><MinimumSocketReceiveBufferSize>250kB</></><General><MaxMessageSize>65500B</><FragmentSize>65000B</>'
|
||||||
|
set -x
|
||||||
|
gen/ddsperf -D20 -L ping pon
|
||||||
|
for x in 16 32 64 128 1024 4096 16384 ; do
|
||||||
|
gen/ddsperf -D20 -TKS -z$x -L ping pong
|
||||||
|
done
|
||||||
|
gen/ddsperf -D20 -L pub sub
|
||||||
|
for x in 16 32 64 128 1024 4096 16384 ; do
|
||||||
|
gen/ddsperf -D20 -TKS -z$x -L pub sub
|
||||||
|
done
|
||||||
|
gen/ddsperf pong & pid=$!
|
||||||
|
gen/ddsperf -D20 ping
|
||||||
|
kill $pid
|
||||||
|
wait
|
||||||
|
gen/ddsperf -TKS pong & pid=$!
|
||||||
|
for x in 16 32 64 128 1024 4096 16384 ; do
|
||||||
|
gen/ddsperf -D20 -TKS -z$x ping
|
||||||
|
done
|
||||||
|
kill $pid
|
||||||
|
wait
|
||||||
|
gen/ddsperf sub & pid=$!
|
||||||
|
gen/ddsperf -D20 pub
|
||||||
|
kill $pid
|
||||||
|
wait
|
||||||
|
gen/ddsperf -TKS sub & pid=$!
|
||||||
|
for x in 16 32 64 128 1024 4096 16384 ; do
|
||||||
|
gen/ddsperf -D20 -TKS -z$x pub
|
||||||
|
done
|
||||||
|
kill $pid
|
||||||
|
wait
|
40
ports/solaris2.6/README.md
Normal file
40
ports/solaris2.6/README.md
Normal file
|
@ -0,0 +1,40 @@
|
||||||
|
# Solaris 2.6 / sun4m port
|
||||||
|
|
||||||
|
Building for Solaris 2.6 / sun4m, e.g., a Sun Microsystems SPARCStation 20 running Solaris 2.6,
|
||||||
|
firstly involves getting a sufficiently modern gcc onto the machine (gcc-4.3.x with GNU binutils
|
||||||
|
certainly works, but it is very well possible that older versions and/or using the Sun assembler and
|
||||||
|
linker work fine, too) and a sufficiently new gmake (3.81 should do).
|
||||||
|
|
||||||
|
Secondly, because the port relies on a custom makefile rather than "cmake", and that makefile
|
||||||
|
doesn't build the Java-based IDL preprocessor to avoid pulling in tons of dependencies, you will
|
||||||
|
need to do a build on a "normal" platform first. The makefile assumes that the required parts of
|
||||||
|
that build process are available in a "build" directory underneath the project root. Note that only
|
||||||
|
the CMake generate export.h and the ddsperf-related IDL preprocessor output is required (if other
|
||||||
|
applications are to be be built, they may require additional files).
|
||||||
|
|
||||||
|
The results are stored in a directory named "gen". After a successful build, there will be
|
||||||
|
libddsc.so and ddsperf in that directory. No attempts are made at tracking header file
|
||||||
|
dependencies. It seems unlikely that anyone would want to use such a machine as a development
|
||||||
|
machine.
|
||||||
|
|
||||||
|
The makefile expects to be run from the project root directory.
|
||||||
|
|
||||||
|
E.g., on a regular supported platform:
|
||||||
|
```
|
||||||
|
# mkdir build && cd build
|
||||||
|
# cmake ../src
|
||||||
|
# make
|
||||||
|
# cd ..
|
||||||
|
# git archive -o cdds.zip HEAD
|
||||||
|
# find build -name '*.[ch]' | xargs zip -9r cdds.zip
|
||||||
|
```
|
||||||
|
|
||||||
|
copy cdds.zip to the Solaris box, log in and:
|
||||||
|
```
|
||||||
|
# mkdir cdds && cd cdds
|
||||||
|
# unzip .../cdds.zip
|
||||||
|
# make -f ports/solaris2.6/makefile -j4
|
||||||
|
# gen/ddsperf -D20 sub & gen/ddsperf -D20 pub &
|
||||||
|
```
|
||||||
|
|
||||||
|
It takes about 10 minutes to do the build on a quad 100MHz HyperSPARC.
|
264
ports/solaris2.6/config.mk
Normal file
264
ports/solaris2.6/config.mk
Normal file
|
@ -0,0 +1,264 @@
|
||||||
|
ifeq "$(CONFIG)" ""
|
||||||
|
override CONFIG := $(shell $(dir $(lastword $(MAKEFILE_LIST)))/guess-config)
|
||||||
|
ifeq "$(CONFIG)" ""
|
||||||
|
$(error "Failed to guess config")
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
OS := $(shell echo $(CONFIG) | sed -e 's/^[^.]*\.//' -e 's/^\([^-_]*\)[-_].*/\1/')
|
||||||
|
PROC := $(shell echo $(CONFIG) | sed -e 's/^\([^.]*\)\..*/\1/')
|
||||||
|
|
||||||
|
ifeq "$(OS)" "darwin"
|
||||||
|
DDSRT = $(OS) posix
|
||||||
|
RULES = darwin
|
||||||
|
CC = clang
|
||||||
|
LD = $(CC)
|
||||||
|
OPT = -fsanitize=address #-O3 -DNDEBUG
|
||||||
|
PROF =
|
||||||
|
CPPFLAGS += -Wall -g $(OPT) $(PROF)
|
||||||
|
CFLAGS += $(CPPFLAGS) #-fno-inline
|
||||||
|
LDFLAGS += -g $(OPT) $(PROF)
|
||||||
|
X =
|
||||||
|
O = .o
|
||||||
|
A = .a
|
||||||
|
SO = .dylib
|
||||||
|
LIBPRE = lib
|
||||||
|
endif
|
||||||
|
ifeq "$(OS)" "solaris2.6"
|
||||||
|
DDSRT = $(OS) posix
|
||||||
|
RULES = unix
|
||||||
|
CC = gcc -std=gnu99 -mcpu=v8
|
||||||
|
LD = $(CC)
|
||||||
|
OPT = -O2 -DNDEBUG
|
||||||
|
PROF =
|
||||||
|
CPPFLAGS += -Wall -g $(OPT) $(PROF) -D_REENTRANT -D__EXTENSIONS__ -D__SunOS_5_6 -I$(PWD)/ports/solaris2.6/include
|
||||||
|
CFLAGS += $(CPPFLAGS)
|
||||||
|
LDFLAGS += -g $(OPT) $(PROF)
|
||||||
|
LDLIBS += -lposix4 -lsocket -lnsl -lc
|
||||||
|
X =
|
||||||
|
O = .o
|
||||||
|
A = .a
|
||||||
|
SO = .so
|
||||||
|
LIBPRE = lib
|
||||||
|
endif
|
||||||
|
ifeq "$(OS)" "linux"
|
||||||
|
DDSRT = posix
|
||||||
|
RULES = unix
|
||||||
|
CC = gcc-6.2 -std=gnu99 -fpic -mcx16
|
||||||
|
OPT = #-fsanitize=address
|
||||||
|
# CC = gcc-6.2 -std=gnu99 -fpic -mcx16
|
||||||
|
# OPT = -O3 -DNDEBUG -flto
|
||||||
|
LD = $(CC)
|
||||||
|
PROF =
|
||||||
|
CPPFLAGS += -Wall -g $(OPT) $(PROF)
|
||||||
|
CFLAGS += $(CPPFLAGS) #-fno-inline
|
||||||
|
LDFLAGS += -g $(OPT) $(PROF)
|
||||||
|
X =
|
||||||
|
O = .o
|
||||||
|
A = .a
|
||||||
|
SO = .so
|
||||||
|
LIBPRE = lib
|
||||||
|
endif
|
||||||
|
ifeq "$(OS)" "win32"
|
||||||
|
DDSRT = windows
|
||||||
|
RULES = windows
|
||||||
|
CC = cl
|
||||||
|
LD = link
|
||||||
|
# OPT = -O2 -DNDEBUG
|
||||||
|
OPT = -MDd
|
||||||
|
PROF =
|
||||||
|
CPPFLAGS = -Zi -W3 $(OPT) $(PROF) -TC # -bigobj
|
||||||
|
CFLAGS += $(CPPFLAGS)
|
||||||
|
LDFLAGS += -nologo -incremental:no -subsystem:console -debug
|
||||||
|
X = .exe
|
||||||
|
O = .obj
|
||||||
|
A = .lib
|
||||||
|
SO = .dll
|
||||||
|
LIBPRE =
|
||||||
|
# VS_VERSION=12.0
|
||||||
|
# ifeq "$(VS_VERSION)" "12.0" # This works for VS2013 + Windows 10
|
||||||
|
# VS_HOME=/cygdrive/c/Program Files (x86)/Microsoft Visual Studio 12.0
|
||||||
|
# WINDOWSSDKDIR=/cygdrive/c/Program Files (x86)/Windows Kits/8.1
|
||||||
|
# else # This works for VS2010 + Windows 7
|
||||||
|
# VS_HOME=/cygdrive/C/Program Files (x86)/Microsoft Visual Studio 10.0
|
||||||
|
# WINDOWSSDKDIR=/cygdrive/C/Program Files (x86)/Microsoft SDKs/Windows/v7.0A
|
||||||
|
# endif
|
||||||
|
endif
|
||||||
|
ifeq "$(OS)" "wine"
|
||||||
|
export WINEDEBUG=-all
|
||||||
|
DDSRT = windows
|
||||||
|
RULES = wine
|
||||||
|
GEN = gen.wine
|
||||||
|
CC = wine cl
|
||||||
|
LD = wine link
|
||||||
|
CPPFLAGS = -nologo -W3 -TC -analyze -D_WINNT=0x0604 -Drestrict=
|
||||||
|
CFLAGS += $(CPPFLAGS)
|
||||||
|
LDFLAGS += -nologo -incremental:no -subsystem:console -debug
|
||||||
|
X = .exe
|
||||||
|
O = .obj
|
||||||
|
A = .lib
|
||||||
|
SO = .dll
|
||||||
|
LIBPRE =
|
||||||
|
endif
|
||||||
|
|
||||||
|
# use $(DDSRT) as a proxy for $(CONFIG) not matching anything
|
||||||
|
ifeq "$(DDSRT)" ""
|
||||||
|
$(error "$(CONFIG): unsupported config")
|
||||||
|
endif
|
||||||
|
|
||||||
|
# We're assuming use of cygwin, which means Windows path names can be
|
||||||
|
# obtained using "cygpath". With "-m" we get slashes (rather than
|
||||||
|
# backslashes), which all of MS' tools accept and which are far less
|
||||||
|
# troublesome in make.
|
||||||
|
ifeq "$(CC)" "cl"
|
||||||
|
N_PWD := $(shell cygpath -m '$(PWD)')
|
||||||
|
#N_VS_HOME := $(shell cygpath -m '$(VS_HOME)')
|
||||||
|
#N_WINDOWSSDKDIR := $(shell cygpath -m '$(WINDOWSSDKDIR)')
|
||||||
|
else # not Windows
|
||||||
|
N_PWD := $(PWD)
|
||||||
|
endif
|
||||||
|
|
||||||
|
# More machine- and platform-specific matters.
|
||||||
|
ifeq "$(CC)" "cl" # Windows
|
||||||
|
ifeq "$(PROC)" "x86_64"
|
||||||
|
MACHINE = -machine:X64
|
||||||
|
endif
|
||||||
|
LDFLAGS += $(MACHINE)
|
||||||
|
OBJ_OFLAG = -Fo
|
||||||
|
EXE_OFLAG = -out:
|
||||||
|
SHLIB_OFLAG = -out:
|
||||||
|
CPPFLAGS += -D_CRT_SECURE_NO_WARNINGS
|
||||||
|
# ifeq "$(VS_VERSION)" "12.0" # This works for VS2013 + Windows 10
|
||||||
|
# CPPFLAGS += '-I$(N_VS_HOME)/VC/include' '-I$(N_WINDOWSSDKDIR)/Include/um' '-I$(N_WINDOWSSDKDIR)/Include/shared'
|
||||||
|
# ifeq "$(PROC)" "x86_64"
|
||||||
|
# LDFLAGS += '-libpath:$(N_VS_HOME)/VC/lib/amd64' '-libpath:$(N_WINDOWSSDKDIR)/lib/winv6.3/um/x64'
|
||||||
|
# else
|
||||||
|
# LDFLAGS += '-libpath:$(N_VS_HOME)/VC/lib' '-libpath:$(N_WINDOWSSDKDIR)/lib/winv6.3/um/x86'
|
||||||
|
# endif
|
||||||
|
# else # This works for VS2010 + Windows 7
|
||||||
|
# CPPFLAGS += '-I$(N_VS_HOME)/VC/include' '-I$(N_WINDOWSSDKDIR)/Include'
|
||||||
|
# ifeq "$(PROC)" "x86_64"
|
||||||
|
# LDFLAGS += '-libpath:$(N_VS_HOME)/VC/lib/amd64' '-libpath:$(N_WINDOWSSDKDIR)/lib/x64'
|
||||||
|
# else
|
||||||
|
# LDFLAGS += '-libpath:$(N_VS_HOME)/VC/lib' '-libpath:$(N_WINDOWSSDKDIR)/lib'
|
||||||
|
# endif
|
||||||
|
# endif
|
||||||
|
else
|
||||||
|
ifeq "$(CC)" "wine cl"
|
||||||
|
OBJ_OFLAG =-Fo
|
||||||
|
EXE_OFLAG = -out:
|
||||||
|
SHLIB_OFLAG = -out:
|
||||||
|
CPPFLAGS += -D_CRT_SECURE_NO_WARNINGS
|
||||||
|
else # not Windows (-like)
|
||||||
|
OBJ_OFLAG = -o
|
||||||
|
EXE_OFLAG = -o
|
||||||
|
SHLIB_OFLAG = -o
|
||||||
|
ifeq "$(PROC)" "x86"
|
||||||
|
CFLAGS += -m32
|
||||||
|
LDFLAGS += -m32
|
||||||
|
endif
|
||||||
|
ifeq "$(PROC)" "x86_64"
|
||||||
|
CFLAGS += -m64
|
||||||
|
LDFLAGS += -m64
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq "$(CC)" "cl"
|
||||||
|
LDFLAGS += -libpath:$(N_PWD)/gen
|
||||||
|
LIBDEP_SYS = kernel32 ws2_32
|
||||||
|
else
|
||||||
|
ifeq "$(CC)" "wine cl"
|
||||||
|
else
|
||||||
|
LDFLAGS += -L$(N_PWD)/gen
|
||||||
|
LIBDEP_SYS = kernel32 ws2_32
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
getabspath=$(abspath $1)
|
||||||
|
ifeq "$(RULES)" "darwin"
|
||||||
|
ifneq "$(findstring clang, $(CC))" ""
|
||||||
|
define make_exe
|
||||||
|
$(LD) $(LDFLAGS) $(patsubst -L%, -rpath %, $(filter -L%, $(LDFLAGS))) $(EXE_OFLAG)$@ $^ $(LDLIBS)
|
||||||
|
endef
|
||||||
|
define make_shlib
|
||||||
|
$(LD) $(LDFLAGS) $(patsubst -L%, -rpath %, $(filter -L%, $(LDFLAGS))) -dynamiclib -install_name @rpath/$(notdir $@) $(SHLIB_OFLAG)$@ $^ $(LDLIBS)
|
||||||
|
endef
|
||||||
|
else # assume gcc
|
||||||
|
comma=,
|
||||||
|
define make_exe
|
||||||
|
$(LD) $(LDFLAGS) $(patsubst -L%, -Wl$(comma)-rpath$(comma)%, $(filter -L%, $(LDFLAGS))) $(EXE_OFLAG)$@ $^ $(LDLIBS)
|
||||||
|
endef
|
||||||
|
define make_shlib
|
||||||
|
$(LD) $(LDFLAGS) $(patsubst -L%, -Wl$(comma)-rpath$(comma)%, $(filter -L%, $(LDFLAGS))) -dynamiclib -Wl,-install_name,@rpath/$(notdir $@) $(SHLIB_OFLAG)$@ $^ $(LDLIBS)
|
||||||
|
endef
|
||||||
|
endif
|
||||||
|
define make_archive
|
||||||
|
ar -ru $@ $?
|
||||||
|
endef
|
||||||
|
define make_dep
|
||||||
|
$(CC) -M $(CPPFLAGS) $< | sed 's|[a-zA-Z0-9_-]*\.o|gen/&|' > $@ || { rm $@ ; exit 1 ; }
|
||||||
|
endef
|
||||||
|
else
|
||||||
|
ifeq "$(RULES)" "unix"
|
||||||
|
LDLIBS += -lpthread
|
||||||
|
comma=,
|
||||||
|
define make_exe
|
||||||
|
$(LD) $(LDFLAGS) $(patsubst -L%,-Wl$(comma)-rpath$(comma)%, $(filter -L%, $(LDFLAGS))) $(EXE_OFLAG)$@ $^ $(LDLIBS)
|
||||||
|
endef
|
||||||
|
define make_shlib
|
||||||
|
$(LD) $(LDFLAGS) -Wl$(comma)--no-allow-shlib-undefined $(patsubst -L%,-Wl$(comma)-rpath$(comma)%, $(filter -L%, $(LDFLAGS))) -shared $(SHLIB_OFLAG)$@ $^ $(LDLIBS)
|
||||||
|
endef
|
||||||
|
define make_archive
|
||||||
|
ar -ru $@ $?
|
||||||
|
endef
|
||||||
|
define make_dep
|
||||||
|
$(CC) -M $(CPPFLAGS) $< | sed 's|[a-zA-Z0-9_-]*\.o|gen/&|' > $@ || { rm $@ ; exit 1 ; }
|
||||||
|
endef
|
||||||
|
else
|
||||||
|
ifeq "$(RULES)" "windows"
|
||||||
|
define make_exe
|
||||||
|
$(LD) $(LDFLAGS) $(EXE_OFLAG)$@ $^ $(LDLIBS)
|
||||||
|
endef
|
||||||
|
define make_shlib
|
||||||
|
$(LD) $(LDFLAGS) $(SHLIB_OFLAG)$@ $^ $(LDLIBS)
|
||||||
|
endef
|
||||||
|
define make_archive
|
||||||
|
lib $(MACHINE) /out:$@ $^
|
||||||
|
endef
|
||||||
|
define make_dep
|
||||||
|
$(CC) -E $(CPPFLAGS) $(CPPFLAGS) $< | grep "^#line.*\\\\vdds\\\\" | cut -d '"' -f 2 | sort -u | sed -e 's@\([A-Za-z]\)\:@ /cygdrive/\1@' -e 's@\\\\@/@g' -e '$$!s@$$@ \\@' -e '1s@^@$*$O: @' >$@
|
||||||
|
endef
|
||||||
|
else
|
||||||
|
ifeq "$(RULES)" "wine"
|
||||||
|
COMPILE_MANY_ATONCE=true
|
||||||
|
getabspath=$1
|
||||||
|
lc = $(subst A,a,$(subst B,b,$(subst C,c,$(subst D,d,$(subst E,e,$(subst F,f,$(subst G,g,$(subst H,h,$(subst I,i,$(subst J,j,$(subst K,k,$(subst L,l,$(subst M,m,$(subst N,n,$(subst O,o,$(subst P,p,$(subst Q,q,$(subst R,r,$(subst S,s,$(subst T,t,$(subst U,u,$(subst V,v,$(subst W,w,$(subst X,x,$(subst Y,y,$(subst Z,z,$1))))))))))))))))))))))))))
|
||||||
|
FAKEPWD = $(call lc,z:$(subst /,\\\\,$(PWD)))
|
||||||
|
define make_exe
|
||||||
|
$(LD) $(LDFLAGS) $(EXE_OFLAG)$@ $^ $(LDLIBS)
|
||||||
|
endef
|
||||||
|
define make_shlib
|
||||||
|
$(LD) $(LDFLAGS) $(SHLIB_OFLAG)$@ $^ $(LDLIBS)
|
||||||
|
endef
|
||||||
|
define make_archive
|
||||||
|
lib $(MACHINE) /out:$@ $^
|
||||||
|
endef
|
||||||
|
define make_dep
|
||||||
|
$(CC) -E $(CPPFLAGS) $(CPPFLAGS) $< | grep "^#line.*\\\\vdds\\\\" | cut -d '"' -f 2 | sort -u | sed -e 's@$(FAKEPWD)\(\\\\\)*@ @' -e 's@\\\\@/@g' -e '$$!s@$$@ \\@' -e '1s@^@$*$O: @' >$@
|
||||||
|
endef
|
||||||
|
else
|
||||||
|
$(error "$(OS) not covered by build macros for")
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq "$(GEN)" ""
|
||||||
|
GEN = gen
|
||||||
|
endif
|
||||||
|
|
||||||
|
%$O:
|
||||||
|
%$X:
|
||||||
|
%$(SO):
|
||||||
|
%.d:
|
52
ports/solaris2.6/guess-config
Executable file
52
ports/solaris2.6/guess-config
Executable file
|
@ -0,0 +1,52 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
s=`uname -s`
|
||||||
|
case "$s" in
|
||||||
|
[Dd]arwin)
|
||||||
|
# default to G4 for now
|
||||||
|
m=`uname -m`
|
||||||
|
case "$m" in
|
||||||
|
x86_64)
|
||||||
|
cfg="x86_64.darwin"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "guess-config: darwin: didn't recognize machine type $m - please fix" 2>&1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
[Ll]inux)
|
||||||
|
m=`uname -m`
|
||||||
|
case "$m" in
|
||||||
|
arm*)
|
||||||
|
cfg=arm.linux.6
|
||||||
|
;;
|
||||||
|
x86_64)
|
||||||
|
cfg=x86_64.linux.6
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
cfg=x86.linux.6
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
[Ss]un[Oo][Ss]|[Ss]olaris)
|
||||||
|
m=`uname -m`:`uname -r`
|
||||||
|
#should check OS rev
|
||||||
|
case "$m" in
|
||||||
|
sun4m:5.6)
|
||||||
|
cfg="sparc.solaris2.6"
|
||||||
|
;;
|
||||||
|
sun4u:*)
|
||||||
|
cfg="sparcv9.solaris"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
cfg="x86_64.solaris"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "guess-config: didn't recognize system type $s - please fix" 2>&1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
[ -z "$cfg" ] && cfg="asjemenou"
|
||||||
|
echo $cfg
|
8
ports/solaris2.6/include/inttypes.h
Normal file
8
ports/solaris2.6/include/inttypes.h
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
#ifndef DDSRT_FIXUP_INTTYPES_H
|
||||||
|
#define DDSRT_FIXUP_INTTYPES_H
|
||||||
|
|
||||||
|
#include_next "inttypes.h"
|
||||||
|
#define PRIuPTR "lu"
|
||||||
|
#define PRIxPTR "lx"
|
||||||
|
|
||||||
|
#endif /* DDSRT_FIXUP_INTTYPES_H */
|
22
ports/solaris2.6/include/math.h
Normal file
22
ports/solaris2.6/include/math.h
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
#ifndef DDSRT_FIXUP_MATH_H
|
||||||
|
#define DDSRT_FIXUP_MATH_H
|
||||||
|
|
||||||
|
#include_next "math.h"
|
||||||
|
|
||||||
|
/* INFINITY, HUGE_VALF, HUGE_VALL are all standard C99, but Solaris 2.6
|
||||||
|
antedates that by a good margin and GCC's fixed-up headers don't
|
||||||
|
define it, so we do it here */
|
||||||
|
#undef HUGE_VAL
|
||||||
|
#ifdef __GNUC__
|
||||||
|
# define INFINITY (__builtin_inff ())
|
||||||
|
# define HUGE_VAL (__builtin_huge_val ())
|
||||||
|
# define HUGE_VALF (__builtin_huge_valf ())
|
||||||
|
# define HUGE_VALL (__builtin_huge_vall ())
|
||||||
|
#else
|
||||||
|
# define INFINITY 1e10000
|
||||||
|
# define HUGE_VAL 1e10000
|
||||||
|
# define HUGE_VALF 1e10000f
|
||||||
|
# define HUGE_VALL 1e10000L
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* DDSRT_FIXUP_MATH_H */
|
10
ports/solaris2.6/include/netinet/in.h
Normal file
10
ports/solaris2.6/include/netinet/in.h
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
#ifndef DDSRT_FIXUP_NETINET_IN_H
|
||||||
|
#define DDSRT_FIXUP_NETINET_IN_H
|
||||||
|
|
||||||
|
#include_next "netinet/in.h"
|
||||||
|
|
||||||
|
#ifndef INET_ADDRSTRLEN
|
||||||
|
#define INET_ADDRSTRLEN 16
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* DDSRT_FIXUP_NETINET_IN_H */
|
11
ports/solaris2.6/include/stdint.h
Normal file
11
ports/solaris2.6/include/stdint.h
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
#ifndef DDSRT_FIXUP_STDINT_H
|
||||||
|
#define DDSRT_FIXUP_STDINT_H
|
||||||
|
|
||||||
|
#include <sys/int_types.h>
|
||||||
|
#include <limits.h>
|
||||||
|
|
||||||
|
#ifndef UINT32_C
|
||||||
|
#define UINT32_C(v) (v ## U)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* DDSRT_FIXUP_STDINT_H */
|
14
ports/solaris2.6/include/sys/socket.h
Normal file
14
ports/solaris2.6/include/sys/socket.h
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
#ifndef DDSRT_FIXUP_SYS_SOCKET_H
|
||||||
|
#define DDSRT_FIXUP_SYS_SOCKET_H
|
||||||
|
|
||||||
|
#include "netinet/in.h"
|
||||||
|
#include_next "sys/socket.h"
|
||||||
|
|
||||||
|
typedef size_t socklen_t;
|
||||||
|
|
||||||
|
struct sockaddr_storage {
|
||||||
|
sa_family_t ss_family;
|
||||||
|
struct sockaddr_in stuff;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif /* DDSRT_FIXUP_SYS_SOCKET_H */
|
59
ports/solaris2.6/makefile
Normal file
59
ports/solaris2.6/makefile
Normal file
|
@ -0,0 +1,59 @@
|
||||||
|
.PHONY: all clean
|
||||||
|
|
||||||
|
include $(dir $(lastword $(MAKEFILE_LIST)))/config.mk
|
||||||
|
|
||||||
|
CPPFLAGS += -Isrc/core/ddsc/src -Isrc/core/ddsc/include -Isrc/core/ddsi/include -Isrc/ddsrt/include
|
||||||
|
CPPFLAGS += $(addprefix -I, $(wildcard src/ddsrt/src/*/include))
|
||||||
|
CPPFLAGS += -Ibuild/core/include -Ibuild/ddsrt/include
|
||||||
|
CPPFLAGS += -DDDSI_INCLUDE_NETWORK_PARTITIONS # -DDDSI_INCLUDE_BANDWIDTH_LIMITING -DDDSI_INCLUDE_NETWORK_CHANNELS
|
||||||
|
|
||||||
|
SHLIBS = ddsc
|
||||||
|
EXES = ddsperf
|
||||||
|
|
||||||
|
all: $(SHLIBS:%=$(GEN)/$(LIBPRE)%$(SO)) $(EXES:%=$(GEN)/%$X)
|
||||||
|
lib: $(SHLIBS:%=$(GEN)/$(LIBPRE)%$(SO))
|
||||||
|
|
||||||
|
clean:
|
||||||
|
rm -rf $(GEN)/*
|
||||||
|
|
||||||
|
LIBCDDS_SRCDIRS := src/core/ddsi/src src/core/ddsc/src src/ddsrt/src $(DDSRT:%=src/ddsrt/src/*/%)
|
||||||
|
LIBCDDS_SRC := $(filter-out %/getopt.c, $(wildcard $(LIBCDDS_SRCDIRS:%=%/*.c)))
|
||||||
|
ifeq "$(words $(DDSRT))" "2" # max = 2 ...
|
||||||
|
pct=%
|
||||||
|
XX=$(filter src/ddsrt/src/%/$(word 1, $(DDSRT))/, $(dir $(LIBCDDS_SRC)))
|
||||||
|
YY=$(patsubst %/$(word 1, $(DDSRT))/, %/$(word 2, $(DDSRT))/, $(XX))
|
||||||
|
LIBCDDS_SRC := $(filter-out $(YY:%=%$(pct)), $(LIBCDDS_SRC))
|
||||||
|
endif
|
||||||
|
|
||||||
|
$(GEN)/$(LIBPRE)ddsc$(SO): CPPFLAGS += -Dddsc_EXPORTS
|
||||||
|
$(GEN)/$(LIBPRE)ddsc$(SO): CPPFLAGS += -fPIC
|
||||||
|
|
||||||
|
ifneq "$(COMPILE_MANY_ATONCE)" "true"
|
||||||
|
$(GEN)/$(LIBPRE)ddsc$(SO): $(LIBCDDS_SRC:%.c=$(GEN)/%$O)
|
||||||
|
$(make_shlib)
|
||||||
|
else # /Fo bit is MSVC specific
|
||||||
|
$(GEN)/$(LIBPRE)ddsc$(SO): $(LIBCDDS_SRC)
|
||||||
|
xs="" ;\
|
||||||
|
for x in $(foreach x, $^, $(call getabspath, $x)) ; do \
|
||||||
|
[ $$x -nt $(GEN)/`basename $$x .c`$O ] && xs="$$xs $$x" ; \
|
||||||
|
done ; \
|
||||||
|
echo "compile: $$xs" ; \
|
||||||
|
[ -z "$$xs" ] || $(CC) $(CPPFLAGS) -MP8 -Fo.\\$(GEN)\\ -c $$xs
|
||||||
|
$(LD) $(LDFLAGS) $(SHLIB_OFLAG)$@ $(LIBCDDS_SC:%=$(GEN)/%$O) $(LDLIBS)
|
||||||
|
endif
|
||||||
|
|
||||||
|
DDSPERF_SRCDIRS := src/tools/ddsperf build/tools/ddsperf
|
||||||
|
DDSPERF_SRC := $(wildcard $(DDSPERF_SRCDIRS:%=%/*.c))
|
||||||
|
|
||||||
|
$(GEN)/ddsperf$X: LDLIBS += -L. -lddsc
|
||||||
|
$(GEN)/ddsperf$X: CPPFLAGS += -Ibuild/tools/ddsperf
|
||||||
|
$(GEN)/ddsperf$X: $(DDSPERF_SRC:%.c=%.o) | $(GEN)/$(LIBPRE)ddsc$(SO)
|
||||||
|
$(make_exe)
|
||||||
|
|
||||||
|
$(GEN)/%.STAMP: ; @[ -d $(dir $@) ] || { mkdir -p $(dir $@) ; touch $@ ; }
|
||||||
|
|
||||||
|
$(GEN)/%$O: %.c $(GEN)/%.STAMP
|
||||||
|
$(CC) $(CPPFLAGS) $(OBJ_OFLAG)$@ -c $<
|
||||||
|
|
||||||
|
$(GEN)/%.d: %.c
|
||||||
|
$(make_dep)
|
|
@ -16,6 +16,15 @@
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
typedef struct nn_udpv4mcgen_address {
|
||||||
|
/* base IPv4 MC address is ipv4, host bits are bits base .. base+count-1, this machine is bit idx */
|
||||||
|
struct in_addr ipv4;
|
||||||
|
uint8_t base;
|
||||||
|
uint8_t count;
|
||||||
|
uint8_t idx; /* must be last: then sorting will put them consecutively */
|
||||||
|
} nn_udpv4mcgen_address_t;
|
||||||
|
|
||||||
|
|
||||||
int ddsi_udp_init (void);
|
int ddsi_udp_init (void);
|
||||||
|
|
||||||
#if defined (__cplusplus)
|
#if defined (__cplusplus)
|
||||||
|
|
|
@ -62,14 +62,6 @@ typedef struct {
|
||||||
unsigned char address[16];
|
unsigned char address[16];
|
||||||
} nn_locator_t;
|
} nn_locator_t;
|
||||||
|
|
||||||
typedef struct nn_udpv4mcgen_address {
|
|
||||||
/* base IPv4 MC address is ipv4, host bits are bits base .. base+count-1, this machine is bit idx */
|
|
||||||
struct in_addr ipv4;
|
|
||||||
uint8_t base;
|
|
||||||
uint8_t count;
|
|
||||||
uint8_t idx; /* must be last: then sorting will put them consecutively */
|
|
||||||
} nn_udpv4mcgen_address_t;
|
|
||||||
|
|
||||||
#define NN_STATUSINFO_DISPOSE 0x1u
|
#define NN_STATUSINFO_DISPOSE 0x1u
|
||||||
#define NN_STATUSINFO_UNREGISTER 0x2u
|
#define NN_STATUSINFO_UNREGISTER 0x2u
|
||||||
#define NN_STATUSINFO_STANDARDIZED (NN_STATUSINFO_DISPOSE | NN_STATUSINFO_UNREGISTER)
|
#define NN_STATUSINFO_STANDARDIZED (NN_STATUSINFO_DISPOSE | NN_STATUSINFO_UNREGISTER)
|
||||||
|
|
|
@ -23,6 +23,7 @@
|
||||||
#include "dds/ddsi/q_config.h"
|
#include "dds/ddsi/q_config.h"
|
||||||
#include "dds/ddsi/q_addrset.h"
|
#include "dds/ddsi/q_addrset.h"
|
||||||
#include "dds/ddsi/q_globals.h" /* gv.mattr */
|
#include "dds/ddsi/q_globals.h" /* gv.mattr */
|
||||||
|
#include "dds/ddsi/ddsi_udp.h" /* nn_mc4gen_address_t */
|
||||||
|
|
||||||
/* So what does one do with const & mutexes? I need to take lock in a
|
/* So what does one do with const & mutexes? I need to take lock in a
|
||||||
pure function just in case some other thread is trying to change
|
pure function just in case some other thread is trying to change
|
||||||
|
|
|
@ -41,6 +41,7 @@
|
||||||
#include "dds/ddsi/ddsi_serdata_default.h"
|
#include "dds/ddsi/ddsi_serdata_default.h"
|
||||||
#include "dds/ddsi/ddsi_mcgroup.h"
|
#include "dds/ddsi/ddsi_mcgroup.h"
|
||||||
#include "dds/ddsi/q_receive.h"
|
#include "dds/ddsi/q_receive.h"
|
||||||
|
#include "dds/ddsi/ddsi_udp.h" /* nn_mc4gen_address_t */
|
||||||
|
|
||||||
#include "dds/ddsi/sysdeps.h"
|
#include "dds/ddsi/sysdeps.h"
|
||||||
#include "dds__whc.h"
|
#include "dds__whc.h"
|
||||||
|
|
|
@ -28,6 +28,7 @@
|
||||||
#include "dds/ddsi/q_time.h"
|
#include "dds/ddsi/q_time.h"
|
||||||
#include "dds/ddsi/q_xmsg.h"
|
#include "dds/ddsi/q_xmsg.h"
|
||||||
#include "dds/ddsi/ddsi_vendor.h"
|
#include "dds/ddsi/ddsi_vendor.h"
|
||||||
|
#include "dds/ddsi/ddsi_udp.h" /* nn_mc4gen_address_t */
|
||||||
|
|
||||||
#include "dds/ddsi/q_config.h"
|
#include "dds/ddsi/q_config.h"
|
||||||
#include "dds/ddsi/q_globals.h"
|
#include "dds/ddsi/q_globals.h"
|
||||||
|
|
|
@ -38,16 +38,6 @@
|
||||||
#include "dds/ddsi/sysdeps.h"
|
#include "dds/ddsi/sysdeps.h"
|
||||||
#include "dds__whc.h"
|
#include "dds__whc.h"
|
||||||
|
|
||||||
#if __STDC_VERSION__ >= 199901L
|
|
||||||
#define POS_INFINITY_DOUBLE INFINITY
|
|
||||||
#elif defined HUGE_VAL
|
|
||||||
/* Hope for the best -- the only consequence of getting this wrong is
|
|
||||||
that T_NEVER may be printed as a fugly value instead of as +inf. */
|
|
||||||
#define POS_INFINITY_DOUBLE (HUGE_VAL + HUGE_VAL)
|
|
||||||
#else
|
|
||||||
#define POS_INFINITY_DOUBLE 1e1000
|
|
||||||
#endif
|
|
||||||
|
|
||||||
static const struct wr_prd_match *root_rdmatch (const struct writer *wr)
|
static const struct wr_prd_match *root_rdmatch (const struct writer *wr)
|
||||||
{
|
{
|
||||||
return ddsrt_avl_root (&wr_readers_treedef, &wr->readers);
|
return ddsrt_avl_root (&wr_readers_treedef, &wr->readers);
|
||||||
|
@ -310,7 +300,7 @@ struct nn_xmsg *writer_hbcontrol_piggyback (struct writer *wr, const struct whc_
|
||||||
DDS_TRACE("heartbeat(wr "PGUIDFMT"%s) piggybacked, resched in %g s (min-ack %"PRId64"%s, avail-seq %"PRId64", xmit %"PRId64")\n",
|
DDS_TRACE("heartbeat(wr "PGUIDFMT"%s) piggybacked, resched in %g s (min-ack %"PRId64"%s, avail-seq %"PRId64", xmit %"PRId64")\n",
|
||||||
PGUID (wr->e.guid),
|
PGUID (wr->e.guid),
|
||||||
*hbansreq ? "" : " final",
|
*hbansreq ? "" : " final",
|
||||||
(hbc->tsched.v == T_NEVER) ? POS_INFINITY_DOUBLE : (double) (hbc->tsched.v - tnow.v) / 1e9,
|
(hbc->tsched.v == T_NEVER) ? INFINITY : (double) (hbc->tsched.v - tnow.v) / 1e9,
|
||||||
ddsrt_avl_is_empty (&wr->readers) ? -1 : root_rdmatch (wr)->min_seq,
|
ddsrt_avl_is_empty (&wr->readers) ? -1 : root_rdmatch (wr)->min_seq,
|
||||||
ddsrt_avl_is_empty (&wr->readers) || root_rdmatch (wr)->all_have_replied_to_hb ? "" : "!",
|
ddsrt_avl_is_empty (&wr->readers) || root_rdmatch (wr)->all_have_replied_to_hb ? "" : "!",
|
||||||
whcst->max_seq, READ_SEQ_XMIT(wr));
|
whcst->max_seq, READ_SEQ_XMIT(wr));
|
||||||
|
|
|
@ -48,14 +48,6 @@
|
||||||
!= 0 -- and note that it had better be 2's complement machine! */
|
!= 0 -- and note that it had better be 2's complement machine! */
|
||||||
#define TSCHED_DELETE ((int64_t) ((uint64_t) 1 << 63))
|
#define TSCHED_DELETE ((int64_t) ((uint64_t) 1 << 63))
|
||||||
|
|
||||||
#if __STDC_VERSION__ >= 199901L
|
|
||||||
#define POS_INFINITY_DOUBLE INFINITY
|
|
||||||
#else
|
|
||||||
/* Hope for the best -- the only consequence of getting this wrong is
|
|
||||||
that T_NEVER may be printed as a fugly value instead of as +inf. */
|
|
||||||
#define POS_INFINITY_DOUBLE (HUGE_VAL + HUGE_VAL)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
enum xeventkind
|
enum xeventkind
|
||||||
{
|
{
|
||||||
XEVK_HEARTBEAT,
|
XEVK_HEARTBEAT,
|
||||||
|
@ -623,7 +615,7 @@ static void handle_xevk_heartbeat (struct nn_xpack *xp, struct xevent *ev, nn_mt
|
||||||
PGUID (wr->e.guid),
|
PGUID (wr->e.guid),
|
||||||
hbansreq ? "" : " final",
|
hbansreq ? "" : " final",
|
||||||
msg ? "sent" : "suppressed",
|
msg ? "sent" : "suppressed",
|
||||||
(t_next.v == T_NEVER) ? POS_INFINITY_DOUBLE : (double)(t_next.v - tnow.v) / 1e9,
|
(t_next.v == T_NEVER) ? INFINITY : (double)(t_next.v - tnow.v) / 1e9,
|
||||||
ddsrt_avl_is_empty (&wr->readers) ? (seqno_t) -1 : ((struct wr_prd_match *) ddsrt_avl_root_non_empty (&wr_readers_treedef, &wr->readers))->min_seq,
|
ddsrt_avl_is_empty (&wr->readers) ? (seqno_t) -1 : ((struct wr_prd_match *) ddsrt_avl_root_non_empty (&wr_readers_treedef, &wr->readers))->min_seq,
|
||||||
ddsrt_avl_is_empty (&wr->readers) || ((struct wr_prd_match *) ddsrt_avl_root_non_empty (&wr_readers_treedef, &wr->readers))->all_have_replied_to_hb ? "" : "!",
|
ddsrt_avl_is_empty (&wr->readers) || ((struct wr_prd_match *) ddsrt_avl_root_non_empty (&wr_readers_treedef, &wr->readers))->all_have_replied_to_hb ? "" : "!",
|
||||||
whcst.max_seq, READ_SEQ_XMIT(wr));
|
whcst.max_seq, READ_SEQ_XMIT(wr));
|
||||||
|
|
|
@ -150,10 +150,10 @@ foreach(feature atomics cdtors environ heap ifaddrs random rusage
|
||||||
sockets string sync threads time md5 process)
|
sockets string sync threads time md5 process)
|
||||||
if(EXISTS "${include_path}/dds/ddsrt/${feature}.h")
|
if(EXISTS "${include_path}/dds/ddsrt/${feature}.h")
|
||||||
list(APPEND headers "${include_path}/dds/ddsrt/${feature}.h")
|
list(APPEND headers "${include_path}/dds/ddsrt/${feature}.h")
|
||||||
file(GLOB
|
file(GLOB_RECURSE
|
||||||
files
|
files
|
||||||
CONFIGURE_DEPENDS
|
CONFIGURE_DEPENDS
|
||||||
"${include_path}/dds/ddsrt/${feature}/**.h")
|
"${include_path}/dds/ddsrt/${feature}/*.h")
|
||||||
list(APPEND headers ${files})
|
list(APPEND headers ${files})
|
||||||
|
|
||||||
# Do not add any sources if a feature is not offered by the target. The
|
# Do not add any sources if a feature is not offered by the target. The
|
||||||
|
@ -193,20 +193,20 @@ foreach(feature atomics cdtors environ heap ifaddrs random rusage
|
||||||
# Headers that must remain private but are required by other runtime
|
# Headers that must remain private but are required by other runtime
|
||||||
# source files must be located in src/<feature>/dds/ddsrt.
|
# source files must be located in src/<feature>/dds/ddsrt.
|
||||||
if(IS_DIRECTORY "${source_path}/${feature}/include")
|
if(IS_DIRECTORY "${source_path}/${feature}/include")
|
||||||
file(GLOB
|
file(GLOB_RECURSE
|
||||||
files
|
files
|
||||||
CONFIGURE_DEPENDS
|
CONFIGURE_DEPENDS
|
||||||
"${source_path}/${feature}/include/**.h")
|
"${source_path}/${feature}/include/*.h")
|
||||||
list(APPEND sources ${files})
|
list(APPEND headers ${files})
|
||||||
target_include_directories(
|
target_include_directories(
|
||||||
ddsrt INTERFACE
|
ddsrt INTERFACE
|
||||||
"$<BUILD_INTERFACE:${source_path}/${feature}/include/>")
|
"$<BUILD_INTERFACE:${source_path}/${feature}/include/>")
|
||||||
endif()
|
endif()
|
||||||
if(IS_DIRECTORY "${source_path}/${feature}/${system}")
|
if(IS_DIRECTORY "${source_path}/${feature}/${system}")
|
||||||
file(GLOB
|
file(GLOB_RECURSE
|
||||||
files
|
files
|
||||||
CONFIGURE_DEPENDS
|
CONFIGURE_DEPENDS
|
||||||
"${source_path}/${feature}/${system}/**.c")
|
"${source_path}/${feature}/${system}/*.c")
|
||||||
list(APPEND sources ${files})
|
list(APPEND sources ${files})
|
||||||
set(system_exists TRUE)
|
set(system_exists TRUE)
|
||||||
endif()
|
endif()
|
||||||
|
|
|
@ -16,12 +16,12 @@
|
||||||
#include <lwip/sockets.h>
|
#include <lwip/sockets.h>
|
||||||
#include <lwip/netdb.h>
|
#include <lwip/netdb.h>
|
||||||
#else
|
#else
|
||||||
|
#include <sys/socket.h>
|
||||||
#include <net/if.h>
|
#include <net/if.h>
|
||||||
#include <netinet/in.h>
|
#include <netinet/in.h>
|
||||||
#include <stddef.h>
|
#include <stddef.h>
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include <sys/select.h>
|
#include <sys/select.h>
|
||||||
#include <sys/socket.h>
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(__cplusplus)
|
#if defined(__cplusplus)
|
||||||
|
@ -37,19 +37,32 @@ typedef int ddsrt_socket_t;
|
||||||
# define DDSRT_HAVE_IPV6 1
|
# define DDSRT_HAVE_IPV6 1
|
||||||
# endif
|
# endif
|
||||||
# if LWIP_DNS && LWIP_SOCKET
|
# if LWIP_DNS && LWIP_SOCKET
|
||||||
# define DDSRT_HAVE_DNS DDSRT_WITH_DNS
|
# define DDSRT_HAVE_DNS DDSRT_WITH_DNS
|
||||||
|
# define DDSRT_HAVE_GETADDRINFO DDSRT_WITH_DNS
|
||||||
# endif
|
# endif
|
||||||
# define DDSRT_HAVE_SSM 0
|
# define DDSRT_HAVE_SSM 0
|
||||||
|
# define DDSRT_HAVE_INET_NTOP 1
|
||||||
|
# define DDSRT_HAVE_INET_PTON 1
|
||||||
|
|
||||||
# define IFF_UP 0x1
|
# define IFF_UP 0x1
|
||||||
# define IFF_BROADCAST 0x2
|
# define IFF_BROADCAST 0x2
|
||||||
# define IFF_LOOPBACK 0x8
|
# define IFF_LOOPBACK 0x8
|
||||||
# define IFF_POINTOPOINT 0x10
|
# define IFF_POINTOPOINT 0x10
|
||||||
# define IFF_MULTICAST 0x1000
|
# define IFF_MULTICAST 0x1000
|
||||||
|
#elif __SunOS_5_6
|
||||||
|
# define DDSRT_HAVE_IPV6 0
|
||||||
|
# define DDSRT_HAVE_DNS DDSRT_WITH_DNS
|
||||||
|
# define DDSRT_HAVE_GETADDRINFO 0
|
||||||
|
# define DDSRT_HAVE_SSM 0
|
||||||
|
# define DDSRT_HAVE_INET_NTOP 0
|
||||||
|
# define DDSRT_HAVE_INET_PTON 0
|
||||||
#else /* LWIP_SOCKET */
|
#else /* LWIP_SOCKET */
|
||||||
# define DDSRT_HAVE_IPV6 1
|
# define DDSRT_HAVE_IPV6 1
|
||||||
# define DDSRT_HAVE_DNS DDSRT_WITH_DNS
|
# define DDSRT_HAVE_DNS DDSRT_WITH_DNS
|
||||||
# define DDSRT_HAVE_SSM 1
|
# define DDSRT_HAVE_GETADDRINFO DDSRT_WITH_DNS
|
||||||
|
# define DDSRT_HAVE_SSM 1
|
||||||
|
# define DDSRT_HAVE_INET_NTOP 1
|
||||||
|
# define DDSRT_HAVE_INET_PTON 1
|
||||||
#endif /* LWIP_SOCKET */
|
#endif /* LWIP_SOCKET */
|
||||||
|
|
||||||
typedef struct iovec ddsrt_iovec_t;
|
typedef struct iovec ddsrt_iovec_t;
|
||||||
|
|
|
@ -12,8 +12,11 @@ typedef SOCKET ddsrt_socket_t;
|
||||||
#define DDSRT_INVALID_SOCKET (INVALID_SOCKET)
|
#define DDSRT_INVALID_SOCKET (INVALID_SOCKET)
|
||||||
#define PRIdSOCK PRIuPTR
|
#define PRIdSOCK PRIuPTR
|
||||||
|
|
||||||
#define DDSRT_HAVE_IPV6 1
|
#define DDSRT_HAVE_IPV6 1
|
||||||
#define DDSRT_HAVE_DNS DDSRT_WITH_DNS
|
#define DDSRT_HAVE_DNS DDSRT_WITH_DNS
|
||||||
|
#define DDSRT_HAVE_GETADDRINFO DDSRT_WITH_DNS
|
||||||
|
#define DDSRT_HAVE_INET_NTOP 1
|
||||||
|
#define DDSRT_HAVE_INET_PTON 1
|
||||||
|
|
||||||
#if defined(NTDDI_VERSION) && \
|
#if defined(NTDDI_VERSION) && \
|
||||||
defined(_WIN32_WINNT_WS03) && \
|
defined(_WIN32_WINNT_WS03) && \
|
||||||
|
|
|
@ -22,6 +22,8 @@
|
||||||
#include "dds/ddsrt/sync/freertos.h"
|
#include "dds/ddsrt/sync/freertos.h"
|
||||||
#elif _WIN32
|
#elif _WIN32
|
||||||
#include "dds/ddsrt/sync/windows.h"
|
#include "dds/ddsrt/sync/windows.h"
|
||||||
|
#elif __SunOS_5_6
|
||||||
|
#include "dds/ddsrt/sync/solaris2.6.h"
|
||||||
#else
|
#else
|
||||||
#include "dds/ddsrt/sync/posix.h"
|
#include "dds/ddsrt/sync/posix.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
44
src/ddsrt/include/dds/ddsrt/sync/solaris2.6.h
Normal file
44
src/ddsrt/include/dds/ddsrt/sync/solaris2.6.h
Normal file
|
@ -0,0 +1,44 @@
|
||||||
|
/*
|
||||||
|
* Copyright(c) 2006 to 2018 ADLINK Technology Limited and others
|
||||||
|
*
|
||||||
|
* This program and the accompanying materials are made available under the
|
||||||
|
* terms of the Eclipse Public License v. 2.0 which is available at
|
||||||
|
* http://www.eclipse.org/legal/epl-2.0, or the Eclipse Distribution License
|
||||||
|
* v. 1.0 which is available at
|
||||||
|
* http://www.eclipse.org/org/documents/edl-v10.php.
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
|
||||||
|
*/
|
||||||
|
#ifndef DDSRT_POSIX_SYNC_H
|
||||||
|
#define DDSRT_POSIX_SYNC_H
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
#include <pthread.h>
|
||||||
|
#if HAVE_LKST
|
||||||
|
#include "lkst.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined (__cplusplus)
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
pthread_cond_t cond;
|
||||||
|
} ddsrt_cond_t;
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
pthread_mutex_t mutex;
|
||||||
|
} ddsrt_mutex_t;
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
pthread_mutex_t rwlock;
|
||||||
|
} ddsrt_rwlock_t;
|
||||||
|
|
||||||
|
typedef pthread_once_t ddsrt_once_t;
|
||||||
|
#define DDSRT_ONCE_INIT PTHREAD_ONCE_INIT
|
||||||
|
|
||||||
|
#if defined (__cplusplus)
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* DDSRT_POSIX_SYNC_H */
|
|
@ -165,22 +165,30 @@ void ddsrt_atomic_lifo_pushmany (ddsrt_atomic_lifo_t *head, void *first, void *l
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if DDSRT_HAVE_ATOMIC64
|
/* On platforms that don't provide 64-bit atomic operations, emulate them by hashing
|
||||||
void ddsrt_atomics_init (void)
|
the variable's address to a small set of mutexes.
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
void ddsrt_atomics_fini (void)
|
This also defines the GCC builtins on SPARCv8 for 32-bit operations. It would be
|
||||||
{
|
more appropriate to simply define the ddsrt_atomic_... functions properly in that
|
||||||
}
|
case and avoid squatting in the __sync_... namespace, but SPARCv8 support really
|
||||||
|
is just for fun and it doesn't seem worth the bother right now */
|
||||||
|
|
||||||
|
#if DDSRT_HAVE_ATOMIC64
|
||||||
|
|
||||||
|
void ddsrt_atomics_init (void) { }
|
||||||
|
void ddsrt_atomics_fini (void) { }
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
/* Emulation by hashing the variable's address to a small set of mutexes. */
|
|
||||||
#include "dds/ddsrt/sync.h"
|
#include "dds/ddsrt/sync.h"
|
||||||
|
|
||||||
|
/* SPARCv8 depends on these mutexes already for one-shot initialisation of the ddsrt
|
||||||
|
code. Using PTHREAD_MUTEX_INITIALIZER guarantees they are properly initialized.
|
||||||
|
Once a platform shows up that defines that macro where we don't used pthread mutexes
|
||||||
|
something else will have to be done. */
|
||||||
#define N_MUTEXES_LG2 4
|
#define N_MUTEXES_LG2 4
|
||||||
#define N_MUTEXES (1 << N_MUTEXES_LG2)
|
#define N_MUTEXES (1 << N_MUTEXES_LG2)
|
||||||
|
#ifndef PTHREAD_MUTEX_INITIALIZER
|
||||||
static ddsrt_mutex_t mutexes[N_MUTEXES];
|
static ddsrt_mutex_t mutexes[N_MUTEXES];
|
||||||
|
|
||||||
void ddsrt_atomics_init (void)
|
void ddsrt_atomics_init (void)
|
||||||
|
@ -194,6 +202,20 @@ void ddsrt_atomics_fini (void)
|
||||||
for (int i = 0; i < N_MUTEXES; i++)
|
for (int i = 0; i < N_MUTEXES; i++)
|
||||||
ddsrt_mutex_destroy (&mutexes[i]);
|
ddsrt_mutex_destroy (&mutexes[i]);
|
||||||
}
|
}
|
||||||
|
#else
|
||||||
|
static ddsrt_mutex_t mutexes[N_MUTEXES] = {
|
||||||
|
{ PTHREAD_MUTEX_INITIALIZER }, { PTHREAD_MUTEX_INITIALIZER },
|
||||||
|
{ PTHREAD_MUTEX_INITIALIZER }, { PTHREAD_MUTEX_INITIALIZER },
|
||||||
|
{ PTHREAD_MUTEX_INITIALIZER }, { PTHREAD_MUTEX_INITIALIZER },
|
||||||
|
{ PTHREAD_MUTEX_INITIALIZER }, { PTHREAD_MUTEX_INITIALIZER },
|
||||||
|
{ PTHREAD_MUTEX_INITIALIZER }, { PTHREAD_MUTEX_INITIALIZER },
|
||||||
|
{ PTHREAD_MUTEX_INITIALIZER }, { PTHREAD_MUTEX_INITIALIZER },
|
||||||
|
{ PTHREAD_MUTEX_INITIALIZER }, { PTHREAD_MUTEX_INITIALIZER },
|
||||||
|
{ PTHREAD_MUTEX_INITIALIZER }, { PTHREAD_MUTEX_INITIALIZER }
|
||||||
|
};
|
||||||
|
void ddsrt_atomics_init (void) { }
|
||||||
|
void ddsrt_atomics_fini (void) { }
|
||||||
|
#endif
|
||||||
|
|
||||||
static uint32_t atomic64_lock_index (const volatile ddsrt_atomic_uint64_t *x)
|
static uint32_t atomic64_lock_index (const volatile ddsrt_atomic_uint64_t *x)
|
||||||
{
|
{
|
||||||
|
@ -219,7 +241,25 @@ int ddsrt_atomic_cas64 (volatile ddsrt_atomic_uint64_t *x, uint64_t exp, uint64_
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
uint64_t ddsrt_atomic_ld64(const volatile ddsrt_atomic_uint64_t *x)
|
#define DDSRT_FAKE_ATOMIC64(name, oper, ret) \
|
||||||
|
uint64_t ddsrt_atomic_##name##64_##ret (volatile ddsrt_atomic_uint64_t *x, uint64_t v) \
|
||||||
|
{ \
|
||||||
|
const uint64_t idx = atomic64_lock_index (x); \
|
||||||
|
ddsrt_mutex_lock (&mutexes[idx]); \
|
||||||
|
const uint64_t ov = x->v; \
|
||||||
|
const uint64_t nv = ov oper v; \
|
||||||
|
x->v = nv; \
|
||||||
|
ddsrt_mutex_unlock (&mutexes[idx]); \
|
||||||
|
return ret; \
|
||||||
|
}
|
||||||
|
#define DDSRT_FAKE_ATOMIC64_TRIPLET(name, oper) \
|
||||||
|
DDSRT_FAKE_ATOMIC64(name, oper, nv) \
|
||||||
|
DDSRT_FAKE_ATOMIC64(name, oper, ov) \
|
||||||
|
void ddsrt_atomic_##name##64 (volatile ddsrt_atomic_uint64_t *x, uint64_t v) { \
|
||||||
|
(void) ddsrt_atomic_##name##64_ov (x, v); \
|
||||||
|
}
|
||||||
|
|
||||||
|
uint64_t ddsrt_atomic_ld64 (const volatile ddsrt_atomic_uint64_t *x)
|
||||||
{
|
{
|
||||||
const uint32_t idx = atomic64_lock_index (x);
|
const uint32_t idx = atomic64_lock_index (x);
|
||||||
ddsrt_mutex_lock (&mutexes[idx]);
|
ddsrt_mutex_lock (&mutexes[idx]);
|
||||||
|
@ -228,7 +268,7 @@ uint64_t ddsrt_atomic_ld64(const volatile ddsrt_atomic_uint64_t *x)
|
||||||
return v;
|
return v;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ddsrt_atomic_st64(volatile ddsrt_atomic_uint64_t *x, uint64_t v)
|
void ddsrt_atomic_st64 (volatile ddsrt_atomic_uint64_t *x, uint64_t v)
|
||||||
{
|
{
|
||||||
const uint32_t idx = atomic64_lock_index (x);
|
const uint32_t idx = atomic64_lock_index (x);
|
||||||
ddsrt_mutex_lock (&mutexes[idx]);
|
ddsrt_mutex_lock (&mutexes[idx]);
|
||||||
|
@ -236,136 +276,70 @@ void ddsrt_atomic_st64(volatile ddsrt_atomic_uint64_t *x, uint64_t v)
|
||||||
ddsrt_mutex_unlock (&mutexes[idx]);
|
ddsrt_mutex_unlock (&mutexes[idx]);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ddsrt_atomic_inc64 (volatile ddsrt_atomic_uint64_t *x)
|
DDSRT_FAKE_ATOMIC64_TRIPLET(add, +)
|
||||||
{
|
DDSRT_FAKE_ATOMIC64_TRIPLET(sub, -)
|
||||||
const uint32_t idx = atomic64_lock_index (x);
|
DDSRT_FAKE_ATOMIC64_TRIPLET(or, |)
|
||||||
ddsrt_mutex_lock (&mutexes[idx]);
|
DDSRT_FAKE_ATOMIC64_TRIPLET(and, &)
|
||||||
++x->v;
|
|
||||||
ddsrt_mutex_unlock (&mutexes[idx]);
|
void ddsrt_atomic_inc64 (volatile ddsrt_atomic_uint64_t *x) {
|
||||||
|
ddsrt_atomic_add64 (x, 1);
|
||||||
|
}
|
||||||
|
uint64_t ddsrt_atomic_inc64_nv (volatile ddsrt_atomic_uint64_t *x) {
|
||||||
|
return ddsrt_atomic_add64_nv (x, 1);
|
||||||
|
}
|
||||||
|
void ddsrt_atomic_dec64 (volatile ddsrt_atomic_uint64_t *x) {
|
||||||
|
ddsrt_atomic_sub64 (x, 1);
|
||||||
|
}
|
||||||
|
uint64_t ddsrt_atomic_dec64_nv (volatile ddsrt_atomic_uint64_t *x) {
|
||||||
|
return ddsrt_atomic_sub64_nv (x, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
uint64_t ddsrt_atomic_inc64_nv (volatile ddsrt_atomic_uint64_t *x)
|
#undef DDSRT_FAKE_ATOMIC64_TRIPLET
|
||||||
|
#undef DDSRT_FAKE_ATOMIC64
|
||||||
|
|
||||||
|
/* SPARCv8 doesn't support any atomic operations beyond a simple atomic exchange. GCC happily
|
||||||
|
compiles the __sync_* functions into library calls, and implementing them as such will do
|
||||||
|
the trick. The rarity of SPARCv8 machines (EOL'd 2 decades ago) */
|
||||||
|
#ifdef __sparc_v8__
|
||||||
|
#define DDSRT_FAKE_SYNC(name, size, oper, ret) \
|
||||||
|
unsigned __sync_##name##_##size (volatile unsigned *x, unsigned v) \
|
||||||
|
{ \
|
||||||
|
const uint32_t idx = atomic64_lock_index ((const volatile ddsrt_atomic_uint64_t *) x); \
|
||||||
|
ddsrt_mutex_lock (&mutexes[idx]); \
|
||||||
|
const uint32_t ov = *x; \
|
||||||
|
const uint32_t nv = ov oper v; \
|
||||||
|
*x = nv; \
|
||||||
|
ddsrt_mutex_unlock (&mutexes[idx]); \
|
||||||
|
return ret; \
|
||||||
|
}
|
||||||
|
#define DDSRT_FAKE_SYNC_PAIR(name, size, oper) \
|
||||||
|
DDSRT_FAKE_SYNC(name##_and_fetch, size, oper, nv) \
|
||||||
|
DDSRT_FAKE_SYNC(fetch_and_##name, size, oper, ov)
|
||||||
|
|
||||||
|
DDSRT_FAKE_SYNC_PAIR (add, 4, +)
|
||||||
|
DDSRT_FAKE_SYNC_PAIR (sub, 4, -)
|
||||||
|
DDSRT_FAKE_SYNC_PAIR (or, 4, |)
|
||||||
|
DDSRT_FAKE_SYNC_PAIR (and, 4, &)
|
||||||
|
|
||||||
|
bool __sync_bool_compare_and_swap_4 (volatile unsigned *x, unsigned exp, unsigned des)
|
||||||
{
|
{
|
||||||
const uint32_t idx = atomic64_lock_index (x);
|
const uint32_t idx = atomic64_lock_index ((const volatile ddsrt_atomic_uint64_t *) x);
|
||||||
ddsrt_mutex_lock (&mutexes[idx]);
|
ddsrt_mutex_lock (&mutexes[idx]);
|
||||||
const uint64_t nv = ++x->v;
|
if (*x == exp)
|
||||||
ddsrt_mutex_unlock (&mutexes[idx]);
|
{
|
||||||
return nv;
|
*x = des;
|
||||||
|
ddsrt_mutex_unlock (&mutexes[idx]);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ddsrt_mutex_unlock (&mutexes[idx]);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void ddsrt_atomic_dec64 (volatile ddsrt_atomic_uint64_t *x)
|
#undef DDSRT_FAKE_SYNC_PAIR
|
||||||
{
|
#undef DDSRT_FAKE_SYNC
|
||||||
const uint32_t idx = atomic64_lock_index (x);
|
#endif /* SPARCv8 hack */
|
||||||
ddsrt_mutex_lock (&mutexes[idx]);
|
|
||||||
--x->v;
|
|
||||||
ddsrt_mutex_unlock (&mutexes[idx]);
|
|
||||||
}
|
|
||||||
|
|
||||||
uint64_t ddsrt_atomic_dec64_nv (volatile ddsrt_atomic_uint64_t *x)
|
|
||||||
{
|
|
||||||
const uint32_t idx = atomic64_lock_index (x);
|
|
||||||
ddsrt_mutex_lock (&mutexes[idx]);
|
|
||||||
const uint64_t nv = --x->v;
|
|
||||||
ddsrt_mutex_unlock (&mutexes[idx]);
|
|
||||||
return nv;
|
|
||||||
}
|
|
||||||
|
|
||||||
void ddsrt_atomic_add64 (volatile ddsrt_atomic_uint64_t *x, uint64_t v)
|
|
||||||
{
|
|
||||||
const uint32_t idx = atomic64_lock_index (x);
|
|
||||||
ddsrt_mutex_lock (&mutexes[idx]);
|
|
||||||
x->v += v;
|
|
||||||
ddsrt_mutex_unlock (&mutexes[idx]);
|
|
||||||
}
|
|
||||||
|
|
||||||
uint64_t ddsrt_atomic_add64_nv (volatile ddsrt_atomic_uint64_t *x, uint64_t v)
|
|
||||||
{
|
|
||||||
const uint32_t idx = atomic64_lock_index (x);
|
|
||||||
ddsrt_mutex_lock (&mutexes[idx]);
|
|
||||||
const uint64_t ov = x->v;
|
|
||||||
const uint64_t nv = ov + v;
|
|
||||||
x->v = nv;
|
|
||||||
ddsrt_mutex_unlock (&mutexes[idx]);
|
|
||||||
return nv;
|
|
||||||
}
|
|
||||||
|
|
||||||
void ddsrt_atomic_sub64 (volatile ddsrt_atomic_uint64_t *x, uint64_t v)
|
|
||||||
{
|
|
||||||
const uint32_t idx = atomic64_lock_index (x);
|
|
||||||
ddsrt_mutex_lock (&mutexes[idx]);
|
|
||||||
x->v -= v;
|
|
||||||
ddsrt_mutex_unlock (&mutexes[idx]);
|
|
||||||
}
|
|
||||||
|
|
||||||
uint64_t ddsrt_atomic_sub64_nv (volatile ddsrt_atomic_uint64_t *x, uint64_t v)
|
|
||||||
{
|
|
||||||
const uint32_t idx = atomic64_lock_index (x);
|
|
||||||
ddsrt_mutex_lock (&mutexes[idx]);
|
|
||||||
const uint64_t ov = x->v;
|
|
||||||
const uint64_t nv = ov - v;
|
|
||||||
x->v = nv;
|
|
||||||
ddsrt_mutex_unlock (&mutexes[idx]);
|
|
||||||
return nv;
|
|
||||||
}
|
|
||||||
|
|
||||||
void ddsrt_atomic_and64 (volatile ddsrt_atomic_uint64_t *x, uint64_t v)
|
|
||||||
{
|
|
||||||
const uint32_t idx = atomic64_lock_index (x);
|
|
||||||
ddsrt_mutex_lock (&mutexes[idx]);
|
|
||||||
x->v &= v;
|
|
||||||
ddsrt_mutex_unlock (&mutexes[idx]);
|
|
||||||
}
|
|
||||||
|
|
||||||
uint64_t ddsrt_atomic_and64_ov (volatile ddsrt_atomic_uint64_t *x, uint64_t v)
|
|
||||||
{
|
|
||||||
const uint32_t idx = atomic64_lock_index (x);
|
|
||||||
ddsrt_mutex_lock (&mutexes[idx]);
|
|
||||||
const uint64_t ov = x->v;
|
|
||||||
const uint64_t nv = ov & v;
|
|
||||||
x->v = nv;
|
|
||||||
ddsrt_mutex_unlock (&mutexes[idx]);
|
|
||||||
return ov;
|
|
||||||
}
|
|
||||||
|
|
||||||
uint64_t ddsrt_atomic_and64_nv (volatile ddsrt_atomic_uint64_t *x, uint64_t v)
|
|
||||||
{
|
|
||||||
const uint32_t idx = atomic64_lock_index (x);
|
|
||||||
ddsrt_mutex_lock (&mutexes[idx]);
|
|
||||||
const uint64_t ov = x->v;
|
|
||||||
const uint64_t nv = ov & v;
|
|
||||||
x->v = nv;
|
|
||||||
ddsrt_mutex_unlock (&mutexes[idx]);
|
|
||||||
return nv;
|
|
||||||
}
|
|
||||||
|
|
||||||
void ddsrt_atomic_or64 (volatile ddsrt_atomic_uint64_t *x, uint64_t v)
|
|
||||||
{
|
|
||||||
const uint32_t idx = atomic64_lock_index (x);
|
|
||||||
ddsrt_mutex_lock (&mutexes[idx]);
|
|
||||||
x->v |= v;
|
|
||||||
ddsrt_mutex_unlock (&mutexes[idx]);
|
|
||||||
}
|
|
||||||
|
|
||||||
uint64_t ddsrt_atomic_or64_ov (volatile ddsrt_atomic_uint64_t *x, uint64_t v)
|
|
||||||
{
|
|
||||||
const uint32_t idx = atomic64_lock_index (x);
|
|
||||||
ddsrt_mutex_lock (&mutexes[idx]);
|
|
||||||
const uint64_t ov = x->v;
|
|
||||||
const uint64_t nv = ov | v;
|
|
||||||
x->v = nv;
|
|
||||||
ddsrt_mutex_unlock (&mutexes[idx]);
|
|
||||||
return ov;
|
|
||||||
}
|
|
||||||
|
|
||||||
uint64_t ddsrt_atomic_or64_nv (volatile ddsrt_atomic_uint64_t *x, uint64_t v)
|
|
||||||
{
|
|
||||||
const uint32_t idx = atomic64_lock_index (x);
|
|
||||||
ddsrt_mutex_lock (&mutexes[idx]);
|
|
||||||
const uint64_t ov = x->v;
|
|
||||||
const uint64_t nv = ov | v;
|
|
||||||
x->v = nv;
|
|
||||||
ddsrt_mutex_unlock (&mutexes[idx]);
|
|
||||||
return nv;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif /* DDSRT_HAVE_ATOMIC64 */
|
#endif /* DDSRT_HAVE_ATOMIC64 */
|
||||||
|
|
100
src/ddsrt/src/environ/solaris2.6/environ.c
Normal file
100
src/ddsrt/src/environ/solaris2.6/environ.c
Normal file
|
@ -0,0 +1,100 @@
|
||||||
|
/*
|
||||||
|
* Copyright(c) 2006 to 2018 ADLINK Technology Limited and others
|
||||||
|
*
|
||||||
|
* This program and the accompanying materials are made available under the
|
||||||
|
* terms of the Eclipse Public License v. 2.0 which is available at
|
||||||
|
* http://www.eclipse.org/legal/epl-2.0, or the Eclipse Distribution License
|
||||||
|
* v. 1.0 which is available at
|
||||||
|
* http://www.eclipse.org/org/documents/edl-v10.php.
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
|
||||||
|
*/
|
||||||
|
#include <assert.h>
|
||||||
|
#include <errno.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
#include "dds/ddsrt/environ.h"
|
||||||
|
#include "dds/ddsrt/retcode.h"
|
||||||
|
|
||||||
|
extern char **environ;
|
||||||
|
|
||||||
|
static int
|
||||||
|
isenvvar(const char *name)
|
||||||
|
{
|
||||||
|
return (*name == '\0' || strchr(name, '=') != NULL) == 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
dds_return_t
|
||||||
|
ddsrt_getenv(const char *name, char **value)
|
||||||
|
{
|
||||||
|
char *env;
|
||||||
|
|
||||||
|
assert(name != NULL);
|
||||||
|
assert(value != NULL);
|
||||||
|
|
||||||
|
if (!isenvvar(name))
|
||||||
|
return DDS_RETCODE_BAD_PARAMETER;
|
||||||
|
if ((env = getenv(name)) != NULL) {
|
||||||
|
*value = env;
|
||||||
|
return DDS_RETCODE_OK;
|
||||||
|
}
|
||||||
|
return DDS_RETCODE_NOT_FOUND;
|
||||||
|
}
|
||||||
|
|
||||||
|
dds_return_t
|
||||||
|
ddsrt_setenv(const char *name, const char *value)
|
||||||
|
{
|
||||||
|
/* Not MT-Safe -- but it is only used in a tests to set
|
||||||
|
CYCLONEDDS_URI, so for Solaris 2.6 support it is not worth the
|
||||||
|
bother to do a better job. Same for a bit of leakage. */
|
||||||
|
assert(name != NULL);
|
||||||
|
assert(value != NULL);
|
||||||
|
|
||||||
|
if (strlen(value) == 0)
|
||||||
|
return ddsrt_unsetenv(name);
|
||||||
|
if (!isenvvar(name))
|
||||||
|
return DDS_RETCODE_BAD_PARAMETER;
|
||||||
|
|
||||||
|
const size_t namelen = strlen (name);
|
||||||
|
const size_t entrysize = namelen + 1 + strlen (value) + 1;
|
||||||
|
char *entry = malloc (entrysize);
|
||||||
|
snprintf (entry, entrysize, "%s=%s", name, value);
|
||||||
|
size_t n = 0;
|
||||||
|
while (environ[n] != NULL)
|
||||||
|
{
|
||||||
|
if (strncmp (environ[n], name, namelen) == 0 && environ[n][namelen] == '=')
|
||||||
|
{
|
||||||
|
environ[n] = entry;
|
||||||
|
return DDS_RETCODE_OK;
|
||||||
|
}
|
||||||
|
n++;
|
||||||
|
}
|
||||||
|
environ = realloc (environ, (n + 2) * sizeof (*environ));
|
||||||
|
environ[n] = entry;
|
||||||
|
environ[n+1] = NULL;
|
||||||
|
return DDS_RETCODE_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
dds_return_t
|
||||||
|
ddsrt_unsetenv(const char *name)
|
||||||
|
{
|
||||||
|
/* Same considerations as setenv. */
|
||||||
|
assert(name != NULL);
|
||||||
|
|
||||||
|
if (!isenvvar(name))
|
||||||
|
return DDS_RETCODE_BAD_PARAMETER;
|
||||||
|
|
||||||
|
const size_t namelen = strlen (name);
|
||||||
|
size_t n = 0, idx = SIZE_MAX;
|
||||||
|
while (environ[n] != NULL)
|
||||||
|
{
|
||||||
|
if (idx > n && strncmp (environ[n], name, namelen) == 0 && environ[n][namelen] == '=')
|
||||||
|
idx = n;
|
||||||
|
n++;
|
||||||
|
}
|
||||||
|
if (idx < n)
|
||||||
|
memmove (&environ[idx], &environ[idx + 1], (n - idx) * sizeof (*environ));
|
||||||
|
return DDS_RETCODE_OK;
|
||||||
|
}
|
84
src/ddsrt/src/ifaddrs/solaris2.6/ifaddrs.c
Normal file
84
src/ddsrt/src/ifaddrs/solaris2.6/ifaddrs.c
Normal file
|
@ -0,0 +1,84 @@
|
||||||
|
/*
|
||||||
|
* Copyright(c) 2006 to 2018 ADLINK Technology Limited and others
|
||||||
|
*
|
||||||
|
* This program and the accompanying materials are made available under the
|
||||||
|
* terms of the Eclipse Public License v. 2.0 which is available at
|
||||||
|
* http://www.eclipse.org/legal/epl-2.0, or the Eclipse Distribution License
|
||||||
|
* v. 1.0 which is available at
|
||||||
|
* http://www.eclipse.org/org/documents/edl-v10.php.
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
|
||||||
|
*/
|
||||||
|
#include <assert.h>
|
||||||
|
#include <errno.h>
|
||||||
|
#include "dds/ddsrt/ifaddrs.h"
|
||||||
|
#include <string.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
#include "dds/ddsrt/heap.h"
|
||||||
|
#include "dds/ddsrt/retcode.h"
|
||||||
|
#include "dds/ddsrt/string.h"
|
||||||
|
|
||||||
|
extern const int *const os_supp_afs;
|
||||||
|
|
||||||
|
#include <sys/socket.h>
|
||||||
|
#include <sys/ioctl.h>
|
||||||
|
#include <sys/sockio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
|
||||||
|
dds_return_t
|
||||||
|
ddsrt_getifaddrs(
|
||||||
|
ddsrt_ifaddrs_t **ret_ifap,
|
||||||
|
const int *afs)
|
||||||
|
{
|
||||||
|
int sock;
|
||||||
|
char *buf;
|
||||||
|
int32_t n;
|
||||||
|
struct ifconf ifc;
|
||||||
|
struct ifreq *ifr;
|
||||||
|
|
||||||
|
/* get interfaces */
|
||||||
|
buf = ddsrt_malloc (8192);
|
||||||
|
memset (&ifc, 0, sizeof (ifc));
|
||||||
|
ifc.ifc_len = 8192;
|
||||||
|
ifc.ifc_buf = buf;
|
||||||
|
sock = socket (AF_INET, SOCK_DGRAM, IPPROTO_UDP);
|
||||||
|
if (ioctl (sock, SIOCGIFCONF, (char *) &ifc) < 0)
|
||||||
|
{
|
||||||
|
perror ("ioctl (SIOCGIFCONF)");
|
||||||
|
exit (77);
|
||||||
|
}
|
||||||
|
|
||||||
|
ddsrt_ifaddrs_t **ifap, *ifa_root;
|
||||||
|
ifap = &ifa_root; ifa_root = NULL;
|
||||||
|
ifr = ifc.ifc_req;
|
||||||
|
for (n = ifc.ifc_len / sizeof (struct ifreq); --n >= 0; ifr++)
|
||||||
|
{
|
||||||
|
ddsrt_ifaddrs_t *ifa;
|
||||||
|
if (ifr->ifr_name[0] == '\0')
|
||||||
|
continue; /* Forget about anonymous network devices */
|
||||||
|
|
||||||
|
if (ifr->ifr_addr.sa_family != AF_INET) {
|
||||||
|
printf ("%s: not INET\n", ifr->ifr_name);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
ifa = ddsrt_malloc (sizeof (*ifa));
|
||||||
|
memset (ifa, 0, sizeof (*ifa));
|
||||||
|
ifa->index = (int) (ifr - ifc.ifc_req);
|
||||||
|
ifa->flags = IFF_UP | ((strcmp(ifr->ifr_name, "lo0")==0) ? IFF_LOOPBACK : IFF_MULTICAST);
|
||||||
|
ifa->name = strdup (ifr->ifr_name);
|
||||||
|
ifa->addr = ddsrt_memdup (&ifr->ifr_addr, sizeof (struct sockaddr_in));
|
||||||
|
ifa->netmask = ddsrt_memdup (&ifr->ifr_addr, sizeof (struct sockaddr_in));
|
||||||
|
((struct sockaddr_in *) ifa->netmask)->sin_addr.s_addr = htonl (0xffffff00);
|
||||||
|
ifa->broadaddr = NULL;
|
||||||
|
ifa->next = NULL;
|
||||||
|
*ifap = ifa;
|
||||||
|
ifap = &ifa->next;
|
||||||
|
}
|
||||||
|
|
||||||
|
ddsrt_free (buf);
|
||||||
|
close (sock);
|
||||||
|
*ret_ifap = ifa_root;
|
||||||
|
return DDS_RETCODE_OK;
|
||||||
|
}
|
|
@ -186,13 +186,19 @@ ddsrt_sockaddrfromstr(int af, const char *str, void *sa)
|
||||||
switch (af) {
|
switch (af) {
|
||||||
case AF_INET: {
|
case AF_INET: {
|
||||||
struct in_addr buf;
|
struct in_addr buf;
|
||||||
|
#if DDSRT_HAVE_INET_PTON
|
||||||
if (inet_pton(af, str, &buf) != 1) {
|
if (inet_pton(af, str, &buf) != 1) {
|
||||||
return DDS_RETCODE_BAD_PARAMETER;
|
return DDS_RETCODE_BAD_PARAMETER;
|
||||||
} else {
|
|
||||||
memset(sa, 0, sizeof(struct sockaddr_in));
|
|
||||||
((struct sockaddr_in *)sa)->sin_family = AF_INET;
|
|
||||||
memcpy(&((struct sockaddr_in *)sa)->sin_addr, &buf, sizeof(buf));
|
|
||||||
}
|
}
|
||||||
|
#else
|
||||||
|
buf.s_addr = inet_addr (str);
|
||||||
|
if (buf.s_addr == (in_addr_t)-1) {
|
||||||
|
return DDS_RETCODE_BAD_PARAMETER;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
memset(sa, 0, sizeof(struct sockaddr_in));
|
||||||
|
((struct sockaddr_in *)sa)->sin_family = AF_INET;
|
||||||
|
memcpy(&((struct sockaddr_in *)sa)->sin_addr, &buf, sizeof(buf));
|
||||||
} break;
|
} break;
|
||||||
#if DDSRT_HAVE_IPV6
|
#if DDSRT_HAVE_IPV6
|
||||||
case AF_INET6: {
|
case AF_INET6: {
|
||||||
|
@ -225,8 +231,16 @@ DDSRT_WARNING_GNUC_OFF(sign-conversion)
|
||||||
#endif
|
#endif
|
||||||
switch (((struct sockaddr *)sa)->sa_family) {
|
switch (((struct sockaddr *)sa)->sa_family) {
|
||||||
case AF_INET:
|
case AF_INET:
|
||||||
|
#if DDSRT_HAVE_INET_NTOP
|
||||||
ptr = inet_ntop(
|
ptr = inet_ntop(
|
||||||
AF_INET, &((struct sockaddr_in *)sa)->sin_addr, buf, (socklen_t)size);
|
AF_INET, &((struct sockaddr_in *)sa)->sin_addr, buf, (socklen_t)size);
|
||||||
|
#else
|
||||||
|
{
|
||||||
|
in_addr_t x = ntohl(((struct sockaddr_in *)sa)->sin_addr.s_addr);
|
||||||
|
snprintf(buf,size,"%u.%u.%u.%u",(x>>24),(x>>16)&0xff,(x>>8)&0xff,x&0xff);
|
||||||
|
ptr = buf;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
break;
|
break;
|
||||||
#if DDSRT_HAVE_IPV6
|
#if DDSRT_HAVE_IPV6
|
||||||
case AF_INET6:
|
case AF_INET6:
|
||||||
|
@ -249,6 +263,7 @@ DDSRT_WARNING_GNUC_ON(sign-conversion)
|
||||||
}
|
}
|
||||||
|
|
||||||
#if DDSRT_HAVE_DNS
|
#if DDSRT_HAVE_DNS
|
||||||
|
#if DDSRT_HAVE_GETADDRINFO
|
||||||
dds_return_t
|
dds_return_t
|
||||||
ddsrt_gethostbyname(const char *name, int af, ddsrt_hostent_t **hentp)
|
ddsrt_gethostbyname(const char *name, int af, ddsrt_hostent_t **hentp)
|
||||||
{
|
{
|
||||||
|
@ -363,4 +378,23 @@ ddsrt_gethostbyname(const char *name, int af, ddsrt_hostent_t **hentp)
|
||||||
*hentp = hent;
|
*hentp = hent;
|
||||||
return DDS_RETCODE_OK;
|
return DDS_RETCODE_OK;
|
||||||
}
|
}
|
||||||
|
#else
|
||||||
|
dds_return_t
|
||||||
|
ddsrt_gethostbyname(const char *name, int af, ddsrt_hostent_t **hentp)
|
||||||
|
{
|
||||||
|
struct hostent hest, *he;
|
||||||
|
char buf[256];
|
||||||
|
int err;
|
||||||
|
he = gethostbyname_r (name, &hest, buf, sizeof (buf), &err);
|
||||||
|
if (he == NULL) {
|
||||||
|
return DDS_RETCODE_HOST_NOT_FOUND;
|
||||||
|
} else {
|
||||||
|
size_t size = sizeof(**hentp) + (1 * sizeof((*hentp)->addrs[0]));
|
||||||
|
*hentp = ddsrt_calloc_s(1, size);
|
||||||
|
(*hentp)->naddrs = 1;
|
||||||
|
memcpy(&(*hentp)->addrs[0], he->h_addr, he->h_length);
|
||||||
|
return DDS_RETCODE_OK;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif /* DDSRT_HAVE_GETADDRINFO */
|
||||||
#endif /* DDSRT_HAVE_DNS */
|
#endif /* DDSRT_HAVE_DNS */
|
||||||
|
|
|
@ -27,7 +27,6 @@ typedef long ddsrt_tv_sec_t;
|
||||||
typedef long ddsrt_tv_usec_t;
|
typedef long ddsrt_tv_usec_t;
|
||||||
#else
|
#else
|
||||||
typedef time_t ddsrt_tv_sec_t;
|
typedef time_t ddsrt_tv_sec_t;
|
||||||
typedef suseconds_t ddsrt_tv_usec_t;
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define DDSRT_TIME_T_MAX \
|
#define DDSRT_TIME_T_MAX \
|
||||||
|
@ -62,7 +61,7 @@ ddsrt_duration_to_timeval_ceil(dds_duration_t reltime, struct timeval *tv)
|
||||||
if (reltime < (max_nsecs - DDS_NSECS_IN_USEC - 1)) {
|
if (reltime < (max_nsecs - DDS_NSECS_IN_USEC - 1)) {
|
||||||
reltime += (DDS_NSECS_IN_USEC - 1);
|
reltime += (DDS_NSECS_IN_USEC - 1);
|
||||||
tv->tv_sec = (ddsrt_tv_sec_t)(reltime / DDS_NSECS_IN_SEC);
|
tv->tv_sec = (ddsrt_tv_sec_t)(reltime / DDS_NSECS_IN_SEC);
|
||||||
tv->tv_usec = (ddsrt_tv_usec_t)((reltime % DDS_NSECS_IN_SEC) / DDS_NSECS_IN_USEC);
|
tv->tv_usec = (int)((reltime % DDS_NSECS_IN_SEC) / DDS_NSECS_IN_USEC);
|
||||||
} else {
|
} else {
|
||||||
tv->tv_sec = DDSRT_TIME_T_MAX;
|
tv->tv_sec = DDSRT_TIME_T_MAX;
|
||||||
tv->tv_usec = 999999;
|
tv->tv_usec = 999999;
|
||||||
|
|
|
@ -45,6 +45,10 @@ ddsrt_gethostname(
|
||||||
return DDS_RETCODE_OK;
|
return DDS_RETCODE_OK;
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
|
#ifndef HOST_NAME_MAX
|
||||||
|
#define HOST_NAME_MAX 256
|
||||||
|
#endif
|
||||||
|
|
||||||
dds_return_t
|
dds_return_t
|
||||||
ddsrt_gethostname(
|
ddsrt_gethostname(
|
||||||
char *name,
|
char *name,
|
||||||
|
|
34
src/ddsrt/src/string/solaris2.6/strerror.c
Normal file
34
src/ddsrt/src/string/solaris2.6/strerror.c
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
/*
|
||||||
|
* Copyright(c) 2006 to 2018 ADLINK Technology Limited and others
|
||||||
|
*
|
||||||
|
* This program and the accompanying materials are made available under the
|
||||||
|
* terms of the Eclipse Public License v. 2.0 which is available at
|
||||||
|
* http://www.eclipse.org/legal/epl-2.0, or the Eclipse Distribution License
|
||||||
|
* v. 1.0 which is available at
|
||||||
|
* http://www.eclipse.org/org/documents/edl-v10.php.
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
|
||||||
|
*/
|
||||||
|
/* Make sure we get the XSI compliant version of strerror_r */
|
||||||
|
#undef _POSIX_C_SOURCE
|
||||||
|
#undef _XOPEN_SOURCE
|
||||||
|
#undef _GNU_SOURCE
|
||||||
|
#define _POSIX_C_SOURCE 200112L
|
||||||
|
|
||||||
|
#include <assert.h>
|
||||||
|
#include <errno.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
#include "dds/ddsrt/string.h"
|
||||||
|
|
||||||
|
dds_return_t
|
||||||
|
ddsrt_strerror_r(int errnum, char *buf, size_t buflen)
|
||||||
|
{
|
||||||
|
assert(buf != NULL);
|
||||||
|
assert(buflen > 0);
|
||||||
|
if (snprintf (buf, buflen, "errno=%d", errnum) >= buflen)
|
||||||
|
return DDS_RETCODE_NOT_ENOUGH_SPACE;
|
||||||
|
else
|
||||||
|
return DDS_RETCODE_OK;
|
||||||
|
}
|
236
src/ddsrt/src/sync/solaris2.6/sync.c
Normal file
236
src/ddsrt/src/sync/solaris2.6/sync.c
Normal file
|
@ -0,0 +1,236 @@
|
||||||
|
/*
|
||||||
|
* Copyright(c) 2006 to 2018 ADLINK Technology Limited and others
|
||||||
|
*
|
||||||
|
* This program and the accompanying materials are made available under the
|
||||||
|
* terms of the Eclipse Public License v. 2.0 which is available at
|
||||||
|
* http://www.eclipse.org/legal/epl-2.0, or the Eclipse Distribution License
|
||||||
|
* v. 1.0 which is available at
|
||||||
|
* http://www.eclipse.org/org/documents/edl-v10.php.
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
|
||||||
|
*/
|
||||||
|
#include <assert.h>
|
||||||
|
#include <stddef.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
#include <errno.h>
|
||||||
|
#include <time.h>
|
||||||
|
#include <sys/time.h>
|
||||||
|
|
||||||
|
#include "dds/ddsrt/sync.h"
|
||||||
|
#include "dds/ddsrt/timeconv.h"
|
||||||
|
|
||||||
|
void ddsrt_mutex_init (ddsrt_mutex_t *mutex)
|
||||||
|
{
|
||||||
|
int shared;
|
||||||
|
assert (mutex != NULL);
|
||||||
|
|
||||||
|
pthread_mutex_init (&mutex->mutex, NULL);
|
||||||
|
(void)shared;
|
||||||
|
}
|
||||||
|
|
||||||
|
void ddsrt_mutex_destroy (ddsrt_mutex_t *mutex)
|
||||||
|
{
|
||||||
|
assert (mutex != NULL);
|
||||||
|
|
||||||
|
if (pthread_mutex_destroy (&mutex->mutex) != 0)
|
||||||
|
abort();
|
||||||
|
}
|
||||||
|
|
||||||
|
void ddsrt_mutex_lock (ddsrt_mutex_t *mutex)
|
||||||
|
{
|
||||||
|
assert (mutex != NULL);
|
||||||
|
|
||||||
|
if (pthread_mutex_lock (&mutex->mutex) != 0)
|
||||||
|
abort();
|
||||||
|
}
|
||||||
|
|
||||||
|
bool
|
||||||
|
ddsrt_mutex_trylock (ddsrt_mutex_t *mutex)
|
||||||
|
{
|
||||||
|
int err;
|
||||||
|
assert (mutex != NULL);
|
||||||
|
|
||||||
|
err = pthread_mutex_trylock (&mutex->mutex);
|
||||||
|
if (err != 0 && err != EBUSY)
|
||||||
|
abort();
|
||||||
|
return (err == 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
ddsrt_mutex_unlock (ddsrt_mutex_t *mutex)
|
||||||
|
{
|
||||||
|
assert (mutex != NULL);
|
||||||
|
|
||||||
|
if (pthread_mutex_unlock (&mutex->mutex) != 0)
|
||||||
|
abort();
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
ddsrt_cond_init (ddsrt_cond_t *cond)
|
||||||
|
{
|
||||||
|
assert (cond != NULL);
|
||||||
|
|
||||||
|
pthread_cond_init (&cond->cond, NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
ddsrt_cond_destroy (ddsrt_cond_t *cond)
|
||||||
|
{
|
||||||
|
assert (cond != NULL);
|
||||||
|
|
||||||
|
if (pthread_cond_destroy (&cond->cond) != 0)
|
||||||
|
abort();
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
ddsrt_cond_wait (ddsrt_cond_t *cond, ddsrt_mutex_t *mutex)
|
||||||
|
{
|
||||||
|
assert (cond != NULL);
|
||||||
|
assert (mutex != NULL);
|
||||||
|
|
||||||
|
if (pthread_cond_wait (&cond->cond, &mutex->mutex) != 0)
|
||||||
|
abort();
|
||||||
|
}
|
||||||
|
|
||||||
|
bool
|
||||||
|
ddsrt_cond_waituntil(
|
||||||
|
ddsrt_cond_t *cond,
|
||||||
|
ddsrt_mutex_t *mutex,
|
||||||
|
dds_time_t abstime)
|
||||||
|
{
|
||||||
|
struct timespec ts = { .tv_sec = 0, .tv_nsec = 0 };
|
||||||
|
|
||||||
|
assert(cond != NULL);
|
||||||
|
assert(mutex != NULL);
|
||||||
|
|
||||||
|
if (abstime == DDS_NEVER) {
|
||||||
|
ddsrt_cond_wait(cond, mutex);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (abstime > 0) {
|
||||||
|
ts.tv_sec = abstime / DDS_NSECS_IN_SEC;
|
||||||
|
ts.tv_nsec = abstime % DDS_NSECS_IN_SEC;
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (pthread_cond_timedwait(&cond->cond, &mutex->mutex, &ts)) {
|
||||||
|
case 0:
|
||||||
|
return true;
|
||||||
|
case ETIMEDOUT:
|
||||||
|
return false;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
abort();
|
||||||
|
}
|
||||||
|
|
||||||
|
bool
|
||||||
|
ddsrt_cond_waitfor(
|
||||||
|
ddsrt_cond_t *cond,
|
||||||
|
ddsrt_mutex_t *mutex,
|
||||||
|
dds_duration_t reltime)
|
||||||
|
{
|
||||||
|
assert(cond != NULL);
|
||||||
|
assert(mutex != NULL);
|
||||||
|
|
||||||
|
return ddsrt_cond_waituntil(
|
||||||
|
cond, mutex, ddsrt_time_add_duration(dds_time(), reltime));
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
ddsrt_cond_signal (ddsrt_cond_t *cond)
|
||||||
|
{
|
||||||
|
assert (cond != NULL);
|
||||||
|
|
||||||
|
if (pthread_cond_signal (&cond->cond) != 0)
|
||||||
|
abort();
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
ddsrt_cond_broadcast (ddsrt_cond_t *cond)
|
||||||
|
{
|
||||||
|
assert (cond != NULL);
|
||||||
|
|
||||||
|
if (pthread_cond_broadcast (&cond->cond) != 0)
|
||||||
|
abort();
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
ddsrt_rwlock_init (ddsrt_rwlock_t *rwlock)
|
||||||
|
{
|
||||||
|
int err = 0;
|
||||||
|
|
||||||
|
assert(rwlock != NULL);
|
||||||
|
|
||||||
|
/* process-shared attribute is set to PTHREAD_PROCESS_PRIVATE by default */
|
||||||
|
if ((err = pthread_mutex_init(&rwlock->rwlock, NULL)) != 0)
|
||||||
|
abort();
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
ddsrt_rwlock_destroy (ddsrt_rwlock_t *rwlock)
|
||||||
|
{
|
||||||
|
int err;
|
||||||
|
|
||||||
|
assert(rwlock != NULL);
|
||||||
|
if ((err = pthread_mutex_destroy (&rwlock->rwlock)) != 0)
|
||||||
|
abort();
|
||||||
|
}
|
||||||
|
|
||||||
|
void ddsrt_rwlock_read (ddsrt_rwlock_t *rwlock)
|
||||||
|
{
|
||||||
|
int err;
|
||||||
|
|
||||||
|
assert(rwlock != NULL);
|
||||||
|
err = pthread_mutex_lock(&rwlock->rwlock);
|
||||||
|
assert(err == 0);
|
||||||
|
(void)err;
|
||||||
|
}
|
||||||
|
|
||||||
|
void ddsrt_rwlock_write (ddsrt_rwlock_t *rwlock)
|
||||||
|
{
|
||||||
|
int err;
|
||||||
|
|
||||||
|
assert(rwlock != NULL);
|
||||||
|
err = pthread_mutex_lock (&rwlock->rwlock);
|
||||||
|
assert(err == 0);
|
||||||
|
(void)err;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ddsrt_rwlock_tryread (ddsrt_rwlock_t *rwlock)
|
||||||
|
{
|
||||||
|
int err;
|
||||||
|
|
||||||
|
assert(rwlock != NULL);
|
||||||
|
err = pthread_mutex_trylock(&rwlock->rwlock);
|
||||||
|
assert(err == 0 || err == EBUSY);
|
||||||
|
return err == 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ddsrt_rwlock_trywrite (ddsrt_rwlock_t *rwlock)
|
||||||
|
{
|
||||||
|
int err;
|
||||||
|
|
||||||
|
assert(rwlock != NULL);
|
||||||
|
err = pthread_mutex_trylock(&rwlock->rwlock);
|
||||||
|
assert(err == 0 || err == EBUSY);
|
||||||
|
|
||||||
|
return err == 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
void ddsrt_rwlock_unlock (ddsrt_rwlock_t *rwlock)
|
||||||
|
{
|
||||||
|
int err;
|
||||||
|
|
||||||
|
assert(rwlock != NULL);
|
||||||
|
err = pthread_mutex_unlock(&rwlock->rwlock);
|
||||||
|
assert(err == 0);
|
||||||
|
(void)err;
|
||||||
|
}
|
||||||
|
|
||||||
|
void ddsrt_once (ddsrt_once_t *control, ddsrt_once_fn init_fn)
|
||||||
|
{
|
||||||
|
/* There are no defined errors that can be returned by pthread_once */
|
||||||
|
(void)pthread_once(control, init_fn);
|
||||||
|
}
|
|
@ -80,7 +80,11 @@ ddsrt_thread_getname(char *str, size_t size)
|
||||||
(void)pthread_get_name_np(pthread_self(), buf, sizeof(buf));
|
(void)pthread_get_name_np(pthread_self(), buf, sizeof(buf));
|
||||||
cnt = ddsrt_strlcpy(str, buf, size);
|
cnt = ddsrt_strlcpy(str, buf, size);
|
||||||
#elif defined(__sun)
|
#elif defined(__sun)
|
||||||
|
#if !(__SunOS_5_6 || __SunOS_5_7 || __SunOS_5_8 || __SunOS_5_9 || __SunOS_5_10)
|
||||||
(void)pthread_getname_np(pthread_self(), buf, sizeof(buf));
|
(void)pthread_getname_np(pthread_self(), buf, sizeof(buf));
|
||||||
|
#else
|
||||||
|
buf[0] = 0;
|
||||||
|
#endif
|
||||||
cnt = ddsrt_strlcpy(str, buf, size);
|
cnt = ddsrt_strlcpy(str, buf, size);
|
||||||
#elif defined(__VXWORKS__)
|
#elif defined(__VXWORKS__)
|
||||||
{
|
{
|
||||||
|
@ -125,7 +129,9 @@ ddsrt_thread_setname(const char *__restrict name)
|
||||||
#elif defined(__sun)
|
#elif defined(__sun)
|
||||||
/* Thread names are limited to 31 bytes on Solaris. Excess bytes are
|
/* Thread names are limited to 31 bytes on Solaris. Excess bytes are
|
||||||
silently truncated. */
|
silently truncated. */
|
||||||
|
#if !(__SunOS_5_6 || __SunOS_5_7 || __SunOS_5_8 || __SunOS_5_9 || __SunOS_5_10)
|
||||||
(void)pthread_setname_np(pthread_self(), name);
|
(void)pthread_setname_np(pthread_self(), name);
|
||||||
|
#endif
|
||||||
#else
|
#else
|
||||||
/* VxWorks does not support the task name to be set after a task is created.
|
/* VxWorks does not support the task name to be set after a task is created.
|
||||||
Setting the name of a task can be done through pthread_attr_setname. */
|
Setting the name of a task can be done through pthread_attr_setname. */
|
||||||
|
|
|
@ -47,7 +47,12 @@ size_t
|
||||||
ddsrt_ctime(dds_time_t n, char *str, size_t size)
|
ddsrt_ctime(dds_time_t n, char *str, size_t size)
|
||||||
{
|
{
|
||||||
struct tm tm;
|
struct tm tm;
|
||||||
|
#if __SunOS_5_6
|
||||||
|
/* Solaris 2.6 doesn't recognize %z so we just leave it out */
|
||||||
|
static const char fmt[] = "%Y-%m-%d %H:%M:%S";
|
||||||
|
#else
|
||||||
static const char fmt[] = "%Y-%m-%d %H:%M:%S%z";
|
static const char fmt[] = "%Y-%m-%d %H:%M:%S%z";
|
||||||
|
#endif
|
||||||
char buf[] = "YYYY-mm-dd HH:MM:SS.hh:mm"; /* RFC 3339 */
|
char buf[] = "YYYY-mm-dd HH:MM:SS.hh:mm"; /* RFC 3339 */
|
||||||
size_t cnt;
|
size_t cnt;
|
||||||
time_t sec = (time_t)(n / DDS_NSECS_IN_SEC);
|
time_t sec = (time_t)(n / DDS_NSECS_IN_SEC);
|
||||||
|
@ -61,12 +66,14 @@ ddsrt_ctime(dds_time_t n, char *str, size_t size)
|
||||||
#endif /* _WIN32 */
|
#endif /* _WIN32 */
|
||||||
|
|
||||||
cnt = strftime(buf, sizeof(buf), fmt, &tm);
|
cnt = strftime(buf, sizeof(buf), fmt, &tm);
|
||||||
|
#if ! __SunOS_5_6
|
||||||
|
/* %z is without a separator between hours and minutes, fixup */
|
||||||
assert(cnt == (sizeof(buf) - 2 /* ':' + '\0' */));
|
assert(cnt == (sizeof(buf) - 2 /* ':' + '\0' */));
|
||||||
buf[sizeof(buf) - 1] = '\0';
|
buf[sizeof(buf) - 1] = '\0';
|
||||||
buf[sizeof(buf) - 2] = buf[sizeof(buf) - 3];
|
buf[sizeof(buf) - 2] = buf[sizeof(buf) - 3];
|
||||||
buf[sizeof(buf) - 3] = buf[sizeof(buf) - 4];
|
buf[sizeof(buf) - 3] = buf[sizeof(buf) - 4];
|
||||||
buf[sizeof(buf) - 4] = ':';
|
buf[sizeof(buf) - 4] = ':';
|
||||||
|
#endif
|
||||||
(void)cnt;
|
(void)cnt;
|
||||||
|
|
||||||
return ddsrt_strlcpy(str, buf, size);
|
return ddsrt_strlcpy(str, buf, size);
|
||||||
|
|
38
src/ddsrt/src/time/solaris2.6/time.c
Normal file
38
src/ddsrt/src/time/solaris2.6/time.c
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
/*
|
||||||
|
* Copyright(c) 2006 to 2018 ADLINK Technology Limited and others
|
||||||
|
*
|
||||||
|
* This program and the accompanying materials are made available under the
|
||||||
|
* terms of the Eclipse Public License v. 2.0 which is available at
|
||||||
|
* http://www.eclipse.org/legal/epl-2.0, or the Eclipse Distribution License
|
||||||
|
* v. 1.0 which is available at
|
||||||
|
* http://www.eclipse.org/org/documents/edl-v10.php.
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
|
||||||
|
*/
|
||||||
|
#include <assert.h>
|
||||||
|
#include <errno.h>
|
||||||
|
#include <stdint.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <time.h>
|
||||||
|
#include <sys/time.h>
|
||||||
|
|
||||||
|
#include "dds/ddsrt/time.h"
|
||||||
|
|
||||||
|
dds_time_t dds_time(void)
|
||||||
|
{
|
||||||
|
struct timespec ts;
|
||||||
|
|
||||||
|
(void)clock_gettime(CLOCK_REALTIME, &ts);
|
||||||
|
return (ts.tv_sec * DDS_NSECS_IN_SEC) + ts.tv_nsec;
|
||||||
|
}
|
||||||
|
|
||||||
|
dds_time_t ddsrt_time_monotonic(void)
|
||||||
|
{
|
||||||
|
return gethrtime ();
|
||||||
|
}
|
||||||
|
|
||||||
|
dds_time_t ddsrt_time_elapsed(void)
|
||||||
|
{
|
||||||
|
/* Elapsed time clock not worth the bother for now. */
|
||||||
|
return ddsrt_time_monotonic();
|
||||||
|
}
|
|
@ -10,6 +10,7 @@
|
||||||
* SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
|
* SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
|
||||||
*/
|
*/
|
||||||
#define _ISOC99_SOURCE
|
#define _ISOC99_SOURCE
|
||||||
|
#define _POSIX_PTHREAD_SEMANTICS
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
@ -19,7 +20,9 @@
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
#include <limits.h>
|
#include <limits.h>
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
|
#if _WIN32
|
||||||
#include <getopt.h>
|
#include <getopt.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
#include "dds/dds.h"
|
#include "dds/dds.h"
|
||||||
#include "ddsperf_types.h"
|
#include "ddsperf_types.h"
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -1,7 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<Workspace
|
|
||||||
version = "1.0">
|
|
||||||
<FileRef
|
|
||||||
location = "self:vdds-xcode.xcodeproj">
|
|
||||||
</FileRef>
|
|
||||||
</Workspace>
|
|
|
@ -1,91 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<Scheme
|
|
||||||
LastUpgradeVersion = "0810"
|
|
||||||
version = "1.3">
|
|
||||||
<BuildAction
|
|
||||||
parallelizeBuildables = "YES"
|
|
||||||
buildImplicitDependencies = "YES">
|
|
||||||
<BuildActionEntries>
|
|
||||||
<BuildActionEntry
|
|
||||||
buildForTesting = "YES"
|
|
||||||
buildForRunning = "YES"
|
|
||||||
buildForProfiling = "YES"
|
|
||||||
buildForArchiving = "YES"
|
|
||||||
buildForAnalyzing = "YES">
|
|
||||||
<BuildableReference
|
|
||||||
BuildableIdentifier = "primary"
|
|
||||||
BlueprintIdentifier = "036D25831DF15EB9009A18C5"
|
|
||||||
BuildableName = "ddpingpong"
|
|
||||||
BlueprintName = "ddpingpong"
|
|
||||||
ReferencedContainer = "container:vdds-xcode.xcodeproj">
|
|
||||||
</BuildableReference>
|
|
||||||
</BuildActionEntry>
|
|
||||||
</BuildActionEntries>
|
|
||||||
</BuildAction>
|
|
||||||
<TestAction
|
|
||||||
buildConfiguration = "Debug"
|
|
||||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
|
||||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
|
||||||
shouldUseLaunchSchemeArgsEnv = "YES">
|
|
||||||
<Testables>
|
|
||||||
</Testables>
|
|
||||||
<MacroExpansion>
|
|
||||||
<BuildableReference
|
|
||||||
BuildableIdentifier = "primary"
|
|
||||||
BlueprintIdentifier = "036D25831DF15EB9009A18C5"
|
|
||||||
BuildableName = "ddpingpong"
|
|
||||||
BlueprintName = "ddpingpong"
|
|
||||||
ReferencedContainer = "container:vdds-xcode.xcodeproj">
|
|
||||||
</BuildableReference>
|
|
||||||
</MacroExpansion>
|
|
||||||
<AdditionalOptions>
|
|
||||||
</AdditionalOptions>
|
|
||||||
</TestAction>
|
|
||||||
<LaunchAction
|
|
||||||
buildConfiguration = "Debug"
|
|
||||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
|
||||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
|
||||||
launchStyle = "0"
|
|
||||||
useCustomWorkingDirectory = "NO"
|
|
||||||
ignoresPersistentStateOnLaunch = "NO"
|
|
||||||
debugDocumentVersioning = "YES"
|
|
||||||
debugServiceExtension = "internal"
|
|
||||||
allowLocationSimulation = "YES">
|
|
||||||
<BuildableProductRunnable
|
|
||||||
runnableDebuggingMode = "0">
|
|
||||||
<BuildableReference
|
|
||||||
BuildableIdentifier = "primary"
|
|
||||||
BlueprintIdentifier = "036D25831DF15EB9009A18C5"
|
|
||||||
BuildableName = "ddpingpong"
|
|
||||||
BlueprintName = "ddpingpong"
|
|
||||||
ReferencedContainer = "container:vdds-xcode.xcodeproj">
|
|
||||||
</BuildableReference>
|
|
||||||
</BuildableProductRunnable>
|
|
||||||
<AdditionalOptions>
|
|
||||||
</AdditionalOptions>
|
|
||||||
</LaunchAction>
|
|
||||||
<ProfileAction
|
|
||||||
buildConfiguration = "Release"
|
|
||||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
|
||||||
savedToolIdentifier = ""
|
|
||||||
useCustomWorkingDirectory = "NO"
|
|
||||||
debugDocumentVersioning = "YES">
|
|
||||||
<BuildableProductRunnable
|
|
||||||
runnableDebuggingMode = "0">
|
|
||||||
<BuildableReference
|
|
||||||
BuildableIdentifier = "primary"
|
|
||||||
BlueprintIdentifier = "036D25831DF15EB9009A18C5"
|
|
||||||
BuildableName = "ddpingpong"
|
|
||||||
BlueprintName = "ddpingpong"
|
|
||||||
ReferencedContainer = "container:vdds-xcode.xcodeproj">
|
|
||||||
</BuildableReference>
|
|
||||||
</BuildableProductRunnable>
|
|
||||||
</ProfileAction>
|
|
||||||
<AnalyzeAction
|
|
||||||
buildConfiguration = "Debug">
|
|
||||||
</AnalyzeAction>
|
|
||||||
<ArchiveAction
|
|
||||||
buildConfiguration = "Release"
|
|
||||||
revealArchiveInOrganizer = "YES">
|
|
||||||
</ArchiveAction>
|
|
||||||
</Scheme>
|
|
|
@ -1,91 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<Scheme
|
|
||||||
LastUpgradeVersion = "0810"
|
|
||||||
version = "1.3">
|
|
||||||
<BuildAction
|
|
||||||
parallelizeBuildables = "YES"
|
|
||||||
buildImplicitDependencies = "YES">
|
|
||||||
<BuildActionEntries>
|
|
||||||
<BuildActionEntry
|
|
||||||
buildForTesting = "YES"
|
|
||||||
buildForRunning = "YES"
|
|
||||||
buildForProfiling = "YES"
|
|
||||||
buildForArchiving = "YES"
|
|
||||||
buildForAnalyzing = "YES">
|
|
||||||
<BuildableReference
|
|
||||||
BuildableIdentifier = "primary"
|
|
||||||
BlueprintIdentifier = "03E6D0751CCE121F00D73982"
|
|
||||||
BuildableName = "ping"
|
|
||||||
BlueprintName = "ping"
|
|
||||||
ReferencedContainer = "container:vdds-xcode.xcodeproj">
|
|
||||||
</BuildableReference>
|
|
||||||
</BuildActionEntry>
|
|
||||||
</BuildActionEntries>
|
|
||||||
</BuildAction>
|
|
||||||
<TestAction
|
|
||||||
buildConfiguration = "Debug"
|
|
||||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
|
||||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
|
||||||
shouldUseLaunchSchemeArgsEnv = "YES">
|
|
||||||
<Testables>
|
|
||||||
</Testables>
|
|
||||||
<MacroExpansion>
|
|
||||||
<BuildableReference
|
|
||||||
BuildableIdentifier = "primary"
|
|
||||||
BlueprintIdentifier = "03E6D0751CCE121F00D73982"
|
|
||||||
BuildableName = "ping"
|
|
||||||
BlueprintName = "ping"
|
|
||||||
ReferencedContainer = "container:vdds-xcode.xcodeproj">
|
|
||||||
</BuildableReference>
|
|
||||||
</MacroExpansion>
|
|
||||||
<AdditionalOptions>
|
|
||||||
</AdditionalOptions>
|
|
||||||
</TestAction>
|
|
||||||
<LaunchAction
|
|
||||||
buildConfiguration = "Debug"
|
|
||||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
|
||||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
|
||||||
launchStyle = "0"
|
|
||||||
useCustomWorkingDirectory = "NO"
|
|
||||||
ignoresPersistentStateOnLaunch = "NO"
|
|
||||||
debugDocumentVersioning = "YES"
|
|
||||||
debugServiceExtension = "internal"
|
|
||||||
allowLocationSimulation = "YES">
|
|
||||||
<BuildableProductRunnable
|
|
||||||
runnableDebuggingMode = "0">
|
|
||||||
<BuildableReference
|
|
||||||
BuildableIdentifier = "primary"
|
|
||||||
BlueprintIdentifier = "03E6D0751CCE121F00D73982"
|
|
||||||
BuildableName = "ping"
|
|
||||||
BlueprintName = "ping"
|
|
||||||
ReferencedContainer = "container:vdds-xcode.xcodeproj">
|
|
||||||
</BuildableReference>
|
|
||||||
</BuildableProductRunnable>
|
|
||||||
<AdditionalOptions>
|
|
||||||
</AdditionalOptions>
|
|
||||||
</LaunchAction>
|
|
||||||
<ProfileAction
|
|
||||||
buildConfiguration = "Release"
|
|
||||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
|
||||||
savedToolIdentifier = ""
|
|
||||||
useCustomWorkingDirectory = "NO"
|
|
||||||
debugDocumentVersioning = "YES">
|
|
||||||
<BuildableProductRunnable
|
|
||||||
runnableDebuggingMode = "0">
|
|
||||||
<BuildableReference
|
|
||||||
BuildableIdentifier = "primary"
|
|
||||||
BlueprintIdentifier = "03E6D0751CCE121F00D73982"
|
|
||||||
BuildableName = "ping"
|
|
||||||
BlueprintName = "ping"
|
|
||||||
ReferencedContainer = "container:vdds-xcode.xcodeproj">
|
|
||||||
</BuildableReference>
|
|
||||||
</BuildableProductRunnable>
|
|
||||||
</ProfileAction>
|
|
||||||
<AnalyzeAction
|
|
||||||
buildConfiguration = "Debug">
|
|
||||||
</AnalyzeAction>
|
|
||||||
<ArchiveAction
|
|
||||||
buildConfiguration = "Release"
|
|
||||||
revealArchiveInOrganizer = "YES">
|
|
||||||
</ArchiveAction>
|
|
||||||
</Scheme>
|
|
|
@ -1,91 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<Scheme
|
|
||||||
LastUpgradeVersion = "0810"
|
|
||||||
version = "1.3">
|
|
||||||
<BuildAction
|
|
||||||
parallelizeBuildables = "YES"
|
|
||||||
buildImplicitDependencies = "YES">
|
|
||||||
<BuildActionEntries>
|
|
||||||
<BuildActionEntry
|
|
||||||
buildForTesting = "YES"
|
|
||||||
buildForRunning = "YES"
|
|
||||||
buildForProfiling = "YES"
|
|
||||||
buildForArchiving = "YES"
|
|
||||||
buildForAnalyzing = "YES">
|
|
||||||
<BuildableReference
|
|
||||||
BuildableIdentifier = "primary"
|
|
||||||
BlueprintIdentifier = "03E6D0801CCE122400D73982"
|
|
||||||
BuildableName = "pong"
|
|
||||||
BlueprintName = "pong"
|
|
||||||
ReferencedContainer = "container:vdds-xcode.xcodeproj">
|
|
||||||
</BuildableReference>
|
|
||||||
</BuildActionEntry>
|
|
||||||
</BuildActionEntries>
|
|
||||||
</BuildAction>
|
|
||||||
<TestAction
|
|
||||||
buildConfiguration = "Debug"
|
|
||||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
|
||||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
|
||||||
shouldUseLaunchSchemeArgsEnv = "YES">
|
|
||||||
<Testables>
|
|
||||||
</Testables>
|
|
||||||
<MacroExpansion>
|
|
||||||
<BuildableReference
|
|
||||||
BuildableIdentifier = "primary"
|
|
||||||
BlueprintIdentifier = "03E6D0801CCE122400D73982"
|
|
||||||
BuildableName = "pong"
|
|
||||||
BlueprintName = "pong"
|
|
||||||
ReferencedContainer = "container:vdds-xcode.xcodeproj">
|
|
||||||
</BuildableReference>
|
|
||||||
</MacroExpansion>
|
|
||||||
<AdditionalOptions>
|
|
||||||
</AdditionalOptions>
|
|
||||||
</TestAction>
|
|
||||||
<LaunchAction
|
|
||||||
buildConfiguration = "Debug"
|
|
||||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
|
||||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
|
||||||
launchStyle = "0"
|
|
||||||
useCustomWorkingDirectory = "NO"
|
|
||||||
ignoresPersistentStateOnLaunch = "NO"
|
|
||||||
debugDocumentVersioning = "YES"
|
|
||||||
debugServiceExtension = "internal"
|
|
||||||
allowLocationSimulation = "YES">
|
|
||||||
<BuildableProductRunnable
|
|
||||||
runnableDebuggingMode = "0">
|
|
||||||
<BuildableReference
|
|
||||||
BuildableIdentifier = "primary"
|
|
||||||
BlueprintIdentifier = "03E6D0801CCE122400D73982"
|
|
||||||
BuildableName = "pong"
|
|
||||||
BlueprintName = "pong"
|
|
||||||
ReferencedContainer = "container:vdds-xcode.xcodeproj">
|
|
||||||
</BuildableReference>
|
|
||||||
</BuildableProductRunnable>
|
|
||||||
<AdditionalOptions>
|
|
||||||
</AdditionalOptions>
|
|
||||||
</LaunchAction>
|
|
||||||
<ProfileAction
|
|
||||||
buildConfiguration = "Release"
|
|
||||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
|
||||||
savedToolIdentifier = ""
|
|
||||||
useCustomWorkingDirectory = "NO"
|
|
||||||
debugDocumentVersioning = "YES">
|
|
||||||
<BuildableProductRunnable
|
|
||||||
runnableDebuggingMode = "0">
|
|
||||||
<BuildableReference
|
|
||||||
BuildableIdentifier = "primary"
|
|
||||||
BlueprintIdentifier = "03E6D0801CCE122400D73982"
|
|
||||||
BuildableName = "pong"
|
|
||||||
BlueprintName = "pong"
|
|
||||||
ReferencedContainer = "container:vdds-xcode.xcodeproj">
|
|
||||||
</BuildableReference>
|
|
||||||
</BuildableProductRunnable>
|
|
||||||
</ProfileAction>
|
|
||||||
<AnalyzeAction
|
|
||||||
buildConfiguration = "Debug">
|
|
||||||
</AnalyzeAction>
|
|
||||||
<ArchiveAction
|
|
||||||
buildConfiguration = "Release"
|
|
||||||
revealArchiveInOrganizer = "YES">
|
|
||||||
</ArchiveAction>
|
|
||||||
</Scheme>
|
|
|
@ -1,97 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<Scheme
|
|
||||||
LastUpgradeVersion = "0810"
|
|
||||||
version = "1.3">
|
|
||||||
<BuildAction
|
|
||||||
parallelizeBuildables = "YES"
|
|
||||||
buildImplicitDependencies = "YES">
|
|
||||||
<BuildActionEntries>
|
|
||||||
<BuildActionEntry
|
|
||||||
buildForTesting = "YES"
|
|
||||||
buildForRunning = "YES"
|
|
||||||
buildForProfiling = "YES"
|
|
||||||
buildForArchiving = "YES"
|
|
||||||
buildForAnalyzing = "YES">
|
|
||||||
<BuildableReference
|
|
||||||
BuildableIdentifier = "primary"
|
|
||||||
BlueprintIdentifier = "03E6D05F1CCE121300D73982"
|
|
||||||
BuildableName = "publisher"
|
|
||||||
BlueprintName = "publisher"
|
|
||||||
ReferencedContainer = "container:vdds-xcode.xcodeproj">
|
|
||||||
</BuildableReference>
|
|
||||||
</BuildActionEntry>
|
|
||||||
</BuildActionEntries>
|
|
||||||
</BuildAction>
|
|
||||||
<TestAction
|
|
||||||
buildConfiguration = "Debug"
|
|
||||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
|
||||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
|
||||||
shouldUseLaunchSchemeArgsEnv = "YES">
|
|
||||||
<Testables>
|
|
||||||
</Testables>
|
|
||||||
<MacroExpansion>
|
|
||||||
<BuildableReference
|
|
||||||
BuildableIdentifier = "primary"
|
|
||||||
BlueprintIdentifier = "03E6D05F1CCE121300D73982"
|
|
||||||
BuildableName = "publisher"
|
|
||||||
BlueprintName = "publisher"
|
|
||||||
ReferencedContainer = "container:vdds-xcode.xcodeproj">
|
|
||||||
</BuildableReference>
|
|
||||||
</MacroExpansion>
|
|
||||||
<AdditionalOptions>
|
|
||||||
</AdditionalOptions>
|
|
||||||
</TestAction>
|
|
||||||
<LaunchAction
|
|
||||||
buildConfiguration = "Debug"
|
|
||||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
|
||||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
|
||||||
launchStyle = "0"
|
|
||||||
useCustomWorkingDirectory = "NO"
|
|
||||||
ignoresPersistentStateOnLaunch = "NO"
|
|
||||||
debugDocumentVersioning = "YES"
|
|
||||||
debugServiceExtension = "internal"
|
|
||||||
allowLocationSimulation = "YES">
|
|
||||||
<BuildableProductRunnable
|
|
||||||
runnableDebuggingMode = "0">
|
|
||||||
<BuildableReference
|
|
||||||
BuildableIdentifier = "primary"
|
|
||||||
BlueprintIdentifier = "03E6D05F1CCE121300D73982"
|
|
||||||
BuildableName = "publisher"
|
|
||||||
BlueprintName = "publisher"
|
|
||||||
ReferencedContainer = "container:vdds-xcode.xcodeproj">
|
|
||||||
</BuildableReference>
|
|
||||||
</BuildableProductRunnable>
|
|
||||||
<CommandLineArguments>
|
|
||||||
<CommandLineArgument
|
|
||||||
argument = "1 0 1 10 "XX" 16"
|
|
||||||
isEnabled = "YES">
|
|
||||||
</CommandLineArgument>
|
|
||||||
</CommandLineArguments>
|
|
||||||
<AdditionalOptions>
|
|
||||||
</AdditionalOptions>
|
|
||||||
</LaunchAction>
|
|
||||||
<ProfileAction
|
|
||||||
buildConfiguration = "Release"
|
|
||||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
|
||||||
savedToolIdentifier = ""
|
|
||||||
useCustomWorkingDirectory = "NO"
|
|
||||||
debugDocumentVersioning = "YES">
|
|
||||||
<BuildableProductRunnable
|
|
||||||
runnableDebuggingMode = "0">
|
|
||||||
<BuildableReference
|
|
||||||
BuildableIdentifier = "primary"
|
|
||||||
BlueprintIdentifier = "03E6D05F1CCE121300D73982"
|
|
||||||
BuildableName = "publisher"
|
|
||||||
BlueprintName = "publisher"
|
|
||||||
ReferencedContainer = "container:vdds-xcode.xcodeproj">
|
|
||||||
</BuildableReference>
|
|
||||||
</BuildableProductRunnable>
|
|
||||||
</ProfileAction>
|
|
||||||
<AnalyzeAction
|
|
||||||
buildConfiguration = "Debug">
|
|
||||||
</AnalyzeAction>
|
|
||||||
<ArchiveAction
|
|
||||||
buildConfiguration = "Release"
|
|
||||||
revealArchiveInOrganizer = "YES">
|
|
||||||
</ArchiveAction>
|
|
||||||
</Scheme>
|
|
|
@ -1,91 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<Scheme
|
|
||||||
LastUpgradeVersion = "0810"
|
|
||||||
version = "1.3">
|
|
||||||
<BuildAction
|
|
||||||
parallelizeBuildables = "YES"
|
|
||||||
buildImplicitDependencies = "YES">
|
|
||||||
<BuildActionEntries>
|
|
||||||
<BuildActionEntry
|
|
||||||
buildForTesting = "YES"
|
|
||||||
buildForRunning = "YES"
|
|
||||||
buildForProfiling = "YES"
|
|
||||||
buildForArchiving = "YES"
|
|
||||||
buildForAnalyzing = "YES">
|
|
||||||
<BuildableReference
|
|
||||||
BuildableIdentifier = "primary"
|
|
||||||
BlueprintIdentifier = "03E6D0A11CCE123500D73982"
|
|
||||||
BuildableName = "rpc-ping"
|
|
||||||
BlueprintName = "rpc-ping"
|
|
||||||
ReferencedContainer = "container:vdds-xcode.xcodeproj">
|
|
||||||
</BuildableReference>
|
|
||||||
</BuildActionEntry>
|
|
||||||
</BuildActionEntries>
|
|
||||||
</BuildAction>
|
|
||||||
<TestAction
|
|
||||||
buildConfiguration = "Debug"
|
|
||||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
|
||||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
|
||||||
shouldUseLaunchSchemeArgsEnv = "YES">
|
|
||||||
<Testables>
|
|
||||||
</Testables>
|
|
||||||
<MacroExpansion>
|
|
||||||
<BuildableReference
|
|
||||||
BuildableIdentifier = "primary"
|
|
||||||
BlueprintIdentifier = "03E6D0A11CCE123500D73982"
|
|
||||||
BuildableName = "rpc-ping"
|
|
||||||
BlueprintName = "rpc-ping"
|
|
||||||
ReferencedContainer = "container:vdds-xcode.xcodeproj">
|
|
||||||
</BuildableReference>
|
|
||||||
</MacroExpansion>
|
|
||||||
<AdditionalOptions>
|
|
||||||
</AdditionalOptions>
|
|
||||||
</TestAction>
|
|
||||||
<LaunchAction
|
|
||||||
buildConfiguration = "Debug"
|
|
||||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
|
||||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
|
||||||
launchStyle = "0"
|
|
||||||
useCustomWorkingDirectory = "NO"
|
|
||||||
ignoresPersistentStateOnLaunch = "NO"
|
|
||||||
debugDocumentVersioning = "YES"
|
|
||||||
debugServiceExtension = "internal"
|
|
||||||
allowLocationSimulation = "YES">
|
|
||||||
<BuildableProductRunnable
|
|
||||||
runnableDebuggingMode = "0">
|
|
||||||
<BuildableReference
|
|
||||||
BuildableIdentifier = "primary"
|
|
||||||
BlueprintIdentifier = "03E6D0A11CCE123500D73982"
|
|
||||||
BuildableName = "rpc-ping"
|
|
||||||
BlueprintName = "rpc-ping"
|
|
||||||
ReferencedContainer = "container:vdds-xcode.xcodeproj">
|
|
||||||
</BuildableReference>
|
|
||||||
</BuildableProductRunnable>
|
|
||||||
<AdditionalOptions>
|
|
||||||
</AdditionalOptions>
|
|
||||||
</LaunchAction>
|
|
||||||
<ProfileAction
|
|
||||||
buildConfiguration = "Release"
|
|
||||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
|
||||||
savedToolIdentifier = ""
|
|
||||||
useCustomWorkingDirectory = "NO"
|
|
||||||
debugDocumentVersioning = "YES">
|
|
||||||
<BuildableProductRunnable
|
|
||||||
runnableDebuggingMode = "0">
|
|
||||||
<BuildableReference
|
|
||||||
BuildableIdentifier = "primary"
|
|
||||||
BlueprintIdentifier = "03E6D0A11CCE123500D73982"
|
|
||||||
BuildableName = "rpc-ping"
|
|
||||||
BlueprintName = "rpc-ping"
|
|
||||||
ReferencedContainer = "container:vdds-xcode.xcodeproj">
|
|
||||||
</BuildableReference>
|
|
||||||
</BuildableProductRunnable>
|
|
||||||
</ProfileAction>
|
|
||||||
<AnalyzeAction
|
|
||||||
buildConfiguration = "Debug">
|
|
||||||
</AnalyzeAction>
|
|
||||||
<ArchiveAction
|
|
||||||
buildConfiguration = "Release"
|
|
||||||
revealArchiveInOrganizer = "YES">
|
|
||||||
</ArchiveAction>
|
|
||||||
</Scheme>
|
|
|
@ -1,91 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<Scheme
|
|
||||||
LastUpgradeVersion = "0810"
|
|
||||||
version = "1.3">
|
|
||||||
<BuildAction
|
|
||||||
parallelizeBuildables = "YES"
|
|
||||||
buildImplicitDependencies = "YES">
|
|
||||||
<BuildActionEntries>
|
|
||||||
<BuildActionEntry
|
|
||||||
buildForTesting = "YES"
|
|
||||||
buildForRunning = "YES"
|
|
||||||
buildForProfiling = "YES"
|
|
||||||
buildForArchiving = "YES"
|
|
||||||
buildForAnalyzing = "YES">
|
|
||||||
<BuildableReference
|
|
||||||
BuildableIdentifier = "primary"
|
|
||||||
BlueprintIdentifier = "0335203D1CEDD22A003E7429"
|
|
||||||
BuildableName = "rpc-pingpong"
|
|
||||||
BlueprintName = "rpc-pingpong"
|
|
||||||
ReferencedContainer = "container:vdds-xcode.xcodeproj">
|
|
||||||
</BuildableReference>
|
|
||||||
</BuildActionEntry>
|
|
||||||
</BuildActionEntries>
|
|
||||||
</BuildAction>
|
|
||||||
<TestAction
|
|
||||||
buildConfiguration = "Debug"
|
|
||||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
|
||||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
|
||||||
shouldUseLaunchSchemeArgsEnv = "YES">
|
|
||||||
<Testables>
|
|
||||||
</Testables>
|
|
||||||
<MacroExpansion>
|
|
||||||
<BuildableReference
|
|
||||||
BuildableIdentifier = "primary"
|
|
||||||
BlueprintIdentifier = "0335203D1CEDD22A003E7429"
|
|
||||||
BuildableName = "rpc-pingpong"
|
|
||||||
BlueprintName = "rpc-pingpong"
|
|
||||||
ReferencedContainer = "container:vdds-xcode.xcodeproj">
|
|
||||||
</BuildableReference>
|
|
||||||
</MacroExpansion>
|
|
||||||
<AdditionalOptions>
|
|
||||||
</AdditionalOptions>
|
|
||||||
</TestAction>
|
|
||||||
<LaunchAction
|
|
||||||
buildConfiguration = "Debug"
|
|
||||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
|
||||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
|
||||||
launchStyle = "0"
|
|
||||||
useCustomWorkingDirectory = "NO"
|
|
||||||
ignoresPersistentStateOnLaunch = "NO"
|
|
||||||
debugDocumentVersioning = "YES"
|
|
||||||
debugServiceExtension = "internal"
|
|
||||||
allowLocationSimulation = "YES">
|
|
||||||
<BuildableProductRunnable
|
|
||||||
runnableDebuggingMode = "0">
|
|
||||||
<BuildableReference
|
|
||||||
BuildableIdentifier = "primary"
|
|
||||||
BlueprintIdentifier = "0335203D1CEDD22A003E7429"
|
|
||||||
BuildableName = "rpc-pingpong"
|
|
||||||
BlueprintName = "rpc-pingpong"
|
|
||||||
ReferencedContainer = "container:vdds-xcode.xcodeproj">
|
|
||||||
</BuildableReference>
|
|
||||||
</BuildableProductRunnable>
|
|
||||||
<AdditionalOptions>
|
|
||||||
</AdditionalOptions>
|
|
||||||
</LaunchAction>
|
|
||||||
<ProfileAction
|
|
||||||
buildConfiguration = "Release"
|
|
||||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
|
||||||
savedToolIdentifier = ""
|
|
||||||
useCustomWorkingDirectory = "NO"
|
|
||||||
debugDocumentVersioning = "YES">
|
|
||||||
<BuildableProductRunnable
|
|
||||||
runnableDebuggingMode = "0">
|
|
||||||
<BuildableReference
|
|
||||||
BuildableIdentifier = "primary"
|
|
||||||
BlueprintIdentifier = "0335203D1CEDD22A003E7429"
|
|
||||||
BuildableName = "rpc-pingpong"
|
|
||||||
BlueprintName = "rpc-pingpong"
|
|
||||||
ReferencedContainer = "container:vdds-xcode.xcodeproj">
|
|
||||||
</BuildableReference>
|
|
||||||
</BuildableProductRunnable>
|
|
||||||
</ProfileAction>
|
|
||||||
<AnalyzeAction
|
|
||||||
buildConfiguration = "Debug">
|
|
||||||
</AnalyzeAction>
|
|
||||||
<ArchiveAction
|
|
||||||
buildConfiguration = "Release"
|
|
||||||
revealArchiveInOrganizer = "YES">
|
|
||||||
</ArchiveAction>
|
|
||||||
</Scheme>
|
|
|
@ -1,91 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<Scheme
|
|
||||||
LastUpgradeVersion = "0810"
|
|
||||||
version = "1.3">
|
|
||||||
<BuildAction
|
|
||||||
parallelizeBuildables = "YES"
|
|
||||||
buildImplicitDependencies = "YES">
|
|
||||||
<BuildActionEntries>
|
|
||||||
<BuildActionEntry
|
|
||||||
buildForTesting = "YES"
|
|
||||||
buildForRunning = "YES"
|
|
||||||
buildForProfiling = "YES"
|
|
||||||
buildForArchiving = "YES"
|
|
||||||
buildForAnalyzing = "YES">
|
|
||||||
<BuildableReference
|
|
||||||
BuildableIdentifier = "primary"
|
|
||||||
BlueprintIdentifier = "03E6D0AC1CCE123A00D73982"
|
|
||||||
BuildableName = "rpc-pong"
|
|
||||||
BlueprintName = "rpc-pong"
|
|
||||||
ReferencedContainer = "container:vdds-xcode.xcodeproj">
|
|
||||||
</BuildableReference>
|
|
||||||
</BuildActionEntry>
|
|
||||||
</BuildActionEntries>
|
|
||||||
</BuildAction>
|
|
||||||
<TestAction
|
|
||||||
buildConfiguration = "Debug"
|
|
||||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
|
||||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
|
||||||
shouldUseLaunchSchemeArgsEnv = "YES">
|
|
||||||
<Testables>
|
|
||||||
</Testables>
|
|
||||||
<MacroExpansion>
|
|
||||||
<BuildableReference
|
|
||||||
BuildableIdentifier = "primary"
|
|
||||||
BlueprintIdentifier = "03E6D0AC1CCE123A00D73982"
|
|
||||||
BuildableName = "rpc-pong"
|
|
||||||
BlueprintName = "rpc-pong"
|
|
||||||
ReferencedContainer = "container:vdds-xcode.xcodeproj">
|
|
||||||
</BuildableReference>
|
|
||||||
</MacroExpansion>
|
|
||||||
<AdditionalOptions>
|
|
||||||
</AdditionalOptions>
|
|
||||||
</TestAction>
|
|
||||||
<LaunchAction
|
|
||||||
buildConfiguration = "Debug"
|
|
||||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
|
||||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
|
||||||
launchStyle = "0"
|
|
||||||
useCustomWorkingDirectory = "NO"
|
|
||||||
ignoresPersistentStateOnLaunch = "NO"
|
|
||||||
debugDocumentVersioning = "YES"
|
|
||||||
debugServiceExtension = "internal"
|
|
||||||
allowLocationSimulation = "YES">
|
|
||||||
<BuildableProductRunnable
|
|
||||||
runnableDebuggingMode = "0">
|
|
||||||
<BuildableReference
|
|
||||||
BuildableIdentifier = "primary"
|
|
||||||
BlueprintIdentifier = "03E6D0AC1CCE123A00D73982"
|
|
||||||
BuildableName = "rpc-pong"
|
|
||||||
BlueprintName = "rpc-pong"
|
|
||||||
ReferencedContainer = "container:vdds-xcode.xcodeproj">
|
|
||||||
</BuildableReference>
|
|
||||||
</BuildableProductRunnable>
|
|
||||||
<AdditionalOptions>
|
|
||||||
</AdditionalOptions>
|
|
||||||
</LaunchAction>
|
|
||||||
<ProfileAction
|
|
||||||
buildConfiguration = "Release"
|
|
||||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
|
||||||
savedToolIdentifier = ""
|
|
||||||
useCustomWorkingDirectory = "NO"
|
|
||||||
debugDocumentVersioning = "YES">
|
|
||||||
<BuildableProductRunnable
|
|
||||||
runnableDebuggingMode = "0">
|
|
||||||
<BuildableReference
|
|
||||||
BuildableIdentifier = "primary"
|
|
||||||
BlueprintIdentifier = "03E6D0AC1CCE123A00D73982"
|
|
||||||
BuildableName = "rpc-pong"
|
|
||||||
BlueprintName = "rpc-pong"
|
|
||||||
ReferencedContainer = "container:vdds-xcode.xcodeproj">
|
|
||||||
</BuildableReference>
|
|
||||||
</BuildableProductRunnable>
|
|
||||||
</ProfileAction>
|
|
||||||
<AnalyzeAction
|
|
||||||
buildConfiguration = "Debug">
|
|
||||||
</AnalyzeAction>
|
|
||||||
<ArchiveAction
|
|
||||||
buildConfiguration = "Release"
|
|
||||||
revealArchiveInOrganizer = "YES">
|
|
||||||
</ArchiveAction>
|
|
||||||
</Scheme>
|
|
|
@ -1,91 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<Scheme
|
|
||||||
LastUpgradeVersion = "0810"
|
|
||||||
version = "1.3">
|
|
||||||
<BuildAction
|
|
||||||
parallelizeBuildables = "YES"
|
|
||||||
buildImplicitDependencies = "YES">
|
|
||||||
<BuildActionEntries>
|
|
||||||
<BuildActionEntry
|
|
||||||
buildForTesting = "YES"
|
|
||||||
buildForRunning = "YES"
|
|
||||||
buildForProfiling = "YES"
|
|
||||||
buildForArchiving = "YES"
|
|
||||||
buildForAnalyzing = "YES">
|
|
||||||
<BuildableReference
|
|
||||||
BuildableIdentifier = "primary"
|
|
||||||
BlueprintIdentifier = "03E6D08B1CCE122A00D73982"
|
|
||||||
BuildableName = "rpc-publisher"
|
|
||||||
BlueprintName = "rpc-publisher"
|
|
||||||
ReferencedContainer = "container:vdds-xcode.xcodeproj">
|
|
||||||
</BuildableReference>
|
|
||||||
</BuildActionEntry>
|
|
||||||
</BuildActionEntries>
|
|
||||||
</BuildAction>
|
|
||||||
<TestAction
|
|
||||||
buildConfiguration = "Debug"
|
|
||||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
|
||||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
|
||||||
shouldUseLaunchSchemeArgsEnv = "YES">
|
|
||||||
<Testables>
|
|
||||||
</Testables>
|
|
||||||
<MacroExpansion>
|
|
||||||
<BuildableReference
|
|
||||||
BuildableIdentifier = "primary"
|
|
||||||
BlueprintIdentifier = "03E6D08B1CCE122A00D73982"
|
|
||||||
BuildableName = "rpc-publisher"
|
|
||||||
BlueprintName = "rpc-publisher"
|
|
||||||
ReferencedContainer = "container:vdds-xcode.xcodeproj">
|
|
||||||
</BuildableReference>
|
|
||||||
</MacroExpansion>
|
|
||||||
<AdditionalOptions>
|
|
||||||
</AdditionalOptions>
|
|
||||||
</TestAction>
|
|
||||||
<LaunchAction
|
|
||||||
buildConfiguration = "Debug"
|
|
||||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
|
||||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
|
||||||
launchStyle = "0"
|
|
||||||
useCustomWorkingDirectory = "NO"
|
|
||||||
ignoresPersistentStateOnLaunch = "NO"
|
|
||||||
debugDocumentVersioning = "YES"
|
|
||||||
debugServiceExtension = "internal"
|
|
||||||
allowLocationSimulation = "YES">
|
|
||||||
<BuildableProductRunnable
|
|
||||||
runnableDebuggingMode = "0">
|
|
||||||
<BuildableReference
|
|
||||||
BuildableIdentifier = "primary"
|
|
||||||
BlueprintIdentifier = "03E6D08B1CCE122A00D73982"
|
|
||||||
BuildableName = "rpc-publisher"
|
|
||||||
BlueprintName = "rpc-publisher"
|
|
||||||
ReferencedContainer = "container:vdds-xcode.xcodeproj">
|
|
||||||
</BuildableReference>
|
|
||||||
</BuildableProductRunnable>
|
|
||||||
<AdditionalOptions>
|
|
||||||
</AdditionalOptions>
|
|
||||||
</LaunchAction>
|
|
||||||
<ProfileAction
|
|
||||||
buildConfiguration = "Release"
|
|
||||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
|
||||||
savedToolIdentifier = ""
|
|
||||||
useCustomWorkingDirectory = "NO"
|
|
||||||
debugDocumentVersioning = "YES">
|
|
||||||
<BuildableProductRunnable
|
|
||||||
runnableDebuggingMode = "0">
|
|
||||||
<BuildableReference
|
|
||||||
BuildableIdentifier = "primary"
|
|
||||||
BlueprintIdentifier = "03E6D08B1CCE122A00D73982"
|
|
||||||
BuildableName = "rpc-publisher"
|
|
||||||
BlueprintName = "rpc-publisher"
|
|
||||||
ReferencedContainer = "container:vdds-xcode.xcodeproj">
|
|
||||||
</BuildableReference>
|
|
||||||
</BuildableProductRunnable>
|
|
||||||
</ProfileAction>
|
|
||||||
<AnalyzeAction
|
|
||||||
buildConfiguration = "Debug">
|
|
||||||
</AnalyzeAction>
|
|
||||||
<ArchiveAction
|
|
||||||
buildConfiguration = "Release"
|
|
||||||
revealArchiveInOrganizer = "YES">
|
|
||||||
</ArchiveAction>
|
|
||||||
</Scheme>
|
|
|
@ -1,91 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<Scheme
|
|
||||||
LastUpgradeVersion = "0810"
|
|
||||||
version = "1.3">
|
|
||||||
<BuildAction
|
|
||||||
parallelizeBuildables = "YES"
|
|
||||||
buildImplicitDependencies = "YES">
|
|
||||||
<BuildActionEntries>
|
|
||||||
<BuildActionEntry
|
|
||||||
buildForTesting = "YES"
|
|
||||||
buildForRunning = "YES"
|
|
||||||
buildForProfiling = "YES"
|
|
||||||
buildForArchiving = "YES"
|
|
||||||
buildForAnalyzing = "YES">
|
|
||||||
<BuildableReference
|
|
||||||
BuildableIdentifier = "primary"
|
|
||||||
BlueprintIdentifier = "03E6D0961CCE123000D73982"
|
|
||||||
BuildableName = "rpc-subscriber"
|
|
||||||
BlueprintName = "rpc-subscriber"
|
|
||||||
ReferencedContainer = "container:vdds-xcode.xcodeproj">
|
|
||||||
</BuildableReference>
|
|
||||||
</BuildActionEntry>
|
|
||||||
</BuildActionEntries>
|
|
||||||
</BuildAction>
|
|
||||||
<TestAction
|
|
||||||
buildConfiguration = "Debug"
|
|
||||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
|
||||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
|
||||||
shouldUseLaunchSchemeArgsEnv = "YES">
|
|
||||||
<Testables>
|
|
||||||
</Testables>
|
|
||||||
<MacroExpansion>
|
|
||||||
<BuildableReference
|
|
||||||
BuildableIdentifier = "primary"
|
|
||||||
BlueprintIdentifier = "03E6D0961CCE123000D73982"
|
|
||||||
BuildableName = "rpc-subscriber"
|
|
||||||
BlueprintName = "rpc-subscriber"
|
|
||||||
ReferencedContainer = "container:vdds-xcode.xcodeproj">
|
|
||||||
</BuildableReference>
|
|
||||||
</MacroExpansion>
|
|
||||||
<AdditionalOptions>
|
|
||||||
</AdditionalOptions>
|
|
||||||
</TestAction>
|
|
||||||
<LaunchAction
|
|
||||||
buildConfiguration = "Debug"
|
|
||||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
|
||||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
|
||||||
launchStyle = "0"
|
|
||||||
useCustomWorkingDirectory = "NO"
|
|
||||||
ignoresPersistentStateOnLaunch = "NO"
|
|
||||||
debugDocumentVersioning = "YES"
|
|
||||||
debugServiceExtension = "internal"
|
|
||||||
allowLocationSimulation = "YES">
|
|
||||||
<BuildableProductRunnable
|
|
||||||
runnableDebuggingMode = "0">
|
|
||||||
<BuildableReference
|
|
||||||
BuildableIdentifier = "primary"
|
|
||||||
BlueprintIdentifier = "03E6D0961CCE123000D73982"
|
|
||||||
BuildableName = "rpc-subscriber"
|
|
||||||
BlueprintName = "rpc-subscriber"
|
|
||||||
ReferencedContainer = "container:vdds-xcode.xcodeproj">
|
|
||||||
</BuildableReference>
|
|
||||||
</BuildableProductRunnable>
|
|
||||||
<AdditionalOptions>
|
|
||||||
</AdditionalOptions>
|
|
||||||
</LaunchAction>
|
|
||||||
<ProfileAction
|
|
||||||
buildConfiguration = "Release"
|
|
||||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
|
||||||
savedToolIdentifier = ""
|
|
||||||
useCustomWorkingDirectory = "NO"
|
|
||||||
debugDocumentVersioning = "YES">
|
|
||||||
<BuildableProductRunnable
|
|
||||||
runnableDebuggingMode = "0">
|
|
||||||
<BuildableReference
|
|
||||||
BuildableIdentifier = "primary"
|
|
||||||
BlueprintIdentifier = "03E6D0961CCE123000D73982"
|
|
||||||
BuildableName = "rpc-subscriber"
|
|
||||||
BlueprintName = "rpc-subscriber"
|
|
||||||
ReferencedContainer = "container:vdds-xcode.xcodeproj">
|
|
||||||
</BuildableReference>
|
|
||||||
</BuildableProductRunnable>
|
|
||||||
</ProfileAction>
|
|
||||||
<AnalyzeAction
|
|
||||||
buildConfiguration = "Debug">
|
|
||||||
</AnalyzeAction>
|
|
||||||
<ArchiveAction
|
|
||||||
buildConfiguration = "Release"
|
|
||||||
revealArchiveInOrganizer = "YES">
|
|
||||||
</ArchiveAction>
|
|
||||||
</Scheme>
|
|
|
@ -1,91 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<Scheme
|
|
||||||
LastUpgradeVersion = "0810"
|
|
||||||
version = "1.3">
|
|
||||||
<BuildAction
|
|
||||||
parallelizeBuildables = "YES"
|
|
||||||
buildImplicitDependencies = "YES">
|
|
||||||
<BuildActionEntries>
|
|
||||||
<BuildActionEntry
|
|
||||||
buildForTesting = "YES"
|
|
||||||
buildForRunning = "YES"
|
|
||||||
buildForProfiling = "YES"
|
|
||||||
buildForArchiving = "YES"
|
|
||||||
buildForAnalyzing = "YES">
|
|
||||||
<BuildableReference
|
|
||||||
BuildableIdentifier = "primary"
|
|
||||||
BlueprintIdentifier = "03E6D06A1CCE121A00D73982"
|
|
||||||
BuildableName = "subscriber"
|
|
||||||
BlueprintName = "subscriber"
|
|
||||||
ReferencedContainer = "container:vdds-xcode.xcodeproj">
|
|
||||||
</BuildableReference>
|
|
||||||
</BuildActionEntry>
|
|
||||||
</BuildActionEntries>
|
|
||||||
</BuildAction>
|
|
||||||
<TestAction
|
|
||||||
buildConfiguration = "Debug"
|
|
||||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
|
||||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
|
||||||
shouldUseLaunchSchemeArgsEnv = "YES">
|
|
||||||
<Testables>
|
|
||||||
</Testables>
|
|
||||||
<MacroExpansion>
|
|
||||||
<BuildableReference
|
|
||||||
BuildableIdentifier = "primary"
|
|
||||||
BlueprintIdentifier = "03E6D06A1CCE121A00D73982"
|
|
||||||
BuildableName = "subscriber"
|
|
||||||
BlueprintName = "subscriber"
|
|
||||||
ReferencedContainer = "container:vdds-xcode.xcodeproj">
|
|
||||||
</BuildableReference>
|
|
||||||
</MacroExpansion>
|
|
||||||
<AdditionalOptions>
|
|
||||||
</AdditionalOptions>
|
|
||||||
</TestAction>
|
|
||||||
<LaunchAction
|
|
||||||
buildConfiguration = "Debug"
|
|
||||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
|
||||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
|
||||||
launchStyle = "0"
|
|
||||||
useCustomWorkingDirectory = "NO"
|
|
||||||
ignoresPersistentStateOnLaunch = "NO"
|
|
||||||
debugDocumentVersioning = "YES"
|
|
||||||
debugServiceExtension = "internal"
|
|
||||||
allowLocationSimulation = "YES">
|
|
||||||
<BuildableProductRunnable
|
|
||||||
runnableDebuggingMode = "0">
|
|
||||||
<BuildableReference
|
|
||||||
BuildableIdentifier = "primary"
|
|
||||||
BlueprintIdentifier = "03E6D06A1CCE121A00D73982"
|
|
||||||
BuildableName = "subscriber"
|
|
||||||
BlueprintName = "subscriber"
|
|
||||||
ReferencedContainer = "container:vdds-xcode.xcodeproj">
|
|
||||||
</BuildableReference>
|
|
||||||
</BuildableProductRunnable>
|
|
||||||
<AdditionalOptions>
|
|
||||||
</AdditionalOptions>
|
|
||||||
</LaunchAction>
|
|
||||||
<ProfileAction
|
|
||||||
buildConfiguration = "Release"
|
|
||||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
|
||||||
savedToolIdentifier = ""
|
|
||||||
useCustomWorkingDirectory = "NO"
|
|
||||||
debugDocumentVersioning = "YES">
|
|
||||||
<BuildableProductRunnable
|
|
||||||
runnableDebuggingMode = "0">
|
|
||||||
<BuildableReference
|
|
||||||
BuildableIdentifier = "primary"
|
|
||||||
BlueprintIdentifier = "03E6D06A1CCE121A00D73982"
|
|
||||||
BuildableName = "subscriber"
|
|
||||||
BlueprintName = "subscriber"
|
|
||||||
ReferencedContainer = "container:vdds-xcode.xcodeproj">
|
|
||||||
</BuildableReference>
|
|
||||||
</BuildableProductRunnable>
|
|
||||||
</ProfileAction>
|
|
||||||
<AnalyzeAction
|
|
||||||
buildConfiguration = "Debug">
|
|
||||||
</AnalyzeAction>
|
|
||||||
<ArchiveAction
|
|
||||||
buildConfiguration = "Release"
|
|
||||||
revealArchiveInOrganizer = "YES">
|
|
||||||
</ArchiveAction>
|
|
||||||
</Scheme>
|
|
|
@ -1,91 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<Scheme
|
|
||||||
LastUpgradeVersion = "0810"
|
|
||||||
version = "1.3">
|
|
||||||
<BuildAction
|
|
||||||
parallelizeBuildables = "YES"
|
|
||||||
buildImplicitDependencies = "YES">
|
|
||||||
<BuildActionEntries>
|
|
||||||
<BuildActionEntry
|
|
||||||
buildForTesting = "YES"
|
|
||||||
buildForRunning = "YES"
|
|
||||||
buildForProfiling = "YES"
|
|
||||||
buildForArchiving = "YES"
|
|
||||||
buildForAnalyzing = "YES">
|
|
||||||
<BuildableReference
|
|
||||||
BuildableIdentifier = "primary"
|
|
||||||
BlueprintIdentifier = "03E6D0521CCE116900D73982"
|
|
||||||
BuildableName = "vdds-server"
|
|
||||||
BlueprintName = "vdds-server"
|
|
||||||
ReferencedContainer = "container:vdds-xcode.xcodeproj">
|
|
||||||
</BuildableReference>
|
|
||||||
</BuildActionEntry>
|
|
||||||
</BuildActionEntries>
|
|
||||||
</BuildAction>
|
|
||||||
<TestAction
|
|
||||||
buildConfiguration = "Debug"
|
|
||||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
|
||||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
|
||||||
shouldUseLaunchSchemeArgsEnv = "YES">
|
|
||||||
<Testables>
|
|
||||||
</Testables>
|
|
||||||
<MacroExpansion>
|
|
||||||
<BuildableReference
|
|
||||||
BuildableIdentifier = "primary"
|
|
||||||
BlueprintIdentifier = "03E6D0521CCE116900D73982"
|
|
||||||
BuildableName = "vdds-server"
|
|
||||||
BlueprintName = "vdds-server"
|
|
||||||
ReferencedContainer = "container:vdds-xcode.xcodeproj">
|
|
||||||
</BuildableReference>
|
|
||||||
</MacroExpansion>
|
|
||||||
<AdditionalOptions>
|
|
||||||
</AdditionalOptions>
|
|
||||||
</TestAction>
|
|
||||||
<LaunchAction
|
|
||||||
buildConfiguration = "Debug"
|
|
||||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
|
||||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
|
||||||
launchStyle = "0"
|
|
||||||
useCustomWorkingDirectory = "NO"
|
|
||||||
ignoresPersistentStateOnLaunch = "NO"
|
|
||||||
debugDocumentVersioning = "YES"
|
|
||||||
debugServiceExtension = "internal"
|
|
||||||
allowLocationSimulation = "YES">
|
|
||||||
<BuildableProductRunnable
|
|
||||||
runnableDebuggingMode = "0">
|
|
||||||
<BuildableReference
|
|
||||||
BuildableIdentifier = "primary"
|
|
||||||
BlueprintIdentifier = "03E6D0521CCE116900D73982"
|
|
||||||
BuildableName = "vdds-server"
|
|
||||||
BlueprintName = "vdds-server"
|
|
||||||
ReferencedContainer = "container:vdds-xcode.xcodeproj">
|
|
||||||
</BuildableReference>
|
|
||||||
</BuildableProductRunnable>
|
|
||||||
<AdditionalOptions>
|
|
||||||
</AdditionalOptions>
|
|
||||||
</LaunchAction>
|
|
||||||
<ProfileAction
|
|
||||||
buildConfiguration = "Release"
|
|
||||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
|
||||||
savedToolIdentifier = ""
|
|
||||||
useCustomWorkingDirectory = "NO"
|
|
||||||
debugDocumentVersioning = "YES">
|
|
||||||
<BuildableProductRunnable
|
|
||||||
runnableDebuggingMode = "0">
|
|
||||||
<BuildableReference
|
|
||||||
BuildableIdentifier = "primary"
|
|
||||||
BlueprintIdentifier = "03E6D0521CCE116900D73982"
|
|
||||||
BuildableName = "vdds-server"
|
|
||||||
BlueprintName = "vdds-server"
|
|
||||||
ReferencedContainer = "container:vdds-xcode.xcodeproj">
|
|
||||||
</BuildableReference>
|
|
||||||
</BuildableProductRunnable>
|
|
||||||
</ProfileAction>
|
|
||||||
<AnalyzeAction
|
|
||||||
buildConfiguration = "Debug">
|
|
||||||
</AnalyzeAction>
|
|
||||||
<ArchiveAction
|
|
||||||
buildConfiguration = "Release"
|
|
||||||
revealArchiveInOrganizer = "YES">
|
|
||||||
</ArchiveAction>
|
|
||||||
</Scheme>
|
|
|
@ -1,91 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<Scheme
|
|
||||||
LastUpgradeVersion = "0810"
|
|
||||||
version = "1.3">
|
|
||||||
<BuildAction
|
|
||||||
parallelizeBuildables = "YES"
|
|
||||||
buildImplicitDependencies = "YES">
|
|
||||||
<BuildActionEntries>
|
|
||||||
<BuildActionEntry
|
|
||||||
buildForTesting = "YES"
|
|
||||||
buildForRunning = "YES"
|
|
||||||
buildForProfiling = "YES"
|
|
||||||
buildForArchiving = "YES"
|
|
||||||
buildForAnalyzing = "YES">
|
|
||||||
<BuildableReference
|
|
||||||
BuildableIdentifier = "primary"
|
|
||||||
BlueprintIdentifier = "03C96E9B1CCE5B8D0012F15D"
|
|
||||||
BuildableName = "vdds-server2"
|
|
||||||
BlueprintName = "vdds-server2"
|
|
||||||
ReferencedContainer = "container:vdds-xcode.xcodeproj">
|
|
||||||
</BuildableReference>
|
|
||||||
</BuildActionEntry>
|
|
||||||
</BuildActionEntries>
|
|
||||||
</BuildAction>
|
|
||||||
<TestAction
|
|
||||||
buildConfiguration = "Debug"
|
|
||||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
|
||||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
|
||||||
shouldUseLaunchSchemeArgsEnv = "YES">
|
|
||||||
<Testables>
|
|
||||||
</Testables>
|
|
||||||
<MacroExpansion>
|
|
||||||
<BuildableReference
|
|
||||||
BuildableIdentifier = "primary"
|
|
||||||
BlueprintIdentifier = "03C96E9B1CCE5B8D0012F15D"
|
|
||||||
BuildableName = "vdds-server2"
|
|
||||||
BlueprintName = "vdds-server2"
|
|
||||||
ReferencedContainer = "container:vdds-xcode.xcodeproj">
|
|
||||||
</BuildableReference>
|
|
||||||
</MacroExpansion>
|
|
||||||
<AdditionalOptions>
|
|
||||||
</AdditionalOptions>
|
|
||||||
</TestAction>
|
|
||||||
<LaunchAction
|
|
||||||
buildConfiguration = "Debug"
|
|
||||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
|
||||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
|
||||||
launchStyle = "0"
|
|
||||||
useCustomWorkingDirectory = "NO"
|
|
||||||
ignoresPersistentStateOnLaunch = "NO"
|
|
||||||
debugDocumentVersioning = "YES"
|
|
||||||
debugServiceExtension = "internal"
|
|
||||||
allowLocationSimulation = "YES">
|
|
||||||
<BuildableProductRunnable
|
|
||||||
runnableDebuggingMode = "0">
|
|
||||||
<BuildableReference
|
|
||||||
BuildableIdentifier = "primary"
|
|
||||||
BlueprintIdentifier = "03C96E9B1CCE5B8D0012F15D"
|
|
||||||
BuildableName = "vdds-server2"
|
|
||||||
BlueprintName = "vdds-server2"
|
|
||||||
ReferencedContainer = "container:vdds-xcode.xcodeproj">
|
|
||||||
</BuildableReference>
|
|
||||||
</BuildableProductRunnable>
|
|
||||||
<AdditionalOptions>
|
|
||||||
</AdditionalOptions>
|
|
||||||
</LaunchAction>
|
|
||||||
<ProfileAction
|
|
||||||
buildConfiguration = "Release"
|
|
||||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
|
||||||
savedToolIdentifier = ""
|
|
||||||
useCustomWorkingDirectory = "NO"
|
|
||||||
debugDocumentVersioning = "YES">
|
|
||||||
<BuildableProductRunnable
|
|
||||||
runnableDebuggingMode = "0">
|
|
||||||
<BuildableReference
|
|
||||||
BuildableIdentifier = "primary"
|
|
||||||
BlueprintIdentifier = "03C96E9B1CCE5B8D0012F15D"
|
|
||||||
BuildableName = "vdds-server2"
|
|
||||||
BlueprintName = "vdds-server2"
|
|
||||||
ReferencedContainer = "container:vdds-xcode.xcodeproj">
|
|
||||||
</BuildableReference>
|
|
||||||
</BuildableProductRunnable>
|
|
||||||
</ProfileAction>
|
|
||||||
<AnalyzeAction
|
|
||||||
buildConfiguration = "Debug">
|
|
||||||
</AnalyzeAction>
|
|
||||||
<ArchiveAction
|
|
||||||
buildConfiguration = "Release"
|
|
||||||
revealArchiveInOrganizer = "YES">
|
|
||||||
</ArchiveAction>
|
|
||||||
</Scheme>
|
|
|
@ -1,80 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<Scheme
|
|
||||||
LastUpgradeVersion = "0810"
|
|
||||||
version = "1.3">
|
|
||||||
<BuildAction
|
|
||||||
parallelizeBuildables = "YES"
|
|
||||||
buildImplicitDependencies = "YES">
|
|
||||||
<BuildActionEntries>
|
|
||||||
<BuildActionEntry
|
|
||||||
buildForTesting = "YES"
|
|
||||||
buildForRunning = "YES"
|
|
||||||
buildForProfiling = "YES"
|
|
||||||
buildForArchiving = "YES"
|
|
||||||
buildForAnalyzing = "YES">
|
|
||||||
<BuildableReference
|
|
||||||
BuildableIdentifier = "primary"
|
|
||||||
BlueprintIdentifier = "03E6CEB01CCE0CCC00D73982"
|
|
||||||
BuildableName = "libvdds-stubs.dylib"
|
|
||||||
BlueprintName = "vdds-stubs"
|
|
||||||
ReferencedContainer = "container:vdds-xcode.xcodeproj">
|
|
||||||
</BuildableReference>
|
|
||||||
</BuildActionEntry>
|
|
||||||
</BuildActionEntries>
|
|
||||||
</BuildAction>
|
|
||||||
<TestAction
|
|
||||||
buildConfiguration = "Debug"
|
|
||||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
|
||||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
|
||||||
shouldUseLaunchSchemeArgsEnv = "YES">
|
|
||||||
<Testables>
|
|
||||||
</Testables>
|
|
||||||
<AdditionalOptions>
|
|
||||||
</AdditionalOptions>
|
|
||||||
</TestAction>
|
|
||||||
<LaunchAction
|
|
||||||
buildConfiguration = "Debug"
|
|
||||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
|
||||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
|
||||||
launchStyle = "0"
|
|
||||||
useCustomWorkingDirectory = "NO"
|
|
||||||
ignoresPersistentStateOnLaunch = "NO"
|
|
||||||
debugDocumentVersioning = "YES"
|
|
||||||
debugServiceExtension = "internal"
|
|
||||||
allowLocationSimulation = "YES">
|
|
||||||
<MacroExpansion>
|
|
||||||
<BuildableReference
|
|
||||||
BuildableIdentifier = "primary"
|
|
||||||
BlueprintIdentifier = "03E6CEB01CCE0CCC00D73982"
|
|
||||||
BuildableName = "libvdds-stubs.dylib"
|
|
||||||
BlueprintName = "vdds-stubs"
|
|
||||||
ReferencedContainer = "container:vdds-xcode.xcodeproj">
|
|
||||||
</BuildableReference>
|
|
||||||
</MacroExpansion>
|
|
||||||
<AdditionalOptions>
|
|
||||||
</AdditionalOptions>
|
|
||||||
</LaunchAction>
|
|
||||||
<ProfileAction
|
|
||||||
buildConfiguration = "Release"
|
|
||||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
|
||||||
savedToolIdentifier = ""
|
|
||||||
useCustomWorkingDirectory = "NO"
|
|
||||||
debugDocumentVersioning = "YES">
|
|
||||||
<MacroExpansion>
|
|
||||||
<BuildableReference
|
|
||||||
BuildableIdentifier = "primary"
|
|
||||||
BlueprintIdentifier = "03E6CEB01CCE0CCC00D73982"
|
|
||||||
BuildableName = "libvdds-stubs.dylib"
|
|
||||||
BlueprintName = "vdds-stubs"
|
|
||||||
ReferencedContainer = "container:vdds-xcode.xcodeproj">
|
|
||||||
</BuildableReference>
|
|
||||||
</MacroExpansion>
|
|
||||||
</ProfileAction>
|
|
||||||
<AnalyzeAction
|
|
||||||
buildConfiguration = "Debug">
|
|
||||||
</AnalyzeAction>
|
|
||||||
<ArchiveAction
|
|
||||||
buildConfiguration = "Release"
|
|
||||||
revealArchiveInOrganizer = "YES">
|
|
||||||
</ArchiveAction>
|
|
||||||
</Scheme>
|
|
|
@ -1,271 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<Scheme
|
|
||||||
LastUpgradeVersion = "0810"
|
|
||||||
version = "1.3">
|
|
||||||
<BuildAction
|
|
||||||
parallelizeBuildables = "YES"
|
|
||||||
buildImplicitDependencies = "YES">
|
|
||||||
<BuildActionEntries>
|
|
||||||
<BuildActionEntry
|
|
||||||
buildForTesting = "YES"
|
|
||||||
buildForRunning = "YES"
|
|
||||||
buildForProfiling = "YES"
|
|
||||||
buildForArchiving = "YES"
|
|
||||||
buildForAnalyzing = "YES">
|
|
||||||
<BuildableReference
|
|
||||||
BuildableIdentifier = "primary"
|
|
||||||
BlueprintIdentifier = "03E6CEA81CCE0CA400D73982"
|
|
||||||
BuildableName = "libvdds.dylib"
|
|
||||||
BlueprintName = "vdds"
|
|
||||||
ReferencedContainer = "container:vdds-xcode.xcodeproj">
|
|
||||||
</BuildableReference>
|
|
||||||
</BuildActionEntry>
|
|
||||||
<BuildActionEntry
|
|
||||||
buildForTesting = "YES"
|
|
||||||
buildForRunning = "YES"
|
|
||||||
buildForProfiling = "YES"
|
|
||||||
buildForArchiving = "YES"
|
|
||||||
buildForAnalyzing = "YES">
|
|
||||||
<BuildableReference
|
|
||||||
BuildableIdentifier = "primary"
|
|
||||||
BlueprintIdentifier = "03E6CEB01CCE0CCC00D73982"
|
|
||||||
BuildableName = "libvdds-stubs.dylib"
|
|
||||||
BlueprintName = "vdds-stubs"
|
|
||||||
ReferencedContainer = "container:vdds-xcode.xcodeproj">
|
|
||||||
</BuildableReference>
|
|
||||||
</BuildActionEntry>
|
|
||||||
<BuildActionEntry
|
|
||||||
buildForTesting = "YES"
|
|
||||||
buildForRunning = "YES"
|
|
||||||
buildForProfiling = "YES"
|
|
||||||
buildForArchiving = "YES"
|
|
||||||
buildForAnalyzing = "YES">
|
|
||||||
<BuildableReference
|
|
||||||
BuildableIdentifier = "primary"
|
|
||||||
BlueprintIdentifier = "03E6D0751CCE121F00D73982"
|
|
||||||
BuildableName = "ping"
|
|
||||||
BlueprintName = "ping"
|
|
||||||
ReferencedContainer = "container:vdds-xcode.xcodeproj">
|
|
||||||
</BuildableReference>
|
|
||||||
</BuildActionEntry>
|
|
||||||
<BuildActionEntry
|
|
||||||
buildForTesting = "YES"
|
|
||||||
buildForRunning = "YES"
|
|
||||||
buildForProfiling = "YES"
|
|
||||||
buildForArchiving = "YES"
|
|
||||||
buildForAnalyzing = "YES">
|
|
||||||
<BuildableReference
|
|
||||||
BuildableIdentifier = "primary"
|
|
||||||
BlueprintIdentifier = "03E6D0801CCE122400D73982"
|
|
||||||
BuildableName = "pong"
|
|
||||||
BlueprintName = "pong"
|
|
||||||
ReferencedContainer = "container:vdds-xcode.xcodeproj">
|
|
||||||
</BuildableReference>
|
|
||||||
</BuildActionEntry>
|
|
||||||
<BuildActionEntry
|
|
||||||
buildForTesting = "YES"
|
|
||||||
buildForRunning = "YES"
|
|
||||||
buildForProfiling = "YES"
|
|
||||||
buildForArchiving = "YES"
|
|
||||||
buildForAnalyzing = "YES">
|
|
||||||
<BuildableReference
|
|
||||||
BuildableIdentifier = "primary"
|
|
||||||
BlueprintIdentifier = "03E6D05F1CCE121300D73982"
|
|
||||||
BuildableName = "publisher"
|
|
||||||
BlueprintName = "publisher"
|
|
||||||
ReferencedContainer = "container:vdds-xcode.xcodeproj">
|
|
||||||
</BuildableReference>
|
|
||||||
</BuildActionEntry>
|
|
||||||
<BuildActionEntry
|
|
||||||
buildForTesting = "YES"
|
|
||||||
buildForRunning = "YES"
|
|
||||||
buildForProfiling = "YES"
|
|
||||||
buildForArchiving = "YES"
|
|
||||||
buildForAnalyzing = "YES">
|
|
||||||
<BuildableReference
|
|
||||||
BuildableIdentifier = "primary"
|
|
||||||
BlueprintIdentifier = "03E6D0A11CCE123500D73982"
|
|
||||||
BuildableName = "rpc-ping"
|
|
||||||
BlueprintName = "rpc-ping"
|
|
||||||
ReferencedContainer = "container:vdds-xcode.xcodeproj">
|
|
||||||
</BuildableReference>
|
|
||||||
</BuildActionEntry>
|
|
||||||
<BuildActionEntry
|
|
||||||
buildForTesting = "YES"
|
|
||||||
buildForRunning = "YES"
|
|
||||||
buildForProfiling = "YES"
|
|
||||||
buildForArchiving = "YES"
|
|
||||||
buildForAnalyzing = "YES">
|
|
||||||
<BuildableReference
|
|
||||||
BuildableIdentifier = "primary"
|
|
||||||
BlueprintIdentifier = "03E6D0AC1CCE123A00D73982"
|
|
||||||
BuildableName = "rpc-pong"
|
|
||||||
BlueprintName = "rpc-pong"
|
|
||||||
ReferencedContainer = "container:vdds-xcode.xcodeproj">
|
|
||||||
</BuildableReference>
|
|
||||||
</BuildActionEntry>
|
|
||||||
<BuildActionEntry
|
|
||||||
buildForTesting = "YES"
|
|
||||||
buildForRunning = "YES"
|
|
||||||
buildForProfiling = "YES"
|
|
||||||
buildForArchiving = "YES"
|
|
||||||
buildForAnalyzing = "YES">
|
|
||||||
<BuildableReference
|
|
||||||
BuildableIdentifier = "primary"
|
|
||||||
BlueprintIdentifier = "03E6D08B1CCE122A00D73982"
|
|
||||||
BuildableName = "rpc-publisher"
|
|
||||||
BlueprintName = "rpc-publisher"
|
|
||||||
ReferencedContainer = "container:vdds-xcode.xcodeproj">
|
|
||||||
</BuildableReference>
|
|
||||||
</BuildActionEntry>
|
|
||||||
<BuildActionEntry
|
|
||||||
buildForTesting = "YES"
|
|
||||||
buildForRunning = "YES"
|
|
||||||
buildForProfiling = "YES"
|
|
||||||
buildForArchiving = "YES"
|
|
||||||
buildForAnalyzing = "YES">
|
|
||||||
<BuildableReference
|
|
||||||
BuildableIdentifier = "primary"
|
|
||||||
BlueprintIdentifier = "03E6D0961CCE123000D73982"
|
|
||||||
BuildableName = "rpc-subscriber"
|
|
||||||
BlueprintName = "rpc-subscriber"
|
|
||||||
ReferencedContainer = "container:vdds-xcode.xcodeproj">
|
|
||||||
</BuildableReference>
|
|
||||||
</BuildActionEntry>
|
|
||||||
<BuildActionEntry
|
|
||||||
buildForTesting = "YES"
|
|
||||||
buildForRunning = "YES"
|
|
||||||
buildForProfiling = "YES"
|
|
||||||
buildForArchiving = "YES"
|
|
||||||
buildForAnalyzing = "YES">
|
|
||||||
<BuildableReference
|
|
||||||
BuildableIdentifier = "primary"
|
|
||||||
BlueprintIdentifier = "03E6D06A1CCE121A00D73982"
|
|
||||||
BuildableName = "subscriber"
|
|
||||||
BlueprintName = "subscriber"
|
|
||||||
ReferencedContainer = "container:vdds-xcode.xcodeproj">
|
|
||||||
</BuildableReference>
|
|
||||||
</BuildActionEntry>
|
|
||||||
<BuildActionEntry
|
|
||||||
buildForTesting = "YES"
|
|
||||||
buildForRunning = "YES"
|
|
||||||
buildForProfiling = "YES"
|
|
||||||
buildForArchiving = "YES"
|
|
||||||
buildForAnalyzing = "YES">
|
|
||||||
<BuildableReference
|
|
||||||
BuildableIdentifier = "primary"
|
|
||||||
BlueprintIdentifier = "03E6D0521CCE116900D73982"
|
|
||||||
BuildableName = "vdds-server"
|
|
||||||
BlueprintName = "vdds-server"
|
|
||||||
ReferencedContainer = "container:vdds-xcode.xcodeproj">
|
|
||||||
</BuildableReference>
|
|
||||||
</BuildActionEntry>
|
|
||||||
<BuildActionEntry
|
|
||||||
buildForTesting = "YES"
|
|
||||||
buildForRunning = "YES"
|
|
||||||
buildForProfiling = "YES"
|
|
||||||
buildForArchiving = "YES"
|
|
||||||
buildForAnalyzing = "YES">
|
|
||||||
<BuildableReference
|
|
||||||
BuildableIdentifier = "primary"
|
|
||||||
BlueprintIdentifier = "03C96E9B1CCE5B8D0012F15D"
|
|
||||||
BuildableName = "vdds-server2"
|
|
||||||
BlueprintName = "vdds-server2"
|
|
||||||
ReferencedContainer = "container:vdds-xcode.xcodeproj">
|
|
||||||
</BuildableReference>
|
|
||||||
</BuildActionEntry>
|
|
||||||
<BuildActionEntry
|
|
||||||
buildForTesting = "YES"
|
|
||||||
buildForRunning = "YES"
|
|
||||||
buildForProfiling = "YES"
|
|
||||||
buildForArchiving = "YES"
|
|
||||||
buildForAnalyzing = "YES">
|
|
||||||
<BuildableReference
|
|
||||||
BuildableIdentifier = "primary"
|
|
||||||
BlueprintIdentifier = "0335203D1CEDD22A003E7429"
|
|
||||||
BuildableName = "rpc-pingpong"
|
|
||||||
BlueprintName = "rpc-pingpong"
|
|
||||||
ReferencedContainer = "container:vdds-xcode.xcodeproj">
|
|
||||||
</BuildableReference>
|
|
||||||
</BuildActionEntry>
|
|
||||||
<BuildActionEntry
|
|
||||||
buildForTesting = "YES"
|
|
||||||
buildForRunning = "YES"
|
|
||||||
buildForProfiling = "YES"
|
|
||||||
buildForArchiving = "YES"
|
|
||||||
buildForAnalyzing = "YES">
|
|
||||||
<BuildableReference
|
|
||||||
BuildableIdentifier = "primary"
|
|
||||||
BlueprintIdentifier = "036D25831DF15EB9009A18C5"
|
|
||||||
BuildableName = "ddpingpong"
|
|
||||||
BlueprintName = "ddpingpong"
|
|
||||||
ReferencedContainer = "container:vdds-xcode.xcodeproj">
|
|
||||||
</BuildableReference>
|
|
||||||
</BuildActionEntry>
|
|
||||||
</BuildActionEntries>
|
|
||||||
</BuildAction>
|
|
||||||
<TestAction
|
|
||||||
buildConfiguration = "Debug"
|
|
||||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
|
||||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
|
||||||
shouldUseLaunchSchemeArgsEnv = "YES">
|
|
||||||
<Testables>
|
|
||||||
</Testables>
|
|
||||||
<MacroExpansion>
|
|
||||||
<BuildableReference
|
|
||||||
BuildableIdentifier = "primary"
|
|
||||||
BlueprintIdentifier = "03E6CEA81CCE0CA400D73982"
|
|
||||||
BuildableName = "libvdds.dylib"
|
|
||||||
BlueprintName = "vdds"
|
|
||||||
ReferencedContainer = "container:vdds-xcode.xcodeproj">
|
|
||||||
</BuildableReference>
|
|
||||||
</MacroExpansion>
|
|
||||||
<AdditionalOptions>
|
|
||||||
</AdditionalOptions>
|
|
||||||
</TestAction>
|
|
||||||
<LaunchAction
|
|
||||||
buildConfiguration = "Debug"
|
|
||||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
|
||||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
|
||||||
launchStyle = "0"
|
|
||||||
useCustomWorkingDirectory = "NO"
|
|
||||||
ignoresPersistentStateOnLaunch = "NO"
|
|
||||||
debugDocumentVersioning = "YES"
|
|
||||||
debugServiceExtension = "internal"
|
|
||||||
allowLocationSimulation = "YES">
|
|
||||||
<MacroExpansion>
|
|
||||||
<BuildableReference
|
|
||||||
BuildableIdentifier = "primary"
|
|
||||||
BlueprintIdentifier = "03E6CEA81CCE0CA400D73982"
|
|
||||||
BuildableName = "libvdds.dylib"
|
|
||||||
BlueprintName = "vdds"
|
|
||||||
ReferencedContainer = "container:vdds-xcode.xcodeproj">
|
|
||||||
</BuildableReference>
|
|
||||||
</MacroExpansion>
|
|
||||||
<AdditionalOptions>
|
|
||||||
</AdditionalOptions>
|
|
||||||
</LaunchAction>
|
|
||||||
<ProfileAction
|
|
||||||
buildConfiguration = "Release"
|
|
||||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
|
||||||
savedToolIdentifier = ""
|
|
||||||
useCustomWorkingDirectory = "NO"
|
|
||||||
debugDocumentVersioning = "YES">
|
|
||||||
<MacroExpansion>
|
|
||||||
<BuildableReference
|
|
||||||
BuildableIdentifier = "primary"
|
|
||||||
BlueprintIdentifier = "03E6CEA81CCE0CA400D73982"
|
|
||||||
BuildableName = "libvdds.dylib"
|
|
||||||
BlueprintName = "vdds"
|
|
||||||
ReferencedContainer = "container:vdds-xcode.xcodeproj">
|
|
||||||
</BuildableReference>
|
|
||||||
</MacroExpansion>
|
|
||||||
</ProfileAction>
|
|
||||||
<AnalyzeAction
|
|
||||||
buildConfiguration = "Debug">
|
|
||||||
</AnalyzeAction>
|
|
||||||
<ArchiveAction
|
|
||||||
buildConfiguration = "Release"
|
|
||||||
revealArchiveInOrganizer = "YES">
|
|
||||||
</ArchiveAction>
|
|
||||||
</Scheme>
|
|
|
@ -1,80 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<Scheme
|
|
||||||
LastUpgradeVersion = "0810"
|
|
||||||
version = "1.3">
|
|
||||||
<BuildAction
|
|
||||||
parallelizeBuildables = "YES"
|
|
||||||
buildImplicitDependencies = "YES">
|
|
||||||
<BuildActionEntries>
|
|
||||||
<BuildActionEntry
|
|
||||||
buildForTesting = "YES"
|
|
||||||
buildForRunning = "YES"
|
|
||||||
buildForProfiling = "YES"
|
|
||||||
buildForArchiving = "YES"
|
|
||||||
buildForAnalyzing = "YES">
|
|
||||||
<BuildableReference
|
|
||||||
BuildableIdentifier = "primary"
|
|
||||||
BlueprintIdentifier = "03E6CEA81CCE0CA400D73982"
|
|
||||||
BuildableName = "libvdds.dylib"
|
|
||||||
BlueprintName = "vdds"
|
|
||||||
ReferencedContainer = "container:vdds-xcode.xcodeproj">
|
|
||||||
</BuildableReference>
|
|
||||||
</BuildActionEntry>
|
|
||||||
</BuildActionEntries>
|
|
||||||
</BuildAction>
|
|
||||||
<TestAction
|
|
||||||
buildConfiguration = "Debug"
|
|
||||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
|
||||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
|
||||||
shouldUseLaunchSchemeArgsEnv = "YES">
|
|
||||||
<Testables>
|
|
||||||
</Testables>
|
|
||||||
<AdditionalOptions>
|
|
||||||
</AdditionalOptions>
|
|
||||||
</TestAction>
|
|
||||||
<LaunchAction
|
|
||||||
buildConfiguration = "Debug"
|
|
||||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
|
||||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
|
||||||
launchStyle = "0"
|
|
||||||
useCustomWorkingDirectory = "NO"
|
|
||||||
ignoresPersistentStateOnLaunch = "NO"
|
|
||||||
debugDocumentVersioning = "YES"
|
|
||||||
debugServiceExtension = "internal"
|
|
||||||
allowLocationSimulation = "YES">
|
|
||||||
<MacroExpansion>
|
|
||||||
<BuildableReference
|
|
||||||
BuildableIdentifier = "primary"
|
|
||||||
BlueprintIdentifier = "03E6CEA81CCE0CA400D73982"
|
|
||||||
BuildableName = "libvdds.dylib"
|
|
||||||
BlueprintName = "vdds"
|
|
||||||
ReferencedContainer = "container:vdds-xcode.xcodeproj">
|
|
||||||
</BuildableReference>
|
|
||||||
</MacroExpansion>
|
|
||||||
<AdditionalOptions>
|
|
||||||
</AdditionalOptions>
|
|
||||||
</LaunchAction>
|
|
||||||
<ProfileAction
|
|
||||||
buildConfiguration = "Release"
|
|
||||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
|
||||||
savedToolIdentifier = ""
|
|
||||||
useCustomWorkingDirectory = "NO"
|
|
||||||
debugDocumentVersioning = "YES">
|
|
||||||
<MacroExpansion>
|
|
||||||
<BuildableReference
|
|
||||||
BuildableIdentifier = "primary"
|
|
||||||
BlueprintIdentifier = "03E6CEA81CCE0CA400D73982"
|
|
||||||
BuildableName = "libvdds.dylib"
|
|
||||||
BlueprintName = "vdds"
|
|
||||||
ReferencedContainer = "container:vdds-xcode.xcodeproj">
|
|
||||||
</BuildableReference>
|
|
||||||
</MacroExpansion>
|
|
||||||
</ProfileAction>
|
|
||||||
<AnalyzeAction
|
|
||||||
buildConfiguration = "Debug">
|
|
||||||
</AnalyzeAction>
|
|
||||||
<ArchiveAction
|
|
||||||
buildConfiguration = "Release"
|
|
||||||
revealArchiveInOrganizer = "YES">
|
|
||||||
</ArchiveAction>
|
|
||||||
</Scheme>
|
|
|
@ -1,162 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
||||||
<plist version="1.0">
|
|
||||||
<dict>
|
|
||||||
<key>SchemeUserState</key>
|
|
||||||
<dict>
|
|
||||||
<key>ddpingpong.xcscheme_^#shared#^_</key>
|
|
||||||
<dict>
|
|
||||||
<key>orderHint</key>
|
|
||||||
<integer>14</integer>
|
|
||||||
</dict>
|
|
||||||
<key>ping.xcscheme_^#shared#^_</key>
|
|
||||||
<dict>
|
|
||||||
<key>orderHint</key>
|
|
||||||
<integer>6</integer>
|
|
||||||
</dict>
|
|
||||||
<key>pong.xcscheme_^#shared#^_</key>
|
|
||||||
<dict>
|
|
||||||
<key>orderHint</key>
|
|
||||||
<integer>7</integer>
|
|
||||||
</dict>
|
|
||||||
<key>publisher.xcscheme_^#shared#^_</key>
|
|
||||||
<dict>
|
|
||||||
<key>orderHint</key>
|
|
||||||
<integer>4</integer>
|
|
||||||
</dict>
|
|
||||||
<key>rpc-ping.xcscheme_^#shared#^_</key>
|
|
||||||
<dict>
|
|
||||||
<key>orderHint</key>
|
|
||||||
<integer>10</integer>
|
|
||||||
</dict>
|
|
||||||
<key>rpc-pingpong.xcscheme_^#shared#^_</key>
|
|
||||||
<dict>
|
|
||||||
<key>orderHint</key>
|
|
||||||
<integer>13</integer>
|
|
||||||
</dict>
|
|
||||||
<key>rpc-pong.xcscheme_^#shared#^_</key>
|
|
||||||
<dict>
|
|
||||||
<key>orderHint</key>
|
|
||||||
<integer>11</integer>
|
|
||||||
</dict>
|
|
||||||
<key>rpc-publisher.xcscheme_^#shared#^_</key>
|
|
||||||
<dict>
|
|
||||||
<key>orderHint</key>
|
|
||||||
<integer>8</integer>
|
|
||||||
</dict>
|
|
||||||
<key>rpc-subscriber.xcscheme_^#shared#^_</key>
|
|
||||||
<dict>
|
|
||||||
<key>orderHint</key>
|
|
||||||
<integer>9</integer>
|
|
||||||
</dict>
|
|
||||||
<key>subscriber.xcscheme_^#shared#^_</key>
|
|
||||||
<dict>
|
|
||||||
<key>orderHint</key>
|
|
||||||
<integer>5</integer>
|
|
||||||
</dict>
|
|
||||||
<key>vdds-server.xcscheme_^#shared#^_</key>
|
|
||||||
<dict>
|
|
||||||
<key>orderHint</key>
|
|
||||||
<integer>3</integer>
|
|
||||||
</dict>
|
|
||||||
<key>vdds-server2.xcscheme_^#shared#^_</key>
|
|
||||||
<dict>
|
|
||||||
<key>orderHint</key>
|
|
||||||
<integer>12</integer>
|
|
||||||
</dict>
|
|
||||||
<key>vdds-stubs.xcscheme_^#shared#^_</key>
|
|
||||||
<dict>
|
|
||||||
<key>orderHint</key>
|
|
||||||
<integer>2</integer>
|
|
||||||
</dict>
|
|
||||||
<key>vdds-xcode.xcscheme_^#shared#^_</key>
|
|
||||||
<dict>
|
|
||||||
<key>orderHint</key>
|
|
||||||
<integer>0</integer>
|
|
||||||
</dict>
|
|
||||||
<key>vdds.xcscheme_^#shared#^_</key>
|
|
||||||
<dict>
|
|
||||||
<key>orderHint</key>
|
|
||||||
<integer>1</integer>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
<key>SuppressBuildableAutocreation</key>
|
|
||||||
<dict>
|
|
||||||
<key>0335203D1CEDD22A003E7429</key>
|
|
||||||
<dict>
|
|
||||||
<key>primary</key>
|
|
||||||
<true/>
|
|
||||||
</dict>
|
|
||||||
<key>036D25831DF15EB9009A18C5</key>
|
|
||||||
<dict>
|
|
||||||
<key>primary</key>
|
|
||||||
<true/>
|
|
||||||
</dict>
|
|
||||||
<key>03C96E9B1CCE5B8D0012F15D</key>
|
|
||||||
<dict>
|
|
||||||
<key>primary</key>
|
|
||||||
<true/>
|
|
||||||
</dict>
|
|
||||||
<key>03E6CE9D1CCE0C6B00D73982</key>
|
|
||||||
<dict>
|
|
||||||
<key>primary</key>
|
|
||||||
<true/>
|
|
||||||
</dict>
|
|
||||||
<key>03E6CEA81CCE0CA400D73982</key>
|
|
||||||
<dict>
|
|
||||||
<key>primary</key>
|
|
||||||
<true/>
|
|
||||||
</dict>
|
|
||||||
<key>03E6CEB01CCE0CCC00D73982</key>
|
|
||||||
<dict>
|
|
||||||
<key>primary</key>
|
|
||||||
<true/>
|
|
||||||
</dict>
|
|
||||||
<key>03E6D0521CCE116900D73982</key>
|
|
||||||
<dict>
|
|
||||||
<key>primary</key>
|
|
||||||
<true/>
|
|
||||||
</dict>
|
|
||||||
<key>03E6D05F1CCE121300D73982</key>
|
|
||||||
<dict>
|
|
||||||
<key>primary</key>
|
|
||||||
<true/>
|
|
||||||
</dict>
|
|
||||||
<key>03E6D06A1CCE121A00D73982</key>
|
|
||||||
<dict>
|
|
||||||
<key>primary</key>
|
|
||||||
<true/>
|
|
||||||
</dict>
|
|
||||||
<key>03E6D0751CCE121F00D73982</key>
|
|
||||||
<dict>
|
|
||||||
<key>primary</key>
|
|
||||||
<true/>
|
|
||||||
</dict>
|
|
||||||
<key>03E6D0801CCE122400D73982</key>
|
|
||||||
<dict>
|
|
||||||
<key>primary</key>
|
|
||||||
<true/>
|
|
||||||
</dict>
|
|
||||||
<key>03E6D08B1CCE122A00D73982</key>
|
|
||||||
<dict>
|
|
||||||
<key>primary</key>
|
|
||||||
<true/>
|
|
||||||
</dict>
|
|
||||||
<key>03E6D0961CCE123000D73982</key>
|
|
||||||
<dict>
|
|
||||||
<key>primary</key>
|
|
||||||
<true/>
|
|
||||||
</dict>
|
|
||||||
<key>03E6D0A11CCE123500D73982</key>
|
|
||||||
<dict>
|
|
||||||
<key>primary</key>
|
|
||||||
<true/>
|
|
||||||
</dict>
|
|
||||||
<key>03E6D0AC1CCE123A00D73982</key>
|
|
||||||
<dict>
|
|
||||||
<key>primary</key>
|
|
||||||
<true/>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
</plist>
|
|
Loading…
Add table
Add a link
Reference in a new issue