From 4e46c0ea870631bb5bec3e4aa9fd7eebf3db21f0 Mon Sep 17 00:00:00 2001 From: Nir Sonnenschein Date: Thu, 20 Oct 2016 19:16:49 +0300 Subject: [PATCH] Description: changes for PAL R1.0 Modules: ALL --- Docs/PAL.chm | Bin 435696 -> 435134 bytes .../{R0.8-release.md => R1.0-release.md} | 10 +- .../d1/dee/pal__rtos__test__utils_8c.html | 14 - Docs/html/d2/d87/pal__configuration_8h.html | 4 +- .../d2/d87/pal__configuration_8h_source.html | 2 +- Docs/html/d3/dfb/pal__plat__network_8cpp.html | 6 +- Docs/html/d4/d01/pal__rtos_8h.html | 11 +- Docs/html/d4/d01/pal__rtos_8h_source.html | 2 +- Docs/html/d4/dc5/pal__plat__rtos_8c.html | 50 +- Docs/html/d5/d2a/pal__socket__test_8c.html | 1 + Docs/html/d5/d59/pal__plat__rtos_8h.html | 59 +- .../d5/d59/pal__plat__rtos_8h_source.html | 70 +- .../d8/d5f/pal__socket__test__utils_8cpp.html | 4 +- Docs/html/d9/d16/pal_8h_source.html | 2 +- Docs/html/d9/d17/pal__network_8h.html | 12 +- Docs/html/d9/d17/pal__network_8h_source.html | 2 +- .../d9/d28/pal__rtos__test__utils_8h.html | 14 + .../d28/pal__rtos__test__utils_8h_source.html | 50 +- .../d9/d2c/pal__plat__network_8h_source.html | 26 +- Docs/html/da/dfe/pal__errors_8h_source.html | 2 +- Docs/html/db/dcf/pal__macros_8h.html | 18 +- Docs/html/db/dcf/pal__macros_8h_source.html | 2 +- Docs/html/de/d33/pal__rtos_8c.html | 11 +- Docs/html/globals_defs.html | 13 +- Docs/html/globals_g.html | 11 +- Docs/html/globals_p.html | 10 +- Docs/html/globals_t.html | 19 +- Docs/html/globals_vars.html | 7 - Docs/html/index.hhc | 14 +- Docs/html/index.hhk | 28 +- Jenkinsfile | 2 +- README.md | 2 +- .../PAL-Impl/Modules/Networking/pal_network.c | 458 +++--- Source/PAL-Impl/Modules/RTOS/pal_rtos.c | 276 ++-- Source/PAL-Impl/Services-API/pal.h | 10 +- .../PAL-Impl/Services-API/pal_configuration.h | 50 +- Source/PAL-Impl/Services-API/pal_errors.h | 130 +- Source/PAL-Impl/Services-API/pal_macros.h | 32 +- Source/PAL-Impl/Services-API/pal_network.h | 44 +- Source/PAL-Impl/Services-API/pal_rtos.h | 82 +- Source/PAL-Impl/pal_init.c | 78 +- Source/Port/Platform-API/pal_plat_network.h | 2 +- Source/Port/Platform-API/pal_plat_rtos.h | 64 +- .../mbedOS/Networking/pal_plat_network.cpp | 1056 ++++++------- .../mbedOS/RTOS/pal_plat_rtos.c | 1408 ++++++++--------- Test/BUILD_TEST_mbedOS.mk | 10 +- Test/Common/pal_rtos_test_utils.c | 258 +-- Test/Common/pal_rtos_test_utils.h | 21 +- Test/Common/pal_socket_test_utils.cpp | 28 +- Test/Unitest/pal_rtos_test.c | 14 +- Test/Unitest/pal_rtos_test_runner.c | 2 +- Test/Unitest/pal_socket_test.c | 622 ++++---- Test/Unitest/pal_socket_test_main_mbedOS.cpp | 10 +- Test/Unitest/pal_socket_test_runner.c | 18 +- Test/makefile | 2 +- 55 files changed, 2568 insertions(+), 2585 deletions(-) rename Docs/ReleaseNotes/{R0.8-release.md => R1.0-release.md} (82%) diff --git a/Docs/PAL.chm b/Docs/PAL.chm index 78afb88e1f5afd9cd4b2b642d55de67e7f030e69..01f1cc2d898876c26308dd371aa8fa82127e71dc 100644 GIT binary patch literal 435134 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%0DBfx)BCtf{cSe*TR291psi)#AJJ+B@%{j$*6(9m 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�)JEbE92W3xazaJd;cZlCKGVJUi}9->?4!DA7%&a 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 z z#%9BPTcmL!X$~^~{qrg0wipvEal&1nDD@R*yI4!+{Itw?&CoeLD$Y8*mhVO?cVFMH zc$mES+T^=c)lc?O1@uRy0bWVwEMZe(Yhw(pvbCX@IJSn-I_B0ADeRUhcn)|h1;I-` z4{p7_2(K32@Xj^)N^Ng?8oNjl>b6i=V;i_B^5K@3PhgxvL!-Rw(d~deAj2<;iM%wn zE6%KOSQeF0(;Ufn(ucYGO@g>go`L+%-Q#lz!WCNyhz^UTxt+lu+57c!n2VLtZGMTp zOzRM35~(X{Y+|A& zMwyMY9iJB^^)_n@e$c6{=Jk}X&YT|KPv=OHUqi?At(()a#QXH%9Sz=uP0gqRgF*>R z48O>9;Xte>A%`6;u-Iu^)`7$^wx&_t zWVYXcREo&{0j^ZkPL2fOE;K^Xwf)I<;24V?-SqG=`L{Ek2h5rd>jAvPD2!~)vN!Q; z^OuUgCd|?@dzo_av`NUWJrsF0k}$buv~DcU=O(WI9-ULAT1=&gi9~mgx>3lY;h{rJ zditr0lP#gt2rd;f>&wt_VJ39_pw)*$wCi>nBQ@f*N4}_@at(F!KR#~o-!GzVb?`A1 zR+v;s`|(x^r`nk;55ooY;5#+eas|uV4K%4e^YWuP27L00L5UmV7}8ZcdmL_Iu3CGT z)cNZ8%W;ng8vSlk*PtJ#+`W@i0o2vN8T&KM#4zwu^0_V%4@#`Sc^?V~gEmiea`iQ3dfQ42>&5g0tM9#MEGVS+90;M9hsP8*#JUR5xcq1l#k zzx{F>JAR`=i1wX@OF3FcJbXS!wlS1GW&U1GCXD0_)-rQPEvDjtLWvaCKErk{g-k5Br8l?5?_ngZoS zN5V>-?!%o6-%N*3X(F)T`1Ftb_Rg|02P;6r!AOw+7TvFOZ^ zD3$M4U3(7t+1~ub3uDG<+rZ?xoA}JVMOLrhw1#4oMBFOin!6bXLyL2@F5&acN6{55 z7GZX^6D1z_ifmb$GrDi&=;uctJbCs#R+p!y)suS4LC-Diaet#jZ^~m7WBsg0Ebmf% z{BHPql?odox4-Do*EkQ=H`#l}TE8(d=T=poXgceCF@As3>-}9^0_~&3z0e@abWsM! zaQ(PNKKU&9eu2?fa#qg4y(Lq!Syt;4{)XQlEaT0$Wv+he1 z?;)q$s{MhzEFLE4lBce9CIxE99*r-7Uoe5*K0-156p4}+5i&c_=B>yPFlzqw1@+@c zhOwl_-}TFl#@xQo@G{|xE}Rh`35Y%Y9+vWHsG3!?mUGLn%;f%OO55*jaTd0}bj6eN zY>7Us*KlU1xHj!oyl9<1zztTrU||{mV61$DMG5vp|48HR?$4sm)amL3`OP#>1@|ZV zYs~eM0u)lNXA%-}ZN$YL$NKB=lpxXzIJWp!g52I~z~mr_zipJvDnisj4qdA2FXbCBKTXw%E!r z(G=z!Ou|0Q?tGw2E1`k$)Fpz>IzE>nL>PZywOdpz={uPsdv6)xGh}DT_B6xbMcxb@ zE{nj8DE}~*`;pnOsCdnK!^#S_ps??3uXjc)*+=ikVzHF+pGH`JSZ1ym=%~7oH>fRA zG~+^ZV4|xP`u51fjP8Ipi1K_#@7K!vZPK5&w3g<+@&B-WWA>gn*Xn@Q)RmDIiQq@X z%^X&e+K#%{NI&9Ii30=79%<4qJ7dZA5hUX82J^IFH7X|PFu{F%KoaBP-F+>}`f*ek zP0px~=;C)=oPUy_7fhYr#&bgxIWcPXGuv7Ge3D29TMrF>|IkqymA5x#owj>#b^4y& z5e6oT_(|(YfU-t^03G$67hkH(UvLFAuV7$_;UmnKIU@`y!Y zhi&s&tlb^- zR$x=+)}p#W=$P!n@XnR|Mpj9%l{`9$$l(IlLvt$Msh=ox7Y>3SGONV1nIFXKhJ}ck zvz*APb450X#EPqv4V@Nf)}0!U4zhd}(!t6$$r6lDP2-(#$9)ZMQbXE!v(q^v!8vX$ zNoY5M>~CM`z0ZlWFaGIK|3ENVrhZi7ZmzS`7NTcGt(& zXLWYP=GmLCLt6K(`uTz#c=!)okR}p~f8l0r#}xJrbTUyyX(4M?>SN59B^XE#hy(JYH-b0I@{gNTS~+_ zI8n&o5o|55MZ#{^QVnR<49amTkAE{IU-)jieE#%nV=4!={HkpE5ACO91vWT?n-3N_ z2A_K$2fwXcNbIeme`(QEZXJAIE#tfNv7yz-*8?u}lLjh6^n1SyXUh^(1?F=~7DuMC z%Pn>d%3d$C#eEz&g%MHWTG>)j#K|^BE9^Qr6^7NBmO%80nHcxAZ@;oNX_ax_e7DMt z`*>nWvQBO0P61u3hnb;L`MVb=Gu6mVV`m?mOi9G;jdLgCsGB1`?fney8lg*)E**IG z8ueLr_Pqgn+_crw_e>g*%K?s>AyXIW(gt!gc>c z_RnC5I__)B1fMrk;^AB&Ek7P5^-_y?AI@mIm*CIPlpfCqMkM|W$#`Jsy>@_K+F8uh z*wf1z?la@dIQ><5&@qZ;3Zq}m75ZxxW#%1&&&tV7D;WhS0ZsE=Z~2=Yop&FIsJHwW zebTAgK~rO*=ttw-&^PJEF|m4+Uw2~iCY9#4vY^rZ!^l28`GijEiD`+$Eh})q@xbe~Ff(q(+QxwCIGrQI z^{=a|?hQR3N8?m5jMl+!i#3uGp~_lxuBckqzXi?Du(SLvQ5I-II0vDLDow_3~j<-nZZ0YWO)~ShnMO7>YcYe%e@vHY*Z7 zhw^4gF?Z}S*_@PWs8TB(z1Zpt+UJ(F;_VeUOm?EP=BO-U(IoAWtsNWlsI)1&XESJN z%fmO0;nSLP($Dkn?d6`nMV&@_3Kkn>)+>9QZ)7y|Gt_&OoEn4Qcc8@* zj!>x#4{SZ!*rET@OlT=$#ThwE+a|sqSs2^ZAbFzDZU`e|M7KRm zae~FXcF)OKM`vU2JO%<@uKjApMfdYH>nC6FTVbb3MgkhQqxKD3oMy!>?yWawN3cMI z$rBaaGA%2$zZ?+g;+A>oSafzpx8|gSmM*_lf(GK}*AWJR9_alj#CbEp(uV2uu;N_~ zPAtOeo}rtsm(hlVLh89&qxOMBFvtm%7GSmdmYnR~Nf36BM@zPz=h7L7_V#HH zhwH(^fYs>(H-iT)zZN;E@cNUMMgs=hIbZOjZM7To_z!gF_bh(BzxiH|$^YTr)39$j z=*|II*iY|l{uq8s?!E#mg1}c`Hn6YX;*;8c_>A;!zy4-^_7p{>`yhzqKD(T#k=Ol2 z#Yl^_wbQRui>1TL(#p5iVr_YE8a-hu$hAcZ@$6&3APfqkpZkB(rIr>#b< z*M<9nm{-aAD`c6Gz$(EU%XYD>g~l1nTO>~(j7T9=XZl8TqID>xDoInpsGdecM ztYc0)2ww0W$~D>v!9pWgw4AaGGWaH`{c``UfBn%)1Oo%dW`)Tf^y_A6M4nWiJaPOq z$}A%vzsJedsbIBUJEpsH6C{LtJRVZi-iX z^JiLUp^zx~qPd9S`j`8_|LxoQQ|~Upi@bP6$~=2?H^EkiK!}GJE%H#=qujW=E4gJu z9ES^qlnY4T$hq^zk|spA4_>W7b`p*p$mm($X^~Y7_STtqAe~9!e$30t)J@#NEJaC) z`C`qYs7IQHUH?wX=l~cfO}N+(3^fF+pK$?d`0-*C|-j zv8s~6k$Q|f|0u7!g}Enz6S>p=%hyziSmn(nn+{ycs$a>aHr`Jn@4(j&+~*q|Ki`$Z ziOw1!nct4X2IrcSckE+%qhy*Fq>8+ub^JEx&{aQaL(DCpZKy&K{hUcBRPWQ{zHr@d zi>AVHRG*w*8DfG}Q51iQA*)n$7v4X}eNhf3#zC*lq@r#UP*(S7Uy-kEA0%cCCzMu; z;SONrq766L*&y<^9>k~lP@Oku1bc6_I?w(>R}1HJ9(UnEkn?8e6LYa|fwoK?lcQ5y z7Dh%b=6NlTO&+@&jB*S5)1=18j=M;eGzv-_w4i4`H@CmbjpG;_r&s$He~Uqzt{pqF zOt5V^UL?pM`rJqStF+O5$-OM)#=%9BgO%q-I&Yn3#_l(IJY!M z8$z7m-<>RnLo8kh-H0((H4~Epy-DGN$a?wS6*r53%YM)y%52H?^^?Ss>nq_LWEk*j zN+A&Ggg^2M;oNW>?T9?9(O>70qs-=9KXZ*1FtJr?zg(Ju_sK{I=t>nCY17rpJb z)Y*ntlRKivXu83QAvyOl2JqNDh2ILDQWtsJP9j@(RrJj-Sy)P%j}}!phqEoz^Dy5` zG=KboM#CF42K0q~3@&7Q4xJ%%KIaIpZtz>M)B6XYbkiUf!G8uAuq@`zrH+tWLSRM-D30m{!(Azd&xB za_CJzGt3pnj7uiHJ6PbUgAa(Egac6Xw;T^W*$oPWtaGhU(j`fY@-jE&lece`S86w& znmiEIsSm7N^dV!G-~lVg!!nc1l{hy^NmBw}p3~8Mv2Rqxk$W^};)2)F(q7b>)I5GQ6-`=8@^d=|-0{>UTQ$+9*Ip!O zeVt+HF`o}1nT?v~M3&)qd76qt*Gj*=v^T{kdPd<46c36<)wl^IS*d+{WJ=6!nd?3! zKY+T`XNcZ?K*Uf<;3~q_!!TDYE_M3V@#GeB_y~n9InPJuF>bQ^l0?$tgjPX2RXH_^ z&hVM|*$@4_5K%T;~HR2I=X>Bl;)2O|J)k`2-WcNRTdub(g6@G2GQf&$`sg zSMpHE2{N_Tr4=W;V4lc7pUwKX#$-!z9GaY0_NyG-rfN~%RI8+<@p$KhesrGutLnqa zqX&08xFd6fiM|Sa;_rcPevQHE7VSUYDF1spB(UKxqzI$UrmkEjddH3Vys14D%T%->x zY>G}{dH%y5Twn55`rRQ|CePf}%b1nYUqW9jDiTuZ2t1R?a@PW*I8}fD#%CfJo7Y|n zUATJ@=W|<)hqvwYqSRSV?x#5sIecrT$d-p!2}`eQAeSJGGujmQTOB2xRUMzU)4mIj zg2U{oGKGyja&l(3r%w2Wu152jljfXiy2%WmV}X3&!zv163SaeKX_93y#oZk?`@R@2 zLUK;@aLRtu`%m)RNWX4!;6Ep{|KwYmMJy=n?6|9myYGJL;5 zcF-NEGc&s`fX1CCVDU}c*?2fIoeowJh{+{aX48HZlUA3p}#|$L}d;LCKPRCum5o!cpx66t&_CdnvG3Rcl2MO8y84JwT z-+f%xZVEJkm@8L(rL3(pk!-$ereT_UHOYz#r=&1*-LE*eblfl2i+LmZvY%4YW#Sch z1vFi^_limXT(Bff^?Bo@VM#S)ipp`Q2-2KXJIDWiSLf^0rv?2+%<$Ckl1T@xcT212 zmZnU`nbS)JHzi&=3*&VjdN#^ZiALXBpk@$B-+!w=E%c zoH4LbMNvVOzoRkyIX_pzVTuHMzc9(-*r7Sx$~z~S#TBihnpptp2{ikN?Z%0X9omN1 zjKi_{9x~2To?%+d12kV(`{#|%-;i(pLQyC+a5f`bJj{Z-%2g|Y&EA!)bA4`EcQ>Ve zCs-?TKNtJLBE`S8gdSd|pxqZ}J6dxRk$EQ1-e*SrOO zDmy9pE=MZQyzJ9@_EtrYy}cHD>X}g0hxtkIH%}Nic5XZ=U_6L%h|FB-#21lOTsP&a zkKwRuflBuKX zXv$0eLpfPn19u;IYl0)aH4f{6fS^jN`|Gb>o{zjy$z%tu^+%kV-{z~XuwsgRo{`&7 z*E@@rO|u4@^xk~`Kh%V1p=u2zK@*Y&f6;o9EPG?tWBJop-pnr-Ad{4GtXJ9dYzeu83%h)LghGpCUm^=0Rkyxnwtzd zu9I#%XM&G0WJ+X^1+>${hTb-eGUFMBbSO8Z{LNH(5*7e5`z5hy9yK$481Y8?1JN zFfyt3zyt9QfzQ<)d6J{Mpr;3wxvIAY9>1%YkFV}5IFD6FcR04*lTj(niN=0R9Ic#6 z&J^J(Y)?Z#rP@?F=zUwXDLNuDbh?iJRwP}ES{jqmBoAXmf|t&or+uPd`P@5;!7_c! z!{VOygPP+G0qRK1C`pg*3)$~Y9(5F8t-V8Ortcpb_1RmO9zFy!_Pua>U$aprHfrdo z(eyN=JHP4mwjIbR$D!M@40(^;`d7Hgc#+ZGYvRI0vc!mwOUKrgkjjrlwlx_k6I(@< zC)=q(_BZ#{ZxX2N|N1fB{5Vu=CYbZRx@9rikB_IhHtXLB%yO2fcDqxa=60j}n)Ru9 z8sqpbpA-F%a0g#6WhWk^P;paCb=}u)>f5A@55Jqxr-f;9(lf@7;OLLGq(8TSnr_s5T`+MghwJ_^(hxR$S!Yu>8~yZ>pnt1r|H<5V@WoHaU1 zT#&|J>DP+b>G=J=W6PDz_I3f-TvdEqr9@*(CB?}wQ5m+)>G>qY<2_5UqMzLtZ?Ctb z-nIN@!4cI9_R&qdR5sWe5Ux*%s46V&bno z^TjGMzBp}je)aD@IQiPFpFEl!4U(Qei>XP80`EU4YX;e5?j{F13(Pz>sjIGA*sAB3 zbZ!!Z&U+#s4VzW3csX=5iA31Uqr|ei!Ji%A; z)Sr^lF3;esRZ)aedu`Ui`qKwz|1>=3cbh#Khr>Jduv<*}E}J2qa?*~4CWonWvo=fS zNuDI%RG%&$E>4tXs7)omC78-ft5A*KK{`A3(%G(zgXSOXA>XY!xQMPU&10Gt7a6Cb z*A5?GmCxu;NX4V*lgsoV8p>!%fp$!_io?_b+7?raQ2Tdw%rwoU;0uHp9L!G^oV7X`S?O9-&=Z9+mQq`FAS~X2aB+X3V#Fk~;_8R-;-n zOyzNcoml1m9{_JakiQxlzMuRn^u(29$m#T0aQX<5J!z`i_Ed>(oi`mqW{u!@;Wk zSXewbb*&KQNjeiflL;QiVWq!6b<^51O-(mJtTum5OguME$d&V@yjovvvp8vU@eYR) z*csik|D>ExfKmajR)HM5K3oPiD<_JL_{_ZgPs~!qSn5MQ&`T1L%^cz;78neKi`r?v zh?x?qP@(SF#NB)QY#f#^`N~`ty}!h<5X=9{K-5S^RJB|Y`?kw&^agQ4BZ2Lh zbTZo9d!$_(jd)brAZO<}IK=mo624=xSphyv+NJ}!p?3LqDI_eVe!<`RSmGGtVq+kR zDpJ>>OtBx$+`IiNd&!?Y$6qsvY||#HllHuud6sxJb7QI6 zc>lF-balO7tF-H%s`O_MlugIJ4n+1-O%gxNL&DTwX4xgJFuYd=epP&o$qy6)Z6k-1pkquwc6E-hF zVd=qDpc>6K9e2K~u=xqPuk3syW!O#Uwr%FyX2XQd)@a+fY`%gz&R^@piX;3)p}iqx z3hbaUbxhnx2{>`EdgXo(E@!&2 zA6>riUFVI2m;rgEuD-i^b?On;`Q3?JN9@su|Hrl(NUdX{Wr<^uR1l~i#-A^(kxwXN zBCSz(8Xa&HaauL7#IzBUQ;9u8$wETR1Q**`y+-(yN9LmK*RUK?hSpbO?{xj4e()0^ zcuY)-_R(g~&h(uCx+Z3k^|ec}5L9$c@{@yA>*_g7C7nZET$+!#uC;ljHLby^>_)ta z_xs2yf+9qWp03dBdn8DR>ROsfA<{ijt?b^Ddk5g`qM`9a6V>|z-6-4yQrB$m@q5CR zx*ZS~X5y41L}$K|+$eaJUjw?vKb|T_(PiMP`cop9O z&8C=r4)03P&Lgn{XJe)?I_7X5qnV$2Bcpe(#8EYyWAC;@kY$rW~4Aw-3*} zLE^dwut$o~yG3e`{(lh5gci!7`S3h$Y~n@zwo?+evZIJuO_< z?g8QvA{_kUzaO5^1jU|eYYCesrrT%AUutPe z7VH^_WV!^Jw)Q(Yp_(eYdgV?<#E36F5MLef*5UkIe6Jh3izT3%5xFxn9(^ct*D@0_ zqfD!3#)_2Z0l}m+l3`|4AUz+$%<7dTjEDhz&6}r$i}yA-138nL zBCH`}hLb)T=k1xn!xo|zD9q;Hy4U+QA?hy$l^-nK2({)uVqjj}A*X(|yJ%4e*kbou zJi@BYYw|wh23^~TnAD56#ye|eS8^;&MRZ(bcpw}}*@EP-<~CiR-EaB=d2C+?IX+Iv zKk#tx=^#qt@EdI5oJgnj~j$j84?vcDl#z zo*FwgS2Zi*)T)8;B-&Df*=SFgCMZQ2VW43<3SJv!FV48!B!tcAXxl^nCy-X zL3Yqy5(3ZVIchfuXbDu?{J6$JxxUxCb9+=9Nfq1@yR?%3)>hyjBBo&cm_#P7E4xs3tzN85QAh$&Te8s*q)H?-FqM z1D|2yzuqIo5oT|G1NMMhc_&!Bl;E*V7fDC~A zaomK}1Mn@0SHluuG4{XmF5f#pZoS{Jt@YTiwmuawr}X?8Nc<^LjI&9S+hU#rIOVdnb*|N3@2R$m6S7)az6;e^k{uXaAi zGKGqW7QIXtCPf+D;L~;d=KEPsc^9o>4hL9qu)O``O8o@As%P1lyT_sWT$^1b{L25C zXMXU+VqZZ$ee?B2@*8H$O27VJ?MW^z$HxDq3}e3BrwE>Wc-!m0^)HqhD@Dkk>@VNC zu|nGd87?2jooKqc!XZ&rVf^UTvmC(dJOK?ibU**6KI3@ zSGXuE0$DlZ+!45-@{}Vx`2M=Zv)0G{|4AOuq<75fE4B8m7Q#hXfhd#jC+mKuK~aS9 zZ9o5K%YW;w76K`H8W|=p*hPf+qJqr)@zRs3V*Cyh0JD1Zpb0Rz$a?*Hq3Dvx9GbJ^ zaI;C}t5Uqk?q0pUr)qqrJ-cE~ByqB65x2xqkk<=|l*mlA)s=?-nX8sX`SgKrla0sG z^~Z0$5R=9%1s$*N>ehA0m)C?jv&WqRqTAz3gZO?$2+)Wd|Jw%G=X!${PyooN!CYB3 zNl_K3orzhrF*#ITTM$6W{DoSebtPLd5mt!321&9h*SEly30!blzX4Ocm;EWF)KLWc=k{F}5Sa9`uM-a2L zCPB#*mStz04cTeW&^}>c6gUC+VKO(nn*+o`QWsDin7HgmApQ2vYD473m*%#Zxjq~O zdP!F8Z=zOfQ>`TwWkLXXoW?EYD#SCUCckLa0Ez&3=22qorfy{w^J&WZlAgQ^uf|bu zCdc18AdGJDEyg7$iQtt>NZ`EmNd*uP0{{j9Lo);>003T9ohq*a5g)!ho9{=dC=xIi zpl}Q@B9nee-Mv(~YAJpxK9axxk?I2gqLDKi0DuK3$b@xu-%_>-26%+$;pxOac1S}Y zfb4=Tx`9oIjLeZ;iJ$N@3w}Y8>-!0l;QqaYEm%=(#Nu`e6sAGwwd0*aO0mIq?Ua-- zBkOLOKE$#*+!Sa+2lyDq005Z*tC0eL5IaH$rOF14)HVj&*1qPpCHdaBp@ywW;M)a5 z&}wUd39Ptf3X-;-3VxE5cqp;75-Uo4jWhW)lF+ni;gf++R6foBiJj6jW^E48;Y^5KBO1JE2L2mQP?= zzM~|9dn`B-U}kj!O(a=bwh)--aSHg9z?g|1d~z@|QY1-Br85C!t0cwYk57hU;T zWOOhyX`4G-i4jvRX^a!P)Q0_4fL!<#kI9Lnl*-7Zw z1H*d&_Y!;-Dx}O&MDx-F`o<+u*-&uaofjOqfC; zl$=35Noa(k!gXByDZQ-xX_wFw$-2PhB9KLsl7^1qOQbkrmZh}PjD=o;W`G@5~LXSdQy@LU|1VImClf5-q3aC2~KHRzz7) zr|;D7sq@VI-ib|^#KBqd=g&97%kQ70A2v779`ibPh<43K^jCxt;d{E@bz7|Vqpz8j z>yaVT`aPdpNnge;b`D8|&jNu<2Eq{hBn`SEhGTfHlxvD-#l)8oDtWDWZB)siI$J)R?#jJ5XckH3|b6&(gcSOc@ zM{@l1jxk@zp{s@OGzz=EI-Yu_oKfM5+91+Z+Pr7)g=qF-lga6T&z;iAq4PHiE{F*8 z%?@lk$Pitn%V|I{rb3dqU+C_?ACY(DS^st>HXa2A9_|pWatWbSW2d!MrToj%NH6H6 zg?h%yZEP;nHl{O2e5|UiC3u)a*(1YLPBL1m->Y?_gpKuNk$}b9Ka1gV+x^?Fo24{z zaO`qaQmv@Tb_{M--GNxL8%@o*{TwdDCEe+{mQIbt0Pk;z6QYmTZ4#TDIu0!fiS^uc zB&+mfGIEbTR{X|l+!UI(KYad~EwFLSVZXO&R|Sj-xz*p;Qfv(i2ZXI!Bq~~Gs;iLE z&m*M!b#$-VmC$f%A)Djf~l$#KPo+h2WocY(@-@u7OB!I}b$)q}64ob7;?tqHE7 z6{VL!m>~J^iQ$KPXykZjxcE@G%-I|4Tpg7+GwUL3>afz9h!8ZFz>)EGW?6l1j6G4h zD$hhmpSZ406{qsGjSaQK6IHg9lyAc}WW7G>#vUb{d1jVg_H+S(+QgQalq@w-b+fIe z+IUy}E^t@5m9W=xOPQJ#Q8_S5WXlx1gw|>AF6#!4K^0LHO57j=%VHOTGD!Xa<{oLpFD|!?|s-c0JOXYT@Y29#!^<=oMI*LGwJKHI*hgD zE%l?jt>Z{kl1k3ibXg_M?1qa(Dl4g=BU%h?Eo-pRCclcbQf${EV}f^W%42m%>=etx z87NDw>_rdMsdy7=>>3ajt5kQfwDgjlN1r zTQ;&E9p+-7zx(6n`x+i;Yu2!5)wV#cX~WkI<0m|Xk8Z%-T;$yahz(%`8CmQF3lsDy zshku7j7heb4Lm5_-FuhqC4|99=76HB52ZCg=qzhA;ALB&ASK--T_~N)rIEg8War!a zj_hQo%D#kDDXJAlYN-g@IEb4WXRuPDB$mSLMGz<6-ZWC(`n$=RY&on3djR(TgtT`! z{r?4R-|Y4NJj8D~*XCYO{LS*(*9-l>=xdHIUHCK}|9i&f`-1;(B0Jv;`@gU39aXmVGGjgIfYpCH+5L{t_1`(& z2P_S=gaJ~aAh;k9CCub?PC+i|u|M~B$Fsi2syTi$KQ?(eqm?-_#D7=ccv$*U9nMwI;q8HGq-N z{z-FpZ+SX$&i-vx<1NR!ueXvcd|jFBrW9K>>s;2;DdjwwRqbphQxDf1CHQN69OD~| zC(q-h^5R0i>--+fd9hbGZoC_p8w)Fud{+~1IP`n`-0MtU=0)c%%J1$ai3bnph|AlH z&#V7Q{I=@(4(M~^y5*BM%#~65+MY)cu2W^%NzZkOXwMGPhoOX zda}wa_nn%)FZz{z>#23pt>Q=Y{E?Mm1FQE2@sy-Vv+uwMZhv>9Xxjq(OU5#7b*JB+ zh{{^0i{#J$GIdE^SZPB`;RbEL+xj_eAyKwu6xb1WKH8ru%r1VC z^wL#2W?WM0i|Z)(MJTpJ!tdo`nN|99(>FY`hi?n&XpwV0ls)t2^M?n&;S@k@P!-(6 zS83)F#x-JXvVgEUXb)QIABkLJVEtnx<%M66eGf_c`v0H3QL_?lmZe158QYPXTYnhZ zk4=Y5ijI+Fy!295XQWk)C3os*xLwl0^|_iiZJOZP0ja&&aBc?>A4yKk>Sud8sX9XP zsoU<CT8Ds5O|?G<2U@3X))kAIbcRYmVbX&-!D(s`7WnIaum-PHkWRM`04P)sftj zU5dmQanIPS+)JGz<#8{@;-V` zzn4K;#OjmUzEQ*_4|fqn#Tov%XqpyV#Cv?HEwfzEHkykCehE- zNM`R`q=?Ur&dvBQ_V~GA8`=|0sd-HZ5`vw{C*w7~AEr$fU~ReO^wV22YW;rHM_a>y7xecw0EKvh24tNg+3(&5YHgioOG(}Q_5FTdxpYG4 z=FAn>;A?wr)fvigUXj*E3pgM2o4mtyfoL)A=4TU_4z zue~pDt}iyQ)!DhXzcqtiiyu7BC@xcEY}y>E`hx#R_VFm3+VG|z@z)0Z%^JIVs)n|9 zAyX}2h5znFQjT3SP~984uq(47RyB~Vc!y{TgUhp@WsZXiK170J_u_+<BIUZ5-L@3MT6e@nMan2CrtzODrasBH?82c&ITf_uJGk{u?>7Xb-uilE~x& z&51VFMbtF-dn{aS5TqH@gziOwgs&k@Cl_~S(H?Iudrgr`b;1{y` zw02ei0e4SJ&klqN<`te-Ai`Y$!LAi$b5wZrSFNI6Vqj@u26f(2JJj1-<3?$2d*4Zs?EKDc$wqwnC)P1!3QAdC5kj5D#hjGIG0HZQ zCvhKIpGh5(pEwdo9DFvEHy#w%8;LGfFDcIvQNBcI^s` z_1-l>Ji4p)(vvDB9PSdfCVV!0?*-NaF(E;1W*k@_D{HNnZfxB%U__-? z{hoV9eI@&U-#w{1J6k1v_Z(1LVzmnDngT21L%=<}$+SvBrveVPV%j2a84Z_@sNHh9 z+E=)rO?vaZ7F!QmyYNYV&iqGTBJy?*BSgLY-M0^`gvipKf;uh7e*-aROae3#Nh5b0 zXhhutF~n7lyVrr8%8hvBg&@g;i=E-)JKQCP!#UB==@dwFAYoyi8_3^5q_krs0AUIA zG+i;VsJ&kFd)@<5Td+CNS2wVC6!x7lIDtk~tvts*5}FH3gJtmxoa-wQd+CXF;N;R> zgAap&iH-IuzjfHi&{tc!;Z9swz!wjMV49X#Hl&{-bPBsf)WU)B6?qPS#9_R{LFRDUqoou=g>8k`6%WpfwpiGa z%hF2+6T^Lxb*7>9>iM#d3q_Hnd7_p>Hs(EnP>>dm25_$823XUacI@9*ji>8-JEo`P z(kSGqrqClW8$)>u_>{M-%ezi?xt0w*?xzFjC&-4S#wa7} z)Bh~`P$FB94HOIkoYtsDU`nWCY9LnJ3o6kRXTl@xdohQHu=$JYgM$-09+if_949v2 z94dhpS(BMnbpAm+Rf+}+K?E)*8|rVdaIkVGuWs+JA#b*chlHqcN~iHler%+L6I%!_ zXx70p{3hFL{vb(>*6sZ!5e`-jUMR*QR-ADise~7Wl6lz!*RW|Ft00jU^dH8sfx|hQ z;0QyY5shT$6sx1!K-6Iol}-atn`Szh{0AFLPcB7+hpxQ!Ojg>G{?RXs}^ju~J9BR#TnkD{;s5c6+e=phZCu z@UIRH5^JVXy@7ee``a#@Tu{~o_51<55UnM|L4dZzbp-VZVwRp%F?R~wcq3>kFo!{aI-->| zqsMM6^8p3fz+1(>uD<)5+{{^L2i}fp483txp=DYC>H3!Fq?VA7``;a$mVU-rm>8S( z)bY4r!>**F?ttd&uiK7dHZBv{+W z{#HrX?tZ03c>(`u6^yoe1QH)cn*rQ*p1Q&3?^ZRjw9H7Sq*#rD6QJY@Hf!Ds;Es4r zNZzI_pmbqlU*Z~hVCFfZ8Uh5~s}Z6CUDCu32$^T%aD?@e#%@jnt%0j$^MD`v?`RAy zk~=lw;gvx!w^l(eMevq4D96e}@ky=2w(1Q2hmml7fY-b4!+)2La(tdE1#+AVCH0+{v#3<4@p|C{llNJ{n z|HrF1-)w_pXTM1$ZXALM&F>tLx%#xB^pe2G|4w^T5=A*$xf^o}iI8jxK}up<5MQ)b zeWb}~E3V{?B zv82oTy?e)rZNI^nh88$cuq3T}I$;1WZ$ zl6l0(Q8^^h6fSob69?KBS6}Wid;ILL+M8K4G!icy*dmMt8$xqlXr<s7;lQ!^Dc z)PQ?VLYgfwz*>n!)(tX>-Ie5n-89|Bx9mhyvu+r{U#GxiS3vuw)(>|!?#98g9PH38 zzjLelA&>KIdv@Pq&z@0Ctd(WxjzPFV>_OwLwhZnd7c~2NZo6RUuZu+N z!@?${gaEph=qa~cj*0ZFIfZVT5||6lLIhU11MJ$OfZ|!V9*B8u4WKnCI(@$-cW3A875u; z3}*m3&g_O5O=!eq4WMAnAjM1#i{TwWe48M~O$%ef2vD>pkYgqXG2Q~`TC)f;lLInY z11MQ@Ofs6#lffE5xtc(fni!SgBS6-hkY%O`%XAN*#?26BJi$iX0A+5PG$RRyaAu&* zOb?vtA3&g+pw7)4&u9)H=}bVMn;+1Kf+4tB3Jv@KX50XYZ=R!3BtY1k5NYNLX|@PZ zbfzHF%@5OTf}y!7LJdp-Cfop}XM$1<>;Qw_fL1j#Si?tvq&J|}%@EgM4It@EK(Cq~ zu-PI&gqxt)Oc1i^A3(#I@Mbg2hWGm`B1+Gp7HYO25L%6hwTMjUYlCVnKqh(Q%5KiU z*Z*qGzeO{hIcMSueR!|XZw2jQCF{n}3*)?ktlHl>o#fc)OI6f8DAR!1o#9XA&{Vep+WzD1>7sEqe5t?9~etmhd%n!H9f0p z=B4gw`W-{x+AD`X>zPX{_SKyJPmS79UinF{)oy;vXH`!puwF6s-`ZZ$Uv~PR9Qpt3 z`lV-{^qDzyY5%_VPJaID=2iM@KmC5T{;|K_t(_yISJLiJf7Vey`JV4S5|Zbkgf+kO z^|t*q{q{|buU`yNdh`7{FD+5k<)vZgwvebuUsL)g=I1s49sKo2JIy@--CDRBHTt!D z@~ePo__`vZxYZ#}qh| z32L@ROKkRAw-&~YSgx#e8Vxi;XFt_^%ymKn@|X>0`CFs)0=c{t5LhG4aN5nifDwcx zo=#@ry=Qs76!id1m_ldrLJhpIxVCZ|DGjwO(hU*p!IC?MY8vj$NEGyC^z}4#(C*Ap z!T|D^2WRZp*+1sq>S{-8glm7VSxPim>mF*EhKEIsVJnfi74 zgC##dk)I<|A1fOtpepB0Q`Z%3a5eyz>e)YQi0Ehu`w?0_*n)Nm5Edw`>{pENW>t3G z5_qgyX9ZE13beQ4V_;%fL`v=}L3))KDQ4GKskKIW50N^y5WB)$U06Q>`&ojF?3aA5 z?0VDRJ4i~ik(JgS**Cwz1L&-)8$ct3_C!@@fp_<3T6Q;8#Ke{1D(q(+0XvLl(Y$qJ z+@Lxp>1b8d{mytziMtH;-EYADk9E4>nJfMLv*z)Ie(b-*@XfgF+iSZ+CnbPo&#cXR zU2EW&En>2DEN0heYisK2{CbBt-4Rl_o30&I3G88kEXh~{KoI1S(;|M>@X_XQcNqWN zir+ChxrzhuHOKOvpF6+zoi*RgR(PdVV+kP=uK}1TZ`o1-*ayKDP0kO1#lR;A(<{x$ z$j+gupC`R(KTl`taO9|AUPa&Rummmyn;m<$-4;tFy)c1)QL0lp!Cf5h6X?e@A5GrqZx+~HDTH%r0 zyO06s&~vP7R~tub`I-5D-6|0uqegSA1wRfE0)}MrZ*~xuSY{8QVGD~?8ye}nQ~Z7nAL zt9N6@dE_4YOpV*jj&EEXtLQO>HVhKFxZX}Qmjt)P4`}|iU0tNsD=zn8KEMq4&1GeX z`JrFnbwl(uRv~TwZN!`}O^uj@o>uyW z+R*h4pl*zJ&FSyd5c2ML!f60 zD6qrp@IxA8i}a3#$>hFm)qaSqxr|mGWhs84q2X_86f*-5pP+g*hyVq#dW8m$lnI{w7HLa!)D}cO)OrPg+5-# zM?QsD)-9sh_5@sUjuv~)b#09<6?g=jXcvn~M4NK7zg4+s$(G)Gf^xgfHPMF0dF$6O zY&@Om+!9{wI0(_u@0xcrEU-|nrm}V3u!3l3a@z8S&Zfp4 z&fYhHP6FYg91};NpTsl(H31BDuDOj|igqB|tMu+q)QwcmA4DGzk{M>ttWCs6d zT%bdbog0eB-6QDN494_s@Okfon@27P<-rWbqOomV&X=v15YJl{ok7ofe2Zk~`g8p3Y)0ISp4~ypyBZ?$+$Q#R zvflVVC$x5!fJlx?IsY8KBr)MuB!6CjyWMl=KTzp!Zs09S9Th9N9g#Es%j#i9tIDL~ zOT!46Xs-({XCGSAzM<~V_tCt6;2YupsVVZv%%&xviYX9V)9G=fBxN-zXqL<5cI^&@EmqC2nE&kc&!mgSEx%gMVq`6QV+17O6;_5sCfNyHvwz^9IZiT9L<|Kst z2?7_I(*8LWQ~xq2`!3DG3qwnP4{m&x{UfM*)&FldgV|d4gmDMh{S(fgsmzs)C6D3H zv3_LSYydY(nU;q{#V;FHN4YO|M+{q2+z$q9MiDgP**Oh;qt9(p_CYap9nVNG!IVDn zCc^Qv7Sg2ygI^Y6va@|N-#@eT^Yfr4Twpp>GmqJb_ZE>BJ~XlDXxoLwVZpCy-VG1L zWZW4ZZBoOXQ@!{|Lby)+wgas*(l#6>|8KWazMC+axs0%O;yuP|RJgcJz-7L?FH`aK z?vh9Ayrxz*LN^)iW}53kF7Zvg&x`SgOu;Qk>mGAizdD+4I`I7%fb37c06aZ;wKGexhg~^4K#XZdYict(QC>D&w7s+|{KEDT4nr@?OmDa6-Nr^?wI!k^2NwW+E6*Hc)o zO*yg@zWsYl(PLc&h1u9dd~hH)2xfpey-Yzk1b@KBRqHCL&etE?92rEQ2@ZQ{PJ-88nIljhw&t)V-Zo^+8kMb)AM1k61qWJyZyK1Rrrg@l9Rt+W>Q$S8IK3`Tbi=bto-|g5WOhxxmojqy70rh( z74?TNG>`gtoP^%d8bYHv46$=GOGjsDj^@y4n~z8KVw{`rJwg{@xhLbE{1+FRXA37k z;z}+?I{6w`burS(5V?|z%2gnm1^Fg(eu%|Rn$Ec(7dsI`|8X)SYbyT_O=a$%VJa98 z?5SWpKcuPHJj`Dsc%!?JMQL!>tl_JD;cqSxKd>j2t{YXt!<~$GWtf$R?|6GALFpHx z`vUZ!-|e^|F0*f@(>uw}Wa!OhSn(u&b?S>zIpE)W1K-{;Rql~KY*=Gbk*%GfN0D{Q zJULy)CP&us3Pvo_Jwghme%*@GeJbVU8Qou+D?7O#x;ltiU#>Q3R=#hLqp+(ExHjc2 zzOP5&=V87lJ|TDL)hu|}?aF<>m9T;{F3C#c-}$Caqd$$Cn$UPj0Led>e+18!2JlkM9WU(~-*E@n*Gr>#2byHVy!6m03*O5Q|l!s+vOvTzY>_UMxHZBp+mII z>SIQAes)(j#WQw+$H0;Mc=L@vIu|{iE9DT*e;MD2o4wSeOQad5=Y4x)>C&@kPA4bS z?QUE=|HVIyRR3}@=eVeRjsd;pxEemOKI84y(dIjlpabrfJ6~F$M!oXy_JVY9j#4{| zcq7v8uU7~;HN?e$z!vk1&;TW;{wLVu@#=aNtyWejBlIZC4LrUI7oK)3cb2WM(a_S; z<)eOPK8xhMFhc5y+K-1`r4$sg_%ePJG5-(4WvnYTRe) z$vdgdLX+Yw6hi`Az*#NODa1iS2o)GP00I}x476n8=oyVt>J`yDhIh_-)FCJa1hyHI zQL5rsf}oy2y|-aUCJZvDJRyblJ+re~I>g0*z!t-R8@zHuu|y=169NPNY7~fAub|gv zSL|+^t9GuH$mw8u0}5LdY620|B8UKU0bo-i^BTnj1acL(t7ebC`1y993VIG;6axZV z5_&A90wf>`O&&==^Fqzn0ukMj$2j%s;K^yI?hq6M0$bhyv_UBDO5`Qf3FBdqh%8Q7 z5;g^Q9vX>vuP!^2 zxgwgHSejbems(c)eN4c7i(*A!fM^9{8jYY1M4S{TxF<>?Z${5@S71Gz(ITJ@MKK_- zg@`g0*&la;d5&)YRdPsE|CAG?1$r?4cC+RJ+ zSbvD6Id{hkumzp?Uha$dOe|3X$`RFf-i8MDNb>SiUETy-SN-Nniw^; z1j!bGr1BweB+IN98O6g?sVUSEtaBxjT5t@ZdgGEfE3v|u-@ny0)X~e^GNwKCWoLR; zzgyaoo2P8_(^YX^k0~dujNJfHG*SwVgMzcDZ(DZHrd|qXdp155wbg`S_`=zbbBG(DbO28%-x3 zX{ZEx2NF%)NCSo9g+UL#c#sloq0o#Fj#I4#8segg12k(Jg-qAXj&8_S3!f+NL7cY{ z#sjSt!2g-EXawVgxSn59)W~KDdbyXHW9JPKF`%$Tu71((e*8fetSH#8kt1=VAVeq` z2Oz6;J0k(_)Y0SB=+_@&V!&XF4qoAu1R@ypk;&2u7y$u}1rBYD;GP}d&Q1IwC-TcFbpDvUNIGx(v|mC^^B6BgL`^>yxRo8CDg%NZr;sOm z9NwYh#Jzw$7R7|XIMr&zcS4cK5-5?-XMkQ)R#Rx_KW9Lr+qw+34^c57vqdn@jg)z4 zSC*$C8e@oHU@b9F#DS_?!`Ye0o-KHB`}#+LumvP0BagzKO)b(mxMX6dQUoKgfHJq* zxq{fBG2xP(yc&4z(9( zE7g=9LLibO|6fG)`&V!7QRat-rJ5m`hkpGH&%Diu0z1lN(FK^B_6YzY8Q~&Jc*RZ3 zcg*^Ws5w%vg{7IQzOmzF=U-FhIV6$$cxG$}STm6|Gk|51GKoq^fJ$j4l0v#N#RoO_ zeR6Y(7$Hn|5b*KXZ<)#g9fSDA&Z`bNgpo8vf`OC$lKzS%tz>dP&%_M@Gl$^_uPIJR zRspn{a(ukDfOPcMam-A=hk=vK?x&ehA>i%rv3inDsGISqvSieK_`2D$>T(Q3ELy_T zmX$0i!0nEi=qNF*Qpc4H#`bTumLqOu$v$^b$T5{7Z{8O_6GJ#A8A|}(Kpn^_9K{J~ zBbI;&!h1Ctyun`FEar2})x#X>bBEDTuO&ta*P-04f}{@$&oTSNxEZe-+aa}rb4>FN zEwvJ2RcZ{7?jnh|aH z1R!zPWP7EUXow6DC(!t0hrRC*o;NX(1B&&C<1vJ34d7^i%sp38no9cMJK0hblo5<2 zT+PaYh12Ry$UVSfjRs?m?`l7O!D${!V6yBT)LR)*BE(w@%4(fe8Y^#F<0AUYD<+wj zlb@BBs`;0<=84QQKylb!oOQ4r8fN8;hp={dIKi~WWKQ+3=l|(RRxJXD0BTqxkoN(= z^Axx;VI38}$rbBibZ9`=S`FbADw$vx35VQ>%@x8SKV!Fw9}3VlcRs_h+<~d3X`tCa00Q&0d|~QtfwOXC%j4Otwsj zC_zz4!wBgy09)*GE!_-SrL-4-ljqi(3vsAm8e%x3Xle_OJHK?pw?P5~Tx+eM7^R|0 zstatvzdfjA=$fks)Jn_FDuEGP;1~#DHmL}(ms`j&*Ttz(E2K4( zm(;0X+mA-aUar7LwCg~>3y@S8DMTBB1QNEsqn;H)?Sco9dKS%{6Ch>Mco#^8loKV_ zSjPoG1@ThpFwp6V&_mTDAwJ})A<`&4cTqox{uMxI07t~$#*n=NdaENwsmlEyBazVdd3}X%;Iqs8+d>+06U&NQZH<`7y4<~1CQ;QW zuTy`|%oo^v>36Ptsxz-Y>DH&d^-irGH7XyWgh?ppVj4&|;ujI}FrA^!Vg3wTj42_m+IlN8^XWLI|UKooaq<@J+c zEM&#kG;u^YHoMN@J<=|GCipG|VdXOY?~JuVZM3Y*ahWduYLL}k)5H-T*~HOidpXg? z(o&PgW8mF|2&3iBF43}A#(vY1mDZfiLq~LH6H$+x%Bd@VryJXOEE%qe5LE8yL*Q^*!`AM>)ZNXN;dpK@F4n&u!Qy0D2XV%^vt@yJB$0u#8pjmF8)@7GCO z!)4Xz5O`=#A>5qH_kwk^SicD1M8K=9t1N%+1GE&tyii?d}M z&StnOvZ8C7IKB`G{{qdd2M5Rz99!6B?gDtot=X~+=XUrmvZ8C7INvv%Buk3nyKf7B z*Zd9in%1jhV#}($XTCqIA)1Je=*K4hT?qN3GzzW% zvZ8C7INlrt1*!J~EeKwT-D6v1Zo8ff|7Ed`qo*9Q8fzLjqBon>d~4rumqFvc+baQR z!?#gxTM|7lf@KkmqdvWO*5c(ME4pThBNDN%JkFB*1PQKxOCjV%h*jR_e;8gNFUe+y zzQ$Ho8%;t-biNZwov#j_$$nafmeG$r{Jr|1*q7YHGuSyrdw`8))zf4ZNW@^jfp*XW2?0Nv} zxaYjUs|e{AVXUEFr#^mO*a|`d~&gEkm*S?UvqL8jY$#LsEZMvImbgTBq z?T5xInC{B6H>Q3vbm22yqR*p4vZ(V|-g*c8ffr==4;x>Vdyws$IO=h;&sjctRgZK= zka*DGojIikuXz_mYzg8k;{?Y)yI#ln1Ea-vp9Rl1&!;=i(~EB zWHa~M2+Rw6)O=-Es*ic^Eo|5Pn#aHmv<7!m*_Y6`q>1A1O79Q92|H<&q}!{G2fvH7 zU+`H)vPT3WjJgf?0g*rj+uHygiPqHIWv_0oY{PCtN4zXrX*lo~(Hp}V1bbF^zG4Z+ z`>&z`jvdge;yVmGKW^w_WP1FkLTf$RZN2=}##p<)@QzZgLO#|%oBDII+QCN>V%*ug zIMJcm#jgn96fs6bG>O6_X!hjYdsoF&*7i*E7-&8)&t~I2^#L} z7a_L^`zA;f8oBw$B0LG^SL$s2alL4@P4Jpak|+Oc+u`ydBdEh3lb+O(aDFf!W02c~ z$)kV@1>X0&VY-02zV0EvF0_Ev*2W$1Sl<;y*UwF#HBtflKffrjyag=y85BE6lfeI- zPPKy`8iC{zFyQRE?4P|Zszw6xPrm2C@)5BAb^9;>Yaw94bGt<3Hrkw8ElC`{gPzl? zUSRp%VEvz5;7yd(Go2gEm(0c&yqha=spVsLWm|}OvdDEfV|*qbZ^IUE*5V8PgUC+y0=?x@8sFTds~}kfO2GZzF%*f zH_VYfyPt2$jb*nOSD`yYRFUb|_mXg+*w8J!--AzgmUUU+dU5l;@=vaRa-@+?GMe3Y zjQ~DwyGD&A(&c*zUr+exHX3@LJ};2&=4(mi{%&Mv{1PQKYxE2awXQh^X+6&}=gEKR z?QfIZjCa}Wm}f`NRtG12e|tcizC`2rcvajgzD(WgnKcSZ(0sT1r$+Io@8tU`!@hRm zXZmsV`06X(WLW+fhbvDKgYB~8sbUt18}eP>2>gWQN8VpkI*BIv6m~Ge)7@5RouX!M zci%zW8*l_&rT#p8wjMq8)46U;qoJQ<&DR>Q?iCx})%z{*w`U`Gv`pOd{(F&Ux6j|^ z1;I(_PJJ*1x4mmSLqq%gy3TL!{T{yjp0nMmSbbS>lL4oU*qIfdC!M3Oq0Z9@EGlL8 zHF^)$4|C8)&!4%r#-E83w+5R3*%o|I{#1een}Gkz1`~{3+Vqf0eZlstVmFNA!)FA) zFWvo&KN5Kl;fZWWaL!LCwzk&|9^llXt?{R#t)^#vjWa!eY9jw@iXJ`>MQ{=*a&t+M zgV8`Zob{F9xvs=d@g)YLadCKEE5q|yiJWzn82Nu<@1j-yCR8PS8kHE?IAZXGRFCJO z5a_;qzq0zO5jYR#Lp-t4rUW5c(d2d_4%p0ILFN^ z2k|eM6GE+8V(20qmqivl32v|mP7zlEr%j{ScVH@x#9uAMBj8aaVz zo{=GIk(B{UsC)t_9w11G%sZXjJpSzBGnDDdELovB9Z2h#6Np^qK}jW&@Wf)15kv#N z-Y#0&C#AEWk-Ev6eJ0}4$w=#&6F`rVrGXk+T*r4JuL%egjiJC>9hh8&f=66BS!soL z0;tvcV?UmAmb+L@>!1cPSP+wG4l7DK2?3uq%)e2H9^-rMO|FYti zX?i3km|+Lffciii@HQ!!(^RzE6pYsWi?*vD%C!YmBu?67WSt0fap?V>Oqh9i^p@>_LJYXRmg*vaYT%?H|=pjbx2NjN;5{Q(>02dIJ z5fRx-+7vXpg=YX9NTV7NhfpL)+iL-`I6@EIp4*7!Vn{^_Nn?~8+Q>MD_Q2pB)GALP zn2ORR-9$Dym@$!|6vHtQ`VEy-`mB}^h`GZv>IxKJbPNbRWEs)IF(;zFp_&#FCe~6R zbq!z*R2JR!2(?7C5MVgUAvYV5G1hw+CIGn%iT0#S!Cpj@dSkW%hM5rtjoQd3$xIN-a zZRN~Oo}#%Og@wt(q4)?$S^b{~Qks^;l_VX2oeIQOfWg#ux0@p z6tS;t5L7@y*oR|wd~K)~Va=HoQlZpZZg<)}c39bvu>)qV*&`f7pO<7-paRzB%As}+GhPQ{E$k+^?u=~nwF#) zgb$8^6L4r4;~Oe9aE_Sfk_V6 zl1s*7XJKv?-%@JM)r3fyydtzh*g7m24-y;_lct1WIJy)_8&Ww+Q5OoS#T;{NOA7%G zTs)T5(LNkNF}$Hk7-;I@2U4Ig&ME(*eAXbZRK1X+7rOY~+ zKp{TlLIqQT$@ba=o`}WvnC$A2EuJ3s-xM{)iU|j#Dv8b30U?!Quqk#zk&D&(s`FJ2 zs?lr06q88l(hdUqqb3T8ig{;a=gx0TC?F6i^m$OiG(s}BUM8wzN`!9Z>|__`X)JYv z;{W0$dHDjM={<1?GbsDd9D%C(v>Iqd&q)KQ`%fMNP3Vbfpc6gk31^_nKQfs9!c#-B z1)n>5*aVCR3P7&-$icR?St!O;a=(?0qnVNCo814td_RVUC!8h6Ixmq!9SFF>VB}*N z)M|<*T*g?)0~_=?GMjwmjMm!<6vU31R5Hy8c1~1Ww?mN)fXP=4Uh)*d|Rx z2*{-=aQ|crSw1Ix8#-E(&Isc!EV%jpxtlg~T&Ejji)+~`{b&ypEg zf{d@V9_2YK6>ri|)si29yooGoU6^AtCg9XydYz{sH*u3ELRtVGd3TCWKZ%FE-*|^+ zy-6eW5dwI1+OQqQK)5bfscJtdEXV^WQqo~5$(XY{77Ys33ElpYR}K1W?izPs z3n&qW+8a?u#Hrj4lUjnQ#E(~P$mA*V*jkDw6&Zm#(Cal_f-Naxt~?qhm1MO_nd2TR z1ty^ExxtX~_Us1h5*Lh_N)}mhPdOkNlV>UAd%SQADnbwQA1?i<(e(|X zAuOMd?zLO-zuO~@D6+u;YiY3*-93PTjd0`)k}+rA5df=RG3<8w193Lcm-FXt@_u|I zUJD)hldbpQdvJ2j``?|YpV^4pM@~1!{bIHe;5GMqrDwTjDd zmkXLAGq=h1(f?haj%Z_c^pWm5C`q_k@`TKqk^{E{1knAj1MIC;3kW{?Tgf|UsU19Y z<`P9BG{v|#5u3#MRN_9oIEVIs-yQymJk7#L2iS=bqEM7{aFvu~Ntm@4kwqk}T0Zq$ z6OQz0@CKQh3wN@w!66CQFVF!4BW*w$9i_38$--V$S}y~#>*R}vuZWs)tIo|^SL8nh zzX!cYWX2+ttS*xa=RtrKX)K|}V+%>?O@V)8DTjikBy@|a1p#Vs1c_s)(jt*eDc+_& zW@TQqBk4}e6Q$Hh$QNwf1Y4%q62TSG19Qs^eV(j7hvt!N4<;EMRBVPAog5QbkD5G9 zQKzpTFIO`cBq%6x#(~Ztd%^hFsv?9zb!bTa%xrw#tWRFfqrKisKj=`+r*H1FZvC@L zP`Wv~8S`HqGlA{+NA^jRhxwN==0EaPV!bvB?_(fGnpS&?FSMR4#uV4&0A!#{C)#>@ zdZ)ZcSMh-om#tO_cQKK3>q!Bj*P`EzC!#q)E9H{*DgU(<5iwsD3{sxNjvWaagE|B) z<1lPisn*sV*^V-K+V1pZehWgVkQ@6db21`QeLs>&SO;Zu{{{L<1Hc*?q+~4-l^tnS z4dl;k;45rjY>Ku2a;+t6N#vPQ4ihwt72t<_tw;>_4hhg(dR)nKDIDbWk0THC8)^eC zA{aU;vl(uvM1MaQQY(3P^>GC6Ie|-zNCJT@naRKhB_Lc%)rT8@X|rGl@wvGUT|0Na zi|eGTxRzp*lNl*v3enYf7A1KR6Ns6>riSU47$6K4pg*n)=wtCO z0*Gvz>uKA~fl1gVfZS0D!wV)X32^Kbd_w7zCQjY~tAk3%R6887nPgUh6#8*VjLNhyFjsE^4>cyX<&)%Eg3Wn^Hxco>uwO@l25tqH=^dn-vZPmNWz zg-EXtN@4+_kn9rKw5Dn zm(aXKst8~dcp!{S;qmD@Z#(K#)NT&MwY;u^00BcY@o@_Hjwv*+PhaypzVpZswKo(m z{nj7iJ~@3Fl)bn%SLcJFkDxcj|GVjTbilME(0d?i4@sm!aEXs#NPyi`#=LJx6!|1~ zz9%!Zj9K{(JrZ}lS&(jmNz@==vWg^Fr>vP*+a3d71mTS8AJlTqIGrm$VNH;;NkXCexy&l zk&w3Cz-DC@=-mKGx=$gHq#4r{r^DTDZ+n&h{)mnY0MX1q5di=-K!~*{_B*2(8-PsN z3^nnAuSC|UBON4iRazU}ZOXQ`U2ZwDal$$THT9qm~cw{JZy_%E%`dPeWh{JU+Pw^2Wp#>BtmU!`reFSwP1lix8DBMiYv zMEXV^Ho8N&yGH5S7H2obkpk|xk4;d-xWC4czv-C_Gvc;|n=6Y72W@Va?N;^+`=Hu2 zO^uagh}uDHLr?(#f)H&8W#q(+$F7NEJ3x(3yzgEvWFiXQ3ApzRa85d;5>W;Off81n{0;S8PEW>C-l@Z3m{QURLU8WM;{pV@678G2if-6 z;J-I>oC(8cPft87)1E>5%flY{;TaYR>M!-wbl&lBvV7!?6GVi0CJ9D8_2ZMhk0FnI zbc#AdhV30<8bi_N@vw~Sg&xRD8@R_*sFm_}=CjFxk&=t$Fh_Cw?rrGGdJr3r_t9K$ zXi%Hste{qpj1-n+KByPLb(TtM4Ua+GmD z(Dyg`1QmeSLxdavPc_T>4l`ep5>SC{(azS4STCWTo9U zG~&?m!jU>ky^E`!P?zGk@rQX>hvMH#($(-Cdv5gIzWwM=cK7?I@ttHwJcc(MeXjT3 z;=t*mSErt6s3Rz}Gu<;yfgI0!1ORtt8kR^y#C}}oRUHD&C)OZlO z_rvXqQxDCutTXGOa-xuc3(!mK{mA8m6~j9{X+WFy5=`R<%x3_Ub0ebHA($xQT)|3* zj~OOl3Jkapz0Te*T*;|64y887wD}%zrN+u<1o2!`hPh6-wrk6mnke~HI5f}97LQqDGb?X$+lhR2UpkQusR%Su7y8=T z^489q*CBz0gA`Opc@s5bQ+!V}T%LwmK$+*CRb76vz?ZkW7O5Sc+){uK^(Q*Y0(48U zKb$J|9%FmwNXL(7as1`U1)d8h5Jb3La!RvY_MosqL-u6ep4a|&b-ZW#f@ylGtj{LG zEhQ|(1Y6+DIVg~#nW2DnPW>x&epkC3yUqRR<@SEzax)g|$~YX+Xo=yiiH|`eRhJlv z7|-Nm9EF~TFK!#Mn2+G-Jl9vfwz^4VfjhW(F0Nu*VGU#~Z7@*fE#I|| zU+cebub^%s@5`4{*U|wvUR>Fl+RdJlB|NJM=j^G;K*$hRlzXfkT2q9v@^Da|t~8;L zJ8=47(5d%>{RwFI&&@)FmZ5&oZ^4w7Zo~OwF(^BJa(&B`VCgkUu)oVg#?lr4% zFiU^Ry&vr}lJX@5ghNr0e;CTu$n`>uFrg-#USW2=dY4Y=tb{{1=kLjVtLpyd?oRs< zIT}dKB8T$*FDZKyS-v_K_TnUPufut84? zwn{;&TZ6AmBdX+8Vdl0nQN7PlPXLe~I&9EjvSxTA9rDt5+C(`hfqv&CJ9!~Tsuv%5 z5XOS#+mGhTd1c_rKhK;^o)kib@RF&g{3RT0l>V$F?ks?z)K74PmYuC6Wf;HqR+ z5!QO3MMuRf%4kk?z23keS!3Smb zOC7V8bx@^qaB8ENR+rF;RqjO?=2<%k%+;WK7xE7FHvJp2eu0EogTu)np}D;DlpW8c zE}Yksq*Ym7z82y^pXO2F7J}q1Pmm5y9KOAm)9p1);B|>wV;gxhGE{;=WCOZ?{i(O1 zJ7WHO-5M$lx6CaQ@u{)Mv<(NBFXsIo4&n`#@LQj)xo|;x8NDC4oW@))d6jjM$ys2| z-@(Lltf?w%Pe)Za#|`$r7&%{Dhk8kB!`3&JmY3JUkpDjXF8E2z(k^_Hju1OM@P92H z24O5`h|gQT0VQxG2<)LqwnXt@W0tn$p`0y*H7a6iwVzR z^nG4_YZdG_WMtaE3Ib|4Pv6tWW?0y4B4!VbniY?zR*00nU;)`F3mdkA$aOHIHhFqM zls4g>Z>hzo<40I;ckO96^7}V^%hTKL-`;G)l2D+2_yFQZuEZpccBE?u>0->42$ENI zT>Z}Xf7g~Vdm;{)@o1QHoVwAx|5pg_*{{DtnS%~B>5=PItHql5Im(rG=m;B+^&3$q z3esX@*z@Cxvnq2XJgz?2iOhC0?zQ~~S{Weu{SH6hI=$gXEH4G7t#&Rjx>!A=QCO%= zdc1}xuEK)$%mf>7+(YsbkxfP<9H}EBhv0|*I4Hl3alt=IoyDhNPp7R9$djm96%}5p zbdn+we*JUm=Ls>aPt-|u+BAYZT<-4o>gZWhr)L~oQ2n#LH`*z0^^fTlN}{G)!kBx+yL;=bSt5eWzo-&X*>h$m~Kg6fd$uV|>lux`}ie zSIMFH`qz=5`7lV(ONQBemLDz#6`J9D}eeEs9Ulf%#^IY3kADq_iR8rzV7Vn;GNH9D8)#GDK z;$W2WFU4OPr4yO>>Z6bZONCYtkP6flzSMesdd&=r{pYCa#ln{rY(>T;!p?`Zuz>Hr z3Zxd8JJkml+s8O#@lr=M`GEw}T2@ZlibFWMPQ=u)Qg%Zjq3iXAqnzg_&m*Wdf4^G$ z!Jo|;x1t^;{Xuu(Z_T_YoxFm2{oDRvPkAD7OeQ73y0MaT1`SI>SrPMv7DQ1B8HiPl zL-g_ucWKIGi@=KK*N=K3y=i(WZ-K7b7wcPjb@_uYdrJy@?1HVw3@?MO*jQD}s(5el zo*}@&w!*SEi9(yIe?cm1J|QSGioBX>YaHn!)bmh9r0S~`71QHVW3wTm@z(56s`Eub z-X?*ArnsQ#^mu6t;WlAzXlqGXdPTTwJ+Hs(rMON1s+Gxwl~RVhFEzb)czrS=h2h*< z&yWf5L14YMm<(*olF{A(g!X@m6n#2G6>-IX4FQ&~yhZE6sI3!|B z+_MI>@@2$tzU+W5ZoMY2=vzS~5We+JfVhWasxDBQXpd>&n;N^I>sH<=*#RC_vZK;$ zq>E0rvv4<7xxV?a6A-qWD#Kc=wCrJFKr=ORnd@nCp4_HyzU+ogalE!;*D;S`1%R#; zou@uUn3lNPiuvYaw_PP-Km95@fhDpJYNH3m8y#s$MXx;Kn<6{U!QQWBfTm&ru^qbL z_%)<5m*l-)^2IkdcBCB2RFmNZk|;_$+Qq}$m?j<5Hq$jV+Gljm;nk^7F(o~7BYzZL zaCP*QRbzAzU!3sCb;KNOtB(-y+r7_P{HfGMGj+o|k(wfZEF3zzy}LBEEd!ob-Y*4T z?1RnedwW(+>k?&r>$Lp;db>o1QMO5aqB&?v`Ul&P`umW%w=j&5`hi_1Q9P-x{8=Af zZ|XN|MH0Snef7pJIt^E6EBhjeIjM1|t3wnr`!!FOZKzzj!&kjd!8da90lRG;UabV~>+9=3clbBiEdc*cYm({54r(?w4yT)ueN2IY zA0c+CsaAlowNY+xL{-%>$s{YSqsz(hVWn!=puUGak)od_=|-^)T{l!(bQ(T3s5Qi& zhXp2H)S40M=ya3(m^3gAVW5L*T{}h!Tj^0(2jyT!7ab6e0xqfp{z^?}MtUn_ABvSl zCp{qi4W7>w7VJVeu(>S1rBp7IurblSf~kHE(3Rrd)9MW8u-*qcOl=T|-ZXK$+>IlUuD}ipS z@L3=2@Jv{6BcsZK1Deb7TWkDg^yaydpHB8#$q^nN&ZlB2szv83CxwMO5(ne55OV%Y z@u`%Snys$y5%opmp;w6;QpJ@+*9$Pa$y!#;!Fcg-pmVwSK;^PPBzRKJqYbfVtXhu> z0Y$izL!&yu215p4W#XGa^m5^W=4J7<%Ph@%$lz7Ea6ogi_}b;7=Dz$K*jz3?(6}sW zePQ3Vx*TEoi;OCIXo~&i;`Xt(bF%o*;oAY*T!*kiwFCz=mkI~~fZcZ;F26Kl;8TP^Oth7NboMwS z(v7j?lw1jPg^@ZB8Nk$MZni9pOr5f01Vo8u-9Rp!N88Nd>!?#X3^1D#8a9}Oz~(Tf zK^YBfA#lP&DQ#7ht{~M z*0g)+U`5c^#w*19Fkqm$Y)F4KEjy6u@Vj;@F;fozbLyiy|5!xW&L~I%=f;d+jB#m2#bTIY4efgy}ZAtEx zdBTi_Ix^MIgDW9i85}@b0j45sgi~o{04>hA8-(K@r*+n0Sc5+>F^`^d<0%|P+pjc0 z;zqeBP$qK}h{gq>1+0PGfC4Co1B`3%){FgXqQZgd$RLlMq#6eU5U{ZlwC#wlDBDa3 zB8fvwI}@j~<8ICKy!soOZUc86Dad%t5vec>hGT*lZ4ivwKv7cFvDf?@P4LGzcGL9z zR0<*7h;z{HuXSpgK{5#b+B@3D4+b`u-Obk~+;QM}nHluiY<9#*oHKxio3wDTWGYC8 zmgB&P7$ZrDi%O&eU+zzB_Ah!z+cJ@n4tln4GD2zc)gIA3a!f-23$&4_KqRH-?x!82 z7QF!iuIT2F@j&x3+L8*BFcAQ-qDty;$l&%>7+k2WEhx=(!~6|%y_tNbEra(pFYpl9 zmb8(;(YOF5f=LRIM^rMT0V`ovo0<1x4%4-~APOe74B<53j?*^+@vv4wY==t}5RJ8BGlvg0=>Y9O`!2qABlVu^tCeCQr9c~?ZMB7_gmWVTiny^U zB+{5^!(#1O%ecgtgK)vD4I4%&XfRHsg_AaHtf3ov)A?BuYq^uOQpyMxFpS}`!vT$P zLr4pWg41DGdTYs{1O;i%P?DqXZNm%!39%VFn|~G!b|Aab$c9E!+aQS31Y!h(FxNC; z9#OQg`?4df1P`eE7-mDiIua0$l3WtXA_%1Qa#;EYGpJC80+(ZCh8d4p zCgPYQTtRc7oh2bnH{*F=EQ*?`A))apQ=|8{`}x14cg2m*{~UdKZiT&`UcpM>Us?BI z4*AoA3dy4fU03YZtu<>9k#o>5uY&zjB+#Ji&})>>#Yj*WB$8x>6#M&$Z7a~DoYqW>yVjI^(U>*xlI~x z$3N~qF6R~s7Y~HHqMU9YEc_o%M3Gly@qH!j>fY`1FC*8%v*b$b?XB*${HmWDZ7ku= zZ4wUP^N@T~@l2S?KJt0T7P5!jvfFz()el{gNfY!Iz7N0hZ%(Rf^*NO-!ticY{!Ax&B*L*?4^_*dFiLKlTfKn`OMuM;?C>SLpki{R{KKy*iUW<>lk;M5)`4!fGYv zjCcM$`H}Y9vPv}j`6H3#A4h+y9nWo}ze^3Z&A z=?5=+1L`ZbiB3$b*I)1Ix&`@>#M~b;ErpSIly7@{4DD&m=3Ve6tApp`@bic89S`dd z&TV<`|Bm}S@Kg^&x!I~#m9B9Rwwv<4O=gWUJ{{^5oH&%EfY{W@uK<^DU} zyOw?4U!pDdg7AFF33mS8a{=uL$+Gc@bYOpN2Oa!e9PBQ5LhSQ*{aM}W!=jDe6QU>f zrOChY&*5&K^;?Jj`vlahYeu>$2f5c2^P7Ggh?&$BmAsoXkcUrbJk`CU=i&#?#i?25 zTby>0sRGQ@c+8AY9vGi#@pA?zb)YnZFUIxLs26?>PuLyQ58X@rZkHYdV>=4Mh(XP+ z+d$_aNcN&`mG@RZ=f2!`<>B9zH}6eV3H#>$q60T%0HCF$Ak;$J zrc^?KwXMQ0f`)L;PomZ1kcUwH(E9uRzV7o^Iy1eVs2@PDX8`Hx?zNxcWQTabpTytz z{>$Dr&VG}4FrCzS{5Y=)7auGY*Cnow_8#~?>VI~)Y3ZoQ^nKKnsC{;4!M&IBW#f3P z2#k?=73Hm zoz><2uQyyumyGFqn|E~uLo1lokrq9RraF7chRmnkz`6k;Pkl9q$-$V?@`?TN`24yj zm1@h5&Pj&ZU8&RK>f>+5;v?Vrer>vK&~nn8(hOcdG>axu?QgmdHWY$f@@2|b$^q$% z?+tBauLyKI=_wy*JWB3#M$QNmiww9;e35YTDOWhIK*p~OH5%v#i9~ZFp=r$2^e=2Y zD8-#xSK`{+@@z-$IOu^yzB>&DtR$6{=m%v-AuYdFOU98Pf7Fbbim=@+ish1?-Bym-MWam6TPGKEHF`xa|R}r5e&tW;(p5*dH;A!Yhxot5g4<;otazEd_Lj zMZ=2=R+%W>K*9kd(1UKRd5%~ifmqvI-CAEGOgC-`7^6>9ex$=QQM%%N1*U~&)zAE` zZYeFZfWcgq$)l)=T#FhtZ*Nz3*!?5so6ew}fq7v;bDrN+Z=!DJgTJsDt2uT3h8Zu~ zoG-U9r+r$H4NkT3F07KQ27&Gw^z$3zt&A`$%bVXXw z4RaW0+shCOX{Hjg-%)V_@61QtWZ#EG6 z>BoN37OD9b+Wcc> z*FqgAra;d{wy-~g{eevbZjRv+-KJ7ot18oi( zxqev_STQZ1;})wPoE?4TH8?GBKO5Z;#0Y=DN6e`^|7D#yuYEyl`m*YAruU7uZ|X@p zh)6p}HJ96_ZfVFfMFh1$Ub;fiHoAnFJN4JG2Jz@rc*ALvqV_2eN~L@m-euA7f4Uw6 zp>p;##r6Ml&_P|XJ6#{FB^@1Q631&JyOqcJV4wr$XZjf{*7mB{-)Az5c6HRA?`#c;CThVC$pZ2gLtOtPDJilvpVO-{NchFMoPx=6k!R zaYw)?`m`Q{^=)Y*LQYyXJ>bJ zc6MiHcdmEm(ruwVzAN;4&NdVfMG!`dU+8UEJBsT6eeHpY-|CZ-lI2mz-U{Lc*Ps#)*r? ziLVq&;w^CvVlAhd93n&oqy_>uma(Fkp=skZuvE}3U~t6i3U_vmou|cjU2$`LbNzW? z(H2(k-YJLp_n&F=Y~mx0$%p@wVGl-kMv5Y^uyKn7O+w6&65)vE2{}tSL-d#HOt*IF z5W{TY?pop$HvM?(lnzEJ8*PM=hE1$wXcUNrm5L#Nq7mwXj35;ZV6?!<(SH?9llXR^T1%@_VK|3wYFTLAbig zxf8$oQKy~_#{d8j5CZ@J05oGoBLDzjWj@twflVUdIP(VH&2w{!97-8fW}?6(rP7$M zN=$c9vJ?h`nSJ^9-#YyOFd}nBL;!FA29U}AlVwsO&pTOU37@9W3@7+y0m+=6EUm%* zoP7ZUszIwFImF#FV=8m~zgwxUytywf#mCLlm&*uqv*{5zm}+*@fx}kjX7p4Gz;Lta zE$WXJoAeTelpyK86F@is0A>V^hzbCi?eo1ZclJr&+_v4@U2kp8Ty4AU&6~OJ%t+P@ zz#tI&xfUz6yCa^YIzYWq5W*LMK2$&eLW+Qpq{oPh79S6#36z#f z>X!HR9=XFimTCCI)~VhT+cRBJzZERii#|!}Pi{=u@sXm5R}W+*y$$cTGrJ`AsH>*g z%dKohgMdCJw4MsE)iA!mx$*^wHZx)Xb zQA%5+{kVGq-KI(D21ZP}t^^5Cw8{b0fLKmRE5I_kix(UNL5zK>b4!?A@*@IQ=hD&NK#SU_0|Oi@w(>ha4C?FlH`Bi|fm@Hh6B2 zc0Bxv$QVzT9~1B`FOZ}l81OkF76=6{!18eZTAcmdRk_oR+1lJ*7>|8rjf-}$jV>a< z5KK;j$K>M3KoN}J&z_aySeR(a+F0Tc@XrD)+cZ1o2__Cdi>8JBl^xxuU;@@*Z2elb z6cPEOsYe4wyW3EIBejC@>Z31ulZL}*2cyqj;AQDgs65|zU>yFd{^)@QWjGWCyaN$o z1dBtT!%?rRbB3Vy8P5nb7&cP)vr~G+Diclr4o{VoXbzh$S7KmI=lE}D)0xkf9y<53 zoSwW}R%^IUy#r_Z23z{kjvo-*Ho6Wt5PwW^$ggv4t3lD(^oq4@t2A7vDb`k-7fV1(mTOfb(3ML0`TAL z6?vcCF&d>aHgs&(?uDC8&V(n1S6;fdyGPo6k8G~4J-zbXTNSoj)7xHFms=5SZ85i2 z*p_#9i;i`&|GyydQ$D}1;x4bPrQ`H^?!funce;25%By$|!0)z`(;0YT_UfHoxY=ig zca-JO7k2i_@5uRktA(8hq*ldbSJO%R8f6p64xg?LWz*KFxkF`pZ3xV3yv!WWOS0|C z06Q{%Q;^YE;l6Ew!~fg0_5RVAyHVfp)$gaaXG_E$eS$uYK)Um32R6&gCrW2Fk7rlQ z)eL;o8L2Us_qrk#9@X;apIKUMlKrFCU$m(+on`^dbvipu;g3iCbag$A&F*spK|YW+ zPL(tH;A+Aqux!X&mJxrBcNCYx{{{TwFGt^v?1Va`x`4jd zb)()bn((jss}GE+xr_94AK@xaUZ)%<5FG<$(+OyF=SpQ>Ip=3lnv*}5j;@N{D^}nB zc`MU{>B~Lu?xlKIvA?09Wt1jr=PTKg3Tf#azZ?h8}0p z6dH8vBIP>8ecf)+VqZ-U1>c+YmCS=$@766o(nGtxeQVn{`#S9Dy`6JMy^4qyck+(7 zv+f?!b^E0*XZF1M!B?>Ff?RPrN+Ztyw;jLQ-KF)tIW=ans^2OwK~K=iE>E$G1La97 z8!XY;DVunhxB0tsl~=B{m0{32zg5GHs=$S-bJgzOU+h~y{xgy{<_rHk(aw1Pr2I}9 zqhj4}xLYWFyg?UE+RSUCy*TB5<4tw7y=MhDqk#J|K2~gv!8q9+8$P@Fdy)0dozHX~ z6nn+I-?dYnNpa}Xt^5F8K%&38M>r+s1Cy$cqsF^21H#xHBw5|gOnpvUF9G@pwoWZzB2zEk>Fw~cK4lmM_$ z6eP$uwN*(EcSUW`v|xwkn|i*Bd1m{PQ2Rgf|9H44=d$QtqFNw${drJ+$`0erTx{* zA^j8IzqSv>GrtUfS>5yaktKRT@9k_OzZv1&H)0tfW0}3LZ<8*xriMb zG^6s$hR7HWIUEE$^ws>Q4@NElR>snmSj$En1g>&(pJF;=c^y|+CAg(sM1**B@xXfQ z#);<+{LZrFw!IodtPgX>%nM`6D@%j#bHu%DXzvgVn;a58uX2u40++Z1UlBrYGvvfl zA##ksJp%fTAt;=Hc94pbUcygfuB_okzz5N=AA4Ne%|AJqf)RTzK;+_Bm}usbH}c!7 z`rpm3-~T3-zL^N|p87C$O6`T3b(!`qJsK15YkRY*7dmMj7g)!u=-R}807n2AZgM$v zsp!YxNA$ZcFPX0PaGtsEjXhAo`!FmCBa@omJp>z+WSE9W3=Ewdj5Ss$&^Bt|OrS*= zgFfb`X1RK|$}F~)du0shh|GJvwyyiyDVAY4@nU(3$M+Z@djP*P?l==2u4BSjoU$5% zg_)NZI#^L4T30PH=ly`Jze!~#ZS@m>r1}R(4h)eTH@Us^W^FBb;RJZVXyVwI->|5n z5Db2MfaZxK$D+cX2^e$l-VpI}G8eyN3WX~Sn}`r65!Ez;zON}k!ZZ`d=0wB(H~=rV zJa~p#3J|NI>IuSDe$(#C)pT$s>8qpOlgqh{y1YD@OH*`2U-t$BKKA#$z4ZUVB@xlE zuYvq#90r;=XD2)acwjI0tR-C?@qDH1+Co~vT2LEO40T-i!?@(6y&u`%Tv>Y-IH%}@ zC=BOLEHD!TDwt$cmOh)FB+yI&XWH`w5RYnMBX@uGuyn|Bp`uN;jJz#NJ$-a-W;Ow&5NyV`&(lLGuKM{YXD;fUia?m9DZ%CAHi zgSB&IEUOoL%=T}FPvy_Ql+oB;+Uo66ZV}QqHVTD$CWxRWfg9xo+vW6_Syl`bL`hG7 zmJU7R7Z4j_4R?0i_JBS>c%CfcoNkrPVx;LQIn5Fxdh5dT02wn&vixHm0XZ&qa6UKQ ztzuc$Fvwv@QIiy7xlKq9zO;2k@EQx_WhJ8;lznpxqCa*Wg&_?N2FD#%J$y%#S<*7i zbI6iGsLJPwh@-t!wmzD9q5z_*3!kIWL(asm!5+}+YPfX)-?|nfV&$5fS5GBh)fA!5 za+rgXP%#!N0uw>rO#SALWPj{B4nyG52YTyPsVywnFzRPkl9pwX!_8fIu} z{kJT{*j|OeBxevxbAxe(Ww9RL@1@**xwpD zW!;m~Iiy^P*~1=7Q=l|t9!i>Gp}u|WZ2H96j;F~{5O1HT{2!6pl zH#5r`X6Ee(qA|J|>U4ktie@x$)AX33kA!jnMqr+JM3#b7@4j3W8i=mbFbT+=qba@KzHnrz1>$yw!h1N&)8)*CAn`KP2sJtY35OD8xd3 zw?ozxmK9VAlYvcmtYl1=?n;|LC~n+x@Y2GfADAS%^AKH=+Yu=!_dO;1a4bGkol>i3yCVKIFLwcVx7{--Ms)$u=y zjEKb@m^FgY%+64@&t(*9Acy60H>;P3Y~#d|Y^ZbL^~7v43R1WGpV0sR`An*Vh=(mm zKE?9!yq+>odTT6u&3lP&nXCe;_IEeeAUI2_qA{nGSljDQzeM-P--}BmA+S}zn zmXLfcuY2}^|{{pOU$dXf#@-)qcn<~^B-B(nURLPa%dZ#AA{ zo#9o3)2yq7$%OozGZPccIwZgDDTyjyJD19H*D3!8}8rA+N^oe7V`ucOH7%d20mwFCd(WW<^+}1GdzqP#St7 zg^HJCAK$L^=CPs0-siv!^fDnIg-kxX#v6a%uA@)H1*OLaK$205p^a_dkn+F61LYpv~$<4IdmxO4k%pfsU)oB6c+UCeSO(^$u5O;fD z@aKo#JyL4+YAyRC)Ys8Jdrfq9XOB7(^Kf=Dq+M0T6c;JSTsh$9mHcM@o@dd$$Oy;_ z{)0lk)Q`HOO0S*L-JHVasrL|!d0 z(6k-A=8mL?XxMq?9vK)Y@>k=ag}7_5}Yck>jPbqGV`LDRIkoU+pbHF|+Q z>QK+k&m1f^NX%Uki*R}jnCepo(*Rk|k45Pg5{B3{*nf;7Y5OnTK=GpX#dMqZ7KLyz!>5WC0A@hL zj}rk300QGsIZeE=G%GVP`Df?5r`oyY64fu9+I%E z<#J-69SZv>Somh1BoyasDC#z4Zjk>dSa^2~y8*(@o`=j8wKxe;nue)~kjfQN{Yzet zDiZN4HbgZNf7rFzXdmpgN4EZ7wjD=e;4rp8&)6qQ%f)V@@MzpTYAAq(E+&+?)KDNm zn40Le1f-h6stNmP7^c@qOJg?Ih*_}qHZ7`qu^-{Ed*BMIVR~vgdaQ&fj>JJg<_cLF z28an=3u=hs1by8Fyg3T9vH&vfQcGN5@G<9p}I1}l}nT&VzMuPd0ySSP#CU} z_QTg!O%zgrn)1Y#4gxpereR{9IlxdfSxu2B<4|A%IhWgBOb>_fh~gw{v1`f(^~sjM zQy03?7XTY@+`Q~53rOxTu63y(m7po62Qt(I08>|&p_G_;kx<00Hx~9V`%c773_KY% zs6x3U9*FrA)Y4)g5)Dy-7X{!fJfr5_LSef`K@jz~8h2rL@5XNK@Q4pni1)TspZoa+ zqf}R{1MJq%N^;FBN{qRtrpOK?j?6j)I`Y2mx`FA> zW}OnK2bUsxWAmiM3)Rp>iL4=Kj_s01dn-*>JN?g`^Ooh{T~i4 zMf}L-(giYEpuo&gFcek9Oj?t;2MW$gpAp2L^P&MHd;x&FxGC3Fr+p6Qn`ap!A|{ZC zMNIA0)MEI&w37rn`bvB$%sjiz;xniCqS_p z=YV+|ET9G9x^H=WV3Mwpk?simW<9Zgcyf8>gR-J{E@!}@MNKeP+}<%g^vp@uIz@Tj z%=-kC`8oi1SzA|fEiiU$P(FPp=tpM`Dw|af({)NbW|mMHlc+>7Sqs^I0nPotB-dnK zB&g+U0l>=k+vY^yQHRLG=(`9%sOCu&8b!*T<+1i3{w=QBNM#EUcQ8t^%&*`wGz(FH zJ+2-roLj3f`I#0Vu{f_vyc4{?Qi+*qIv$^uUb$YEiARaJl25ylpZAxO?b`0%K23)@ zbh%`H0;l>EDNElpxxWq9QgbTFm8sW1j~?IFs@|IeYIFkf!jvM2gH%p^nqvoOkcMNj zAPP!}&PE<{7$LemeTP?!sHo!HAZz6jai%f8K3)INO`Mj%wLFXuD|U~mE-9fVkH(=c zTg&Pd_9U9P=Lo`*>Y2q#@pPS5)5Ow2siDjg^Qbj|T`7s9cA|WFjy3E#tXHB$c;bZ$ z3IR_-C~PHyr7P|F23S0x#WYL}f+#&Dc2re4(2y^nRZzlMB8bpbb6Mz^IvNHwumT98 znwlMwb<8-?X?byhtaK@=%=Y4rgl^^W6sDtID_~Sjao~_OhCh}y}3ncnsX{vsr2T-ixQ>8oa&}bt1GEcCXUpp>`M!#dVn#-xKAg* zcoWJa%I8q`QQAPwMXF8hB~IB%v85EOMolZvRaxRt3u})&0(FwrbM7x4pfPyuYO<|CT`A=Kha54k-%5YNEuU3Lr|K-^bI4cx0h6G zRKrCX=Ey{;T*LHCk|mgjFQoXyVnz-qQ<7Gzbi7?a^NB80shHDX#P`w`xb5Vj! zTO|ads=7RSCaUDMrCw=dc58uC*u*wR+K)`53TufV?N;i0YEo# zL<5Scnt?Vt)hKj0;z}T9Q|X9Pj8oHdF~k$+8cl9Q0u@>o^ju0^XrgQ4NC#SzDS#_I zdMFr+l&hlIMM}>=E9C+sEv7g>XqsOR^Wl+a%}Mnk{cx96wU)#%r3R{+S)I!QflWa? zpqicvgN;so%Gjn{rS4W6v#7$3B8Y`mm!!3-xu*I=2VxX<5<$+3-fIx^Di!J^g{Z_y^?8QJ*aZ0TANKp2~{=nwJdR!l+bG8LLbeFDnX8%ifXGatcgl3y&}djjs$>I z5D)_Z1OP)rR3!iaZ)HD~bpc7t%b*>S-QDi)m+X;_$$=)AL_(2pr@RYodjC95g#!tP zyO8_3SC#L-Nc;i7$P5|L0DuA%kT3(zD#K(Op4&40RM%ja26Z7BQt=x`4vzTm&=> z3#b@?a^bybuCB(m<<*^?v#wuPXj|9vtX0{xEowM=l{Mdctk>FCnC!28e}W|))$P2z zwCEsE%P=TfZ&hDweFpk+=L0(TCTB_!Tj^GN?rz=RY2Mm(i(_x;9`X&#FS1FZ5c8sc zO@B=-wXQ(dgt%L=Ej9~7Tt^6su1rOBh#UeqO{hH`=lU4IyCRh1&??M=7#JA=#B%C5 zGA2czh8ik2Gu+C!uBFAh6VB<v zTko#CS=O+?z}yB)1MDlVg}*{~;PWl}yv(hD2;BXGHT)NMd;8htJ|(}gqQT&-VXBOc z*DG+)<<%<2@z$gpxQkdtgjK$l+Dia*f5jgw9O8p$d|{Pmwh3DX&|LdHURbZH#nbtD_~+j z;QLPZ`QNHvw63-35^q%gua?nS*w`gk(xS;?#qEJzw69CAbljS@9-FDwX{CD|&zmF+ zLtHG+K(W%0Ks~v>mX@1!*$(=^@joP;(GDLOb*b}rbN67_z99~aK%%#O4{pqx6USw( zfy!4V+F^f2_GZXjU6ql!b9ZiF{*3p|K3*?1T1VM$(!V&PsJ6Z+D;>Q+DO5~8(SSoVqi z?0is55c}gYX!l|6cNIQ8Z%T2o&skqySxkH3jeQH`D(6h{D>!Mmk8t1W7kRGF zb)Zk}u6AF&CYJZ5$=!-+_TAl=oWy^1Se!z5^~JHw@yl;Q(l8Zi@dPBg9bOYJjPu4( z$mHbhB~iMqdC}1xE^GKRs~sQi+3Q`3>vOQgMxQ|B_`mY`d2ziKedm;)`UByLR&M|9 zlf~lT;=wB}_cl_OV$N*+C*jrQO5z@5l9Jy0)1H2_>*~_S3o# zdF=UKeR&1nz7!oUi_RXidg2*O$*$7V9I2%reF=MK;yUutUn}w_-5qI-Pg*8lTC1*> zSlvGjxVyDV%xh1I+6*dIOW(!Ix!v2s3eNP1Ma^A$=tFZ;c<)Q=d%NT9U5N^J_tNf` z1HT!;Tk(6p9_CIsy}Xwfi+cZvPxvz@`FL`UIcc&j*ZhZ&`6G_6Q1=%NIGMolNqCyD z-}XSSJdQql`BM;9L7zG8uQ>46+-_a_uu7G;)y8eB>yZArx@vGJG4035-)@G1SC|W{ zPj#JSlfCzjnUCMY*0*=iRE8rkOINX~ zx$GOhcWW!_hHtvt&Q0`?8WKr+?Z>-o_xExyZ@w1&)5d1kadG&#%|9(+<`fUp?XEFO z>=4PzC(@@1?*vX;m=}?SQ2BtKC-#y1B zKbx@P$#>IrmPQ)3;=FIQlOqU|>H4Qv`AX{j3RgzoN>?Z#zl%6^*}Z2?Ch-_{U92Z% zkUeK*X>nl^Krf6Qrj6`B1c=>3GB%%d0j=a+?+Usi2HZ5GG1M{wDx6UPc6S-7(f}Qv z3PrxcPb03R<6FE3%d8%IJz0}^9LNK7`O1Mv6Exd|%i4dNw@385n_oh|l343zM}qn8 z2hmEX7)shw-5n2TyZA-j=-XErjULA=)d5~00`Sdt}OC-u-Cyn)XYQXiv5mH z?K@geEA{^i1xI3n?fWh4TsqOpUKs!ddnnf1+1c6FSX#wARXdets&>B0m%}$EPy;oT zCDW|!Od*+AzJ2dXQ;y}jPl_uDgYOVO2;@ZofB7e+Sq{0e1yT8xH6+UMZ7y=Jq`TAQg4d*-d94$4TT^FUK$%&(YDxoiz{c=y%C51tGzEnd9xH*s zvIUE8u7!Kmd#lgekcfh(I)NwDW~VXxG5gH2oK#nFw9gc~lef9Ki?$;?ELZk)v!DKY zo(B25%pPw4>otG`SSdsrMqDYi21+@A2&Mv};fRL0Sg$T+l^rr?g|J!l$JeEg{6PDC z{p!-Cq?81Rb)&5GB1$&>VaQ~(i__@HKWO&hfg&ksIVIp^-&!k(ZVA5GXRZe zY{G?RCwrBMVokY15RN>2;*(g!H(A|c1R5lO`5b1RLtGwb zT+o`@cmc9GB93;Zs!XA~!oA*l_I2AD_X@U_+I-KxDy^HVjoUOI-;_9Jxk~X#Z1Vak zPTPRRB+?BG{%3O-12F+n8AQb}ONqOPknn2PI<*VC-x^WHGjH`Tm2IbmmrT(`@<*;h z0V;83=)F4ZUQ0Onjo1M)fsuKeCr%1YPCf{7`(Q%pe=h(5nVOhuRcd$?SkA@K;&+cluJ5+l zG9n7SX#j+53#vVK#yk&dPHGDkX3qHhSaRx%=LVvv!U_JQnXAl08f6SbDdSQK7@9{I zO30-OC0tq%4gix?kt-sY2-*BemlQe-Ok2m;uvJQ{{;Rnc@A!~ym3F!2fy=sAgkJH- z8wp2m>$;Xtv{lpA68DMy=1K`<0r-6BMl`&yt7aVZ2P_WPGOnMrpD3F#53Pbr1T_g@ zrL11QU;ySXEKH+Jjv3Amj6kX`?eQa9yxBVL7u^OQ8DRzk|n7yWy!eamwCZpUeO-SC-*wMeX zpJLyjCOY0fw3J<1m$ikLqK&x8G0eT{jOmB6#LR`uPgRzT=#r1OGmq}>0W|xgKvIb= zM80r9sHo-7wNw#QNM>SwQlQ{B2SjWNG#VKh5_XUu2j~KgIv#NQG!=vs9NZI+0dNQa zz=Pa8Kp_HXaaszx8fsR-V-CKq5pRY~ zQL_UBSO%MflS>Yn>c#9LH%`KqTFcGy&+Cv=^jbB2$D>@e($cO<{(GHb;RJ>^ldImn zK@VT9dipS5+xu-K1nPRZs`%sPW- z7nvm&wzj2x1>__tn0aX?PYGjhrUd4(=ilzWV^d->r3hXu99v`rDpb%g!OrYsJq8kF zqGxi^3J6%EDZwu;TQ?vk5{hu0zTA(4kYuEp+hl-j9sKm2gP=e`7`K8Nw$5bh5yT!q zq6b-e4$wM-g#+tLCzxO~D3xqu9rtV$zv&iweS~WMkaCClr9i0+7M?5=ALGbizD2lC zZh3{<8A?6N#lztpmH$Z9z<^R9kcO?`d&;g7nks>nW)@~pHM+(M}jrKzW;u~f} z2+MS-Q1k>k)tCIY(1Fe-zO6c-?F7x$gD@YU9S=rGOsf>b1#B>D4A`I}6$mC%ZJSAhs z&Dq~GRW<+YMCw|vksA6_yD#eNM9!%8px<}0|q33NW@5DhvCuwn)RP!T)oN&{U*O;xLrbs{Durt3XtbRAzlB z5ow;V1ZO_XtNAOCdygoE%uj;qPw7#{L;)}viN*RsD)q_AmHd@3@D@ReWVAa2H0>RD zfC47M{?j+CB(87KqpNbT5fI;R(yPIS?UCpzdvfA_A9 z{o6nzb8B>>w133>=}7NxGSNAmJITft*C>6v7>Q(z{1pt|E#MfKT?`tqp7qWFk2@P# zqb@UJo_o7|kUit?{$XlLQcA{tA^EB7zU(}mu}dzJ2HFw3?frDR+nxBf_SR=j)eHX) zE?X!ESeP4ZLY(Cs%mv3eKRMh+awY85ziO^vygyjx4h(|z^36D9 z&;Pz8)C9)kIfhrP{8qfPle>0VoK4V5p!dsEQAe6~>RhU{Gx#1xro<#*w&MsFyL^$+ zbW2(%djon6aGmR6Z?;e9D_QAAR2OCXw#-nztn*HG%pr1+sA_>S0A-nIea8v46SN91 zAgZ5<^UFK}L(H1FQVRSrTq$Gwo;#S&x}9^MAU@}mlWa<>tGllIHwx}#=Xa&+pEUSP z2b_CkjAAq`sAB}thPXn}pjEVs`L@(~p2nSXz1`|HF-dnGTAmrX{$O)LaXa&;x|xQK zK}IpXPq6m7^-x`h@L+rA?XM@hC0j>xpU=V+_-j=c7^Xp8qbM#76TU-$p;1hdQqhvCy1Z+3oP^w*vH@|)vRtOcA=XvMV2qeYya*>N=43Yk}^gCbdBnAOzZb`Iii zr@PegqgKo(DgLpl3D=>9$&D+GV7O@tg@s+PChpLm#dh}2lj5BVzul4V)te?^fk8t% zE7>RwSS444&W8Z83U#Wu09ojcicL0pJf>RqQMasXd$M_}$X)ZD|Cv%pHbB|RkCT+RsPzQqHG{c1q|mFcqAtTXIvureM_=%Cg6NUGTtH(Ny%Wl?1g8JORh z;vVpj;)sjfcm)^va2wYV#u-T)dpMlH6`l|!_-wMvt{e@5_v#t<0r`1q_k@Q@X~C;q+1SBXUabB9iX)Mpr9ytz z;TE)kd9$fopB6Y~2%PVa?x&P0}>fKnUG=D1?p1G7D2PRxHR1{MJ5teD2-A`9U#WULop7{)JE3CD+EjW-8!64+O?Eab4H`1a>&ufipyO-rWPpB zz&9KcDQ#pPSlUg%v5jb2J0l4`no;j+>T6rV0*N>0+p?QJHad&$|5cYU9jf*JEXC>QZ@6QBqHx^^eRUM%$39 z%;#L}0-%DVZRtgOInyjDrBarhcYBqB`;oAQS+=@{IOlcd9;FO zJlBn=)VU4yroM!cT}lgfjE@BahIQB^F4-Ib8OqjVA8W0wPIV;0rv6vMAFa#xk2n5a z-Z4)d;219?onwkUvdSnBQ?V&fX0BWpChfbb5vEl2E#ZJaCPX%yQ^_Itr3~=PDj1N; zG+-_eg3t+ZhGq-1q^htoxHrht{8ymDd1_{xgD|kF*1DLFF~FS{_}(|UvJ!}CzW>mt z2wD2pSs8F)tB|Z5L||hU9D_Gi6-o{mBp&QsZGthqgPcTWPIEJKBC}B!EAx<4bH0pi zv9o+>NaQfNa-TYV68s{YWDv^HF^zkiw{crH{08qqX;Y)JITAAKN4}?0Bur~yTm;Cz zUDg#YVqp`hZz??-vo7QCe}6J6uCc=nuW!7ye`RjQ@joG{<-vJp0L|z9H-nul0;(zq zl{EoS7)5MYe1U;y%}3E0ceawUr1m(cAEB|ZXqtozl_|7PI9Qnu%C`$cb1tL9Ny(MJ zsV?-W@%s#PsvtLFN%h$TMEZs$N}H^=6`SwFmV89*{rZ$JP@DX`c5 zsjBSXp38^Q=X%)t(Li9+T(#X-adwB;^lBva?-x~stJAj&|2lRvmX%;->Ih>SDF-Ft zI|!EfhTDNuTKghzqfhzDUgt8ecqu7(u=KtpJ|9p#6EK%zV=nN^-t2Z)VO@Uhuq;)W zN+V+lkQt*e?j}`!5P(sEGDTXuh+gr1o@tctk5c=jHRE@B4SzfP8*_IPrUKx)MH2^z zm0hWZF;s@223t01APhDyDX8`l3=!UwHoM($;+9{#o{R0G2@w36%EEyR+9sk16WCHR z?}zp_tkWn0TGvH!b-4zG>eG3`A>Kk*4T1>+xgEw;1NSJBfLx6tYY@;ZB$>G)vQ7wW z5#XDepj7>cWam03srAI05G4~%xO=1HRxS`sWsODz(*^?tuuR|`0ITgR{b(xL>~G3R zdYc#;=w>$c2U=h{&>S>4s&)cp#L^{X6a87>&c(6D{x;Bn zg9d0&C?)51a3LEQ-zg);K%FfIWH1^6A?09KESS3F4!^v`Ht`^)+UGVmTsQjYPfD5p zz~j8qzG>!~>pRKbq@6z*U!YAL;=YKYC?!fCAVDphYp+=#O=fJ(K;>7yyiNxkVF2%Q zBLrMtZT=bO9GrU}%>YQ7c!tf-MCSsV1{rXI#+x8eM~mjQ4P3`H1QV<)hQSxf!YS#R zMxBHh5#gwKM{9|Zs@xfB3)t_A=8zQC3+_TS3Z=9N(@hvQg|pnXltrmzZ1W33T$DU_ zZ8B{IF~n$Ef2{8B%q~omF6!LhGEPd4R)34VZkA5_ya7_@tUU_m{+3xEr@ptgP0a16 z-|`X1$DWG61o~NDGUIJx!}@Kyo^Neyy7r(90zD?olU-2^w$0H<0c2JBM)mFd$tHNt3ON z>^PVN;1Tl_=KUa8y8r&dV3C}7R&)pOF*u;0G2+EAwTVUCXc&;I=HK|g!a$JF!4+Wy z)+X!3VbROrR@?7p(^LVi&<}Io)|oE%UN@P}P~8Gl7^8v&{shm^d#Y? z>jcPO5MqX-Fs9m}rKY8-om}8M%Nc~WO|6X~%?l#FpaD36z~}{0Y@8r;uIIU(^_DUb z6|@>!7{oGS4{GDpuF`>HFmi7o=W(5`|IGGwE-vNu%8Om^e_TBx-AHA{1zv1URpbwl zhnq4Z?E4T50vzhfSlUAh0GYrT>$zQdcDg`vcJzrB0#!n;r@z7IFyrRJ*D0fq202mW z5HTqN#3PomOi({?t>@Mn+UekX{h^WxSh=wD2vDvI#zlHHMbRQwVW&ie4$%Xzdj4t3 zn{GSHU_3$tK!Z*)h@Lf~*)^_Qg$it4OaRWv_^kqmYs2OEbXf((Dok?Pl<#c-++O~#Z#4pa+xY?jLGJ7qoV(!w@f;f6 zbPR@op6BscxER!8F8j87zeUG4bFOisDvQhKZN+?(X2b@RJxvPLQi8u%F9+Qa&Olb{ z=c+4jy*{{&=yXmD#`b$y3rkS5hth}HibRPZu}}IJ@}I@D{3V}hS#Rlx{W1}9;RK8~ zL8G4*vtf~XUnAe0xrZ*w+*wOQ>v(hKpIz$a-6NURA$~zr&U0WnO_-^XT6V%uGT1Fw z^E1BB1OiyhG|Yh(pu+-C34?}-M=TP16KXIPfpSLoGC;@-LC zi(zyc$`mR4An=()5##gxgjSqDItqOs{s7kvmg&r#Rk=Gu`ZdW(y|cHw@S|zdpWp-W zRU{tg5ZeG7q(>D9-3~w^xo}DULca?F*<>h)lPw~9viWV=RC3%qAqYo|9cYSdw4jkN zoh}g$?udCY z2hl7mcFn<<%E?U)`pZgg z#cG_)y#VBz6Quv4+;pn)ib|kkEfja^Krq7R`ahq8hG+)p$m{^eMnalewUt6M+W4r2 zu9c|%!8OR7XN--Njv6h0Ik^D&l`VI^Va83Nn|+Iwrd{g3S%C(hJ!!^}OR z0t+_rCae!lPY6CHl<-`eqrYl+0Duq>0{{d7LPJG0003`gKb36(lbBIJzX{#@nBGd; zhA^2pQGjM9S2v(c(1?d#8z`*+U5U7+dW4)AxazlpwJz>6n_s^T_2@Ky^d8u=A#C+Qg{pZSk zoqOhf?FCThBBCl_YDM~y-^sOATK`2mf7b(ZS=;WZE;yq-wYgf@5AW^<0{R_sk__pu z?d_K~+crjc)8?{eTHM>)+uVQK*Q$~I5W0lVz5-?AiUzpLZx^<&CK3J-eOV+QuyZd- z-<5m7%}8yP7gE7%-16tX?)6kug^Mg<@`?+kuqbMZvND12%mfy#As7u1B7;+q7)n86 z65vrK5kVG`#}o|%^0l#&N__iPk8QcTb=iwsuTCh(bKPTzfy4d*&76 z4B6$rX4~daWRZ~*M+mhbWF)BXnKk8V@)=ym28Xj7)NnPpjGR)l6yQ%a4B#&lR*hD9_KX0In- z`)Z zpsra(#-!L7Jm0moqUw0ZU)%eTm@ zg{dLENo9`V%q;h%CaFrek%=gk$YxiMVGNJ6-qhApOtL9<3)YOw_A4A6_9fi~v(%xB zxq*9@FViV9@VYaJx#*pW1{W0TuJIU8SLN9$OHr9US@g`pQldx&B3bfEnRGA~b>e)S znjFsj=GL5Z-Xp6kf& zgCMe?hlYQ^_@Fnt1Z%2uE65q8i~!6;>RskWC`l>t*{hKm84AXmg5!Hmw;?>ytIow4 z#`$x^CWD@0V=n7#rJLPkqwr0_YzI4=I{${svP*1)ZVDQc5fFh0X(Cxc zQ-%5@R%x>UOdR>95p`!q=Fve;wSKQHZ&}W3nx|72-%ia;@N+Jaq#3mNJ4jOX>xc7Hv$8j<#oB|D|7?N(w-M*0Beh@N5ubwyeduzwSoPgkEgBoX-X zc*IFb7WjtY3w4C}L)iT#nQppyRnH8rByFlX5HM5`CXpG9)-}vnr=nA@Z)T6yJ_#eY z%60uIssC%0 z`nGo=sSInDvjoy=&n*l^f(5=Kk;HF+tEcIUsMVU$5gfmpbF})C{B@=$6gRlAl=&q0W3 z#OP!60l`g?(L7aF##mj4OIzd|RHXLcC3c^X)WT-=0})%E8*n^ixbw<1gFK|BeUu!7 zX!}LF*-YnES+dj@Ws!#qR*uMV7%xyODNdFG&t`Lw95oO48|RgRwsQHF;TFw(ZrUA9 zKnlgEvM^YwM9e7&l!5ex;gk+i=AtGP_3H50Ym#><40H^+I_t?E>h;r-I`I$xA=k)B zhr05QRT%5@FT~5GH}_4PZW2PiPQy*G#Jrwh#$o*-*CN*D#Fht~TPp!lFiBPMjOWkg z6JH4&)_oB*inTrI$ObRylDTTJa}aGNA@(ZjVWfE^BHhmmdf5ajp7ihvbE0I!ZkJK@ zC*h(NX2Fy)&Bp8dnc4FGw_Me*?H@H_a&W_%bp1y$aaHF%Y5v`FxfL^>dLH();_v5= z8&^5CiPYBVEiQ-LR&EM?2JyfLoc1F*A0@}Y&lh;KK-sVCWsmeZ{Z3WQQJgdVhdVVK zdx3i)cFdyc5$+XI1znJEz4m@aQa=gXe`T&L&cb)k*TDO(g?STo@^!j|=d&h`oHv}K zU3=Z$b4DQ2w|$FMRWX;T^L1 zY}-9<-tG_8NaFf!bI-Q4q1dvjCy^~&2amY2A=y3e$JMk~RpTxcFC~F}1>}f}*Lomp zwhY~o>5Fk0v$%iWfh+#Svdxl#l}u&U4sV-(=RFMtc>7Y=a0Bo=U3d1SE%;~daw(p> zW3n*yCUe$f$;V}p>gQf{XjKVjfxN%+^{GsRAqKK;XXBh?akL+?S>Bd)QI>mI+L>xZ zM&4FwzSh~?wk&*ibuHiIH<3zudD*!jzJ5hY3~W6=ux(>Q%qffN%Rc?H*H=87$r~te zC62S~-7^3D`R^?>VBcfrxnnC^1!

w^4Lg{YIvh+TNSb%Dj1|AL5WA-Pv>AC*n8F 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

46`jX)X*p? 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 z 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 z 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 M!|`YH6$a-20OX{-2><{9 diff --git a/Docs/ReleaseNotes/R0.8-release.md b/Docs/ReleaseNotes/R1.0-release.md similarity index 82% rename from Docs/ReleaseNotes/R0.8-release.md rename to Docs/ReleaseNotes/R1.0-release.md index b4b3de8..e2ff4ec 100644 --- a/Docs/ReleaseNotes/R0.8-release.md +++ b/Docs/ReleaseNotes/R1.0-release.md @@ -1,11 +1,11 @@ -# Platform Abstraction Layer R0.8 Release Notes +# Platform Abstraction Layer R1.0 Release Notes ## Introduction This version is the first release of the Platform Abstraction Layer (PAL) package. The target of PAL is to support easy porting of the mbed Cloud Client services to different platforms and operating systems. -The version also includes a reference porting to the mbedOS 5.1.4 (mbed-os-5.1.4) operating system, running on Cortex-M SoC. +The version also includes a reference porting to the mbedOS 5.2 (mbed-os-5.2) operating system, running on Cortex-M SoC. ## Content -Version R0.8 includes the following features: +Version R1.0 includes the following features: 1. Service APIs: A set of APIs to be used by the mbed Cloud Client services. Currently supported: @@ -19,14 +19,14 @@ Version R0.8 includes the following features: 1. API documentation 2. Porting guide -3. Reference implementation of the Platform APIs for the mbedOS 5.1.4 (mbed-os-5.1.4) OS. +3. Reference implementation of the Platform APIs for the mbedOS 5.2 (mbed-os-5.2) OS. ## Release Unless differently stated in file, the PAL package is released as an Open Source, under the Apache-2.0 license model. You can find a copy of the license [here](https://github.com/ARMmbed/pal/blob/master/apache-2.0.txt). The repository of PAL can be found at: https://github.com/ARMmbed/pal -The Release tag is: PAL-R0.8 +The Release tag is: PAL-R1.0 ## Known issues No known issues exists at the time of release. diff --git a/Docs/html/d1/dee/pal__rtos__test__utils_8c.html b/Docs/html/d1/dee/pal__rtos__test__utils_8c.html index 2a50ade..f7f4086 100644 --- a/Docs/html/d1/dee/pal__rtos__test__utils_8c.html +++ b/Docs/html/d1/dee/pal__rtos__test__utils_8c.html @@ -89,8 +89,6 @@ - - @@ -305,18 +303,6 @@

Function Documentation

Variable Documentation

- -
-
-

Variables

uint32_t g_threadStorage [20]
 
threadsArgument_t threadsArg
 
timerArgument_t timerArgs
- - - -
uint32_t g_threadStorage[20]
-
- -
-
diff --git a/Docs/html/d2/d87/pal__configuration_8h.html b/Docs/html/d2/d87/pal__configuration_8h.html index 46f7a23..57435d6 100644 --- a/Docs/html/d2/d87/pal__configuration_8h.html +++ b/Docs/html/d2/d87/pal__configuration_8h.html @@ -64,7 +64,7 @@   #define PAL_NET_DNS_SUPPORT   true/* add pal support for DNS lookup */   -#define PAL_RTOS_64BIT_TICK_SUPPORTED   true /* add pal support for asynchronous sockets */ +#define PAL_RTOS_64BIT_TICK_SUPPORTED   false /* add pal support for asynchronous sockets */   #define PAL_UNIQUE_THREAD_PRIORITY   (!defined(PAL_IGNORE_UNIQUE_THREAD_PRIORITY))/* if defined code skips the uniqueness priority check */   @@ -147,7 +147,7 @@

Macro Definition Documentation

- +
#define PAL_RTOS_64BIT_TICK_SUPPORTED   true /* add pal support for asynchronous sockets */#define PAL_RTOS_64BIT_TICK_SUPPORTED   false /* add pal support for asynchronous sockets */
diff --git a/Docs/html/d2/d87/pal__configuration_8h_source.html b/Docs/html/d2/d87/pal__configuration_8h_source.html index b9a6c2d..7f9b929 100644 --- a/Docs/html/d2/d87/pal__configuration_8h_source.html +++ b/Docs/html/d2/d87/pal__configuration_8h_source.html @@ -50,7 +50,7 @@
pal_configuration.h
-Go to the documentation of this file.
1 /*
2 * Copyright (c) 2016 ARM Limited. All rights reserved.
3 * SPDX-License-Identifier: Apache-2.0
4 * Licensed under the Apache License, Version 2.0 (the License); you may
5 * not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an AS IS BASIS, WITHOUT
12 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16 
17 
18 #ifndef _PAL_COFIGURATION_H
19 #define _PAL_COFIGURATION_H
20 
21 #ifdef __cplusplus
22 extern "C" {
23 #endif
24 
26 #define PAL_NET_TCP_AND_TLS_SUPPORT true/* add pal support for TCP */
27 #define PAL_NET_ASYNCHRONOUS_SOCKET_API true/* add pal support for asynchronous sockets */
28 #define PAL_NET_DNS_SUPPORT true/* add pal support for DNS lookup */
29 
30 #define PAL_RTOS_64BIT_TICK_SUPPORTED true /* add pal support for asynchronous sockets */
31 #define PAL_UNIQUE_THREAD_PRIORITY (!defined(PAL_IGNORE_UNIQUE_THREAD_PRIORITY))/* if defined code skips the uniqueness priority check */
32 
34 #define PAL_MAX_NUMBER_OF_THREADS 7
35 
37 #define PAL_MAX_SUPORTED_NET_INTEFACES 5
38 
39 #ifdef __GNUC__ // we are compiling using GCC/G++
40  #define PAL_TARGET_POINTER_SIZE __SIZEOF_POINTER__
41  #ifdef __BYTE_ORDER
42  #if __BYTE_ORDER == __BIG_ENDIAN //if both are not defined it is TRUE!
43  #define PAL_COMPILATION_ENDIANITY 1 //define pal compilation endianity (0 is little endian, 1 is big endian)
44  #elif __BYTE_ORDER == __LITTLE_ENDIAN
45  #define PAL_COMPILATION_ENDIANITY 0//define pal compilation endianity (0 is little endian, 1 is big endian)
46  #else
47  #error missing endiantiy defintion for GCC
48  #endif
49 
50  #endif
51 #else
52  #ifdef __arm__ // we are compiling using the ARM compiler
53  #define PAL_TARGET_POINTER_SIZE __sizeof_ptr
54  #ifdef __BIG_ENDIAN
55  #define PAL_COMPILATION_ENDIANITY 1 //define pal compilation endianity (0 is little endian, 1 is big endian)
56  #else
57  #define PAL_COMPILATION_ENDIANITY 0 //define pal compilation endianity (0 is little endian, 1 is big endian)
58  #endif
59  #else
60  //#error neither ARMCC nor GCC used for compilation - not supported
61  #endif
62 
63 
64 #endif
65 
66 #ifdef __cplusplus
67 }
68 #endif
69 #endif //_PAL_COFIGURATION_H
+Go to the documentation of this file.
1 /*
2 * Copyright (c) 2016 ARM Limited. All rights reserved.
3 * SPDX-License-Identifier: Apache-2.0
4 * Licensed under the Apache License, Version 2.0 (the License); you may
5 * not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an AS IS BASIS, WITHOUT
12 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16 
17 
18 #ifndef _PAL_COFIGURATION_H
19 #define _PAL_COFIGURATION_H
20 
21 #ifdef __cplusplus
22 extern "C" {
23 #endif
24 
26 #define PAL_NET_TCP_AND_TLS_SUPPORT true/* add pal support for TCP */
27 #define PAL_NET_ASYNCHRONOUS_SOCKET_API true/* add pal support for asynchronous sockets */
28 #define PAL_NET_DNS_SUPPORT true/* add pal support for DNS lookup */
29 
30 #define PAL_RTOS_64BIT_TICK_SUPPORTED false /* add pal support for asynchronous sockets */
31 #define PAL_UNIQUE_THREAD_PRIORITY (!defined(PAL_IGNORE_UNIQUE_THREAD_PRIORITY))/* if defined code skips the uniqueness priority check */
32 
34 #define PAL_MAX_NUMBER_OF_THREADS 7
35 
37 #define PAL_MAX_SUPORTED_NET_INTEFACES 5
38 
39 #ifdef __GNUC__ // we are compiling using GCC/G++
40  #define PAL_TARGET_POINTER_SIZE __SIZEOF_POINTER__
41  #ifdef __BYTE_ORDER
42  #if __BYTE_ORDER == __BIG_ENDIAN //if both are not defined it is TRUE!
43  #define PAL_COMPILATION_ENDIANITY 1 //define pal compilation endianity (0 is little endian, 1 is big endian)
44  #elif __BYTE_ORDER == __LITTLE_ENDIAN
45  #define PAL_COMPILATION_ENDIANITY 0//define pal compilation endianity (0 is little endian, 1 is big endian)
46  #else
47  #error missing endiantiy defintion for GCC
48  #endif
49 
50  #endif
51 #else
52  #ifdef __arm__ // we are compiling using the ARM compiler
53  #define PAL_TARGET_POINTER_SIZE __sizeof_ptr
54  #ifdef __BIG_ENDIAN
55  #define PAL_COMPILATION_ENDIANITY 1 //define pal compilation endianity (0 is little endian, 1 is big endian)
56  #else
57  #define PAL_COMPILATION_ENDIANITY 0 //define pal compilation endianity (0 is little endian, 1 is big endian)
58  #endif
59  #else
60  //#error neither ARMCC nor GCC used for compilation - not supported
61  #endif
62 
63 
64 #endif
65 
66 #ifdef __cplusplus
67 }
68 #endif
69 #endif //_PAL_COFIGURATION_H
+the create function MUST not wait for platform resources and it should return "PAL_ERR_RTOS_RESOURCE", unless the platform API is blocking.
@@ -1275,7 +1279,10 @@

Function Documentation

-
Returns
PAL_SUCCESS when the timer was created successfully. A specific error in case of failure.
+
Returns
PAL_SUCCESS when the timer was created successfully. A specific error in case of failure. PAL_ERR_NO_MEMORY: no memory resource available to create timer object.
+
Note
the timer callback function runs according to the platform resources of stack-size and priority.
+
+the create function MUST not wait for platform resources and it should return "PAL_ERR_RTOS_RESOURCE", unless the platform API is blocking.
@@ -1400,19 +1407,6 @@

Function Documentation

Returns
PAL_SUCCESS(0) in case of success, PAL_ERR_CREATION_FAILED in case of failure.
- - -

Variable Documentation

- -
-
- - - - -
palThread_t g_palThreads[PAL_MAX_NUMBER_OF_THREADS] = {0}
-
-
diff --git a/Docs/html/d5/d2a/pal__socket__test_8c.html b/Docs/html/d5/d2a/pal__socket__test_8c.html index b7f6a4f..46c4a30 100644 --- a/Docs/html/d5/d2a/pal__socket__test_8c.html +++ b/Docs/html/d5/d2a/pal__socket__test_8c.html @@ -61,6 +61,7 @@ #include "unity_fixture.h"
#include "pal_test_utils.h"
#include "pal_socket_test_utils.h"
+#include "string.h"
diff --git a/Docs/html/d5/d59/pal__plat__rtos_8h.html b/Docs/html/d5/d59/pal__plat__rtos_8h.html index 78aed06..161977c 100644 --- a/Docs/html/d5/d59/pal__plat__rtos_8h.html +++ b/Docs/html/d5/d59/pal__plat__rtos_8h.html @@ -47,13 +47,13 @@
pal_plat_rtos.h File Reference
-
#include "pal_configuration.h"
+
#include "pal_rtos.h"
+#include "pal_configuration.h"
#include "pal_types.h"

Go to the source code of this file.

@@ -130,12 +130,6 @@
-

Macros

 
int32_t pal_plat_osAtomicIncrement (int32_t *valuePtr, int32_t increment)
 
- - - -

-Variables

uint8_t g_palThreadPriorities [PAL_MAX_NUMBER_OF_THREADS]
 An array of PAL thread priorities. The size of the array is defined in the Service API (pal_rtos.h) by "PAL_MAX_NUMBER_OF_THREADS". More...
 

Function Documentation

@@ -233,8 +227,11 @@

Function Documentation

-

Get the RTOS kernel system timer counter.

Note
This counter wraps around very often (for example, once every 42 sec for 100Mhz).
-
Returns
The RTOS kernel system timer counter.
+

Get the RTOS kernel system timer counter.

+
Returns
The RTOS kernel system timer counter.
+
Note
The required tick counter is the OS (platform) kernel system tick counter.
+
+This counter wraps around very often (for example, once every 42 sec for 100Mhz).
@@ -251,7 +248,9 @@

Function Documentation

-

Get the RTOS kernel system timer counter.

Returns
The RTOS kernel system timer counter.
+

Get the RTOS kernel system timer counter.

+
Returns
The RTOS kernel system timer counter.
+
Note
The required tick counter is the OS (platform) kernel system tick counter.
@@ -404,7 +403,8 @@

Function Documentation

-
Returns
PAL_SUCCESS when the message queue was created successfully, a specific error in case of failure.
+
Returns
PAL_SUCCESS when the message queue was created successfully, a specific error in case of failure. PAL_ERR_NO_MEMORY: no memory resource available to create message queue object.
+
Note
the create function MUST not wait for platform resources and it should return "PAL_ERR_RTOS_RESOURCE", unless the platform API is blocking.
@@ -452,7 +452,8 @@

Function Documentation

-
Returns
PAL_SUCCESS when the mutex was created successfully, a specific error in case of failure.
+
Returns
PAL_SUCCESS when the mutex was created successfully, a specific error in case of failure. PAL_ERR_NO_MEMORY: no memory resource available to create mutex object.
+
Note
the create function MUST not wait for platform resources and it should return "PAL_ERR_RTOS_RESOURCE", unless the platform API is blocking.
@@ -626,7 +627,8 @@

Function Documentation

-
Returns
PAL_SUCCESS when the memory pool was created successfully, a specific error in case of failure.
+
Returns
PAL_SUCCESS when the memory pool was created successfully, a specific error in case of failure. PAL_ERR_NO_MEMORY: no memory resource available to create memory pool object.
+
Note
the create function MUST not wait for platform resources and it should return "PAL_ERR_RTOS_RESOURCE", unless the platform API is blocking.
@@ -737,7 +739,8 @@

Function Documentation

-
Returns
PAL_SUCCESS when the semaphore was created successfully, a specific error in case of failure.
+
Returns
PAL_SUCCESS when the semaphore was created successfully, a specific error in case of failure. PAL_ERR_NO_MEMORY: no memory resource available to create semaphore object.
+
Note
the create function MUST not wait for platform resources and it should return "PAL_ERR_RTOS_RESOURCE", unless the platform API is blocking.
@@ -901,7 +904,9 @@

Function Documentation

Returns
The ID of the created thread, in case of error return zero.
Note
Each thread MUST have a unique priority.
-When the priority of the created thread function is higher than the current running thread, the created thread function starts instantly and becomes the new running thread.
+When the priority of the created thread function is higher than the current running thread, the created thread function starts instantly and becomes the new running thread. +
+the create function MUST not wait for platform resources and it should return "PAL_ERR_RTOS_RESOURCE", unless the platform API is blocking.
@@ -1007,7 +1012,10 @@

Function Documentation

-
Returns
PAL_SUCCESS when the timer was created successfully. A specific error in case of failure.
+
Returns
PAL_SUCCESS when the timer was created successfully. A specific error in case of failure. PAL_ERR_NO_MEMORY: no memory resource available to create timer object.
+
Note
the timer callback function runs according to the platform resources of stack-size and priority.
+
+the create function MUST not wait for platform resources and it should return "PAL_ERR_RTOS_RESOURCE", unless the platform API is blocking.
@@ -1132,21 +1140,6 @@

Function Documentation

Returns
PAL_SUCCESS(0) in case of success, PAL_ERR_CREATION_FAILED in case of failure.
- - -

Variable Documentation

- -
-
- - - - -
uint8_t g_palThreadPriorities[PAL_MAX_NUMBER_OF_THREADS]
-
- -

An array of PAL thread priorities. The size of the array is defined in the Service API (pal_rtos.h) by "PAL_MAX_NUMBER_OF_THREADS".

-
diff --git a/Docs/html/d5/d59/pal__plat__rtos_8h_source.html b/Docs/html/d5/d59/pal__plat__rtos_8h_source.html index a6f2cf9..055df43 100644 --- a/Docs/html/d5/d59/pal__plat__rtos_8h_source.html +++ b/Docs/html/d5/d59/pal__plat__rtos_8h_source.html @@ -50,57 +50,57 @@
pal_plat_rtos.h
-Go to the documentation of this file.
1 /*
2 * Copyright (c) 2016 ARM Limited. All rights reserved.
3 * SPDX-License-Identifier: Apache-2.0
4 * Licensed under the Apache License, Version 2.0 (the License); you may
5 * not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an AS IS BASIS, WITHOUT
12 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16 
17 
18 #ifndef _PAL_PLAT_RTOS_H
19 #define _PAL_PLAT_RTOS_H
20 
21 #ifdef __cplusplus
22 extern "C" {
23 #endif
24 
25 #include "pal_configuration.h"
26 #include "pal_types.h"
27 
28 #if PAL_UNIQUE_THREAD_PRIORITY
43 
44 #define PRIORYT_INDEX_OFFSET 3
45 #endif //PAL_UNIQUE_THREAD_PRIORITY
46 
48 extern uint8_t g_palThreadPriorities[PAL_MAX_NUMBER_OF_THREADS];
49 
52 void pal_plat_osReboot(void);
53 
59 palStatus_t pal_plat_RTOSInitialize(void* opaqueContext);
60 
63 void pal_plat_RTOSDestroy(void);
64 
69 uint32_t pal_plat_osKernelSysTick();
70 
74 uint64_t pal_plat_osKernelSysTick64(void); // optional API - not part of original CMSIS API.
75 
79 uint64_t pal_plat_osKernelSysTickMicroSec(uint64_t microseconds);
80 
87 uint64_t pal_plat_osKernelSysMilliSecTick(uint64_t sysTicks);
88 
93 
109 palStatus_t pal_plat_osThreadCreate(palThreadFuncPtr function, void* funcArgument, palThreadPriority_t priority, uint32_t stackSize, uint32_t* stackPtr, palThreadLocalStore_t* store, palThreadID_t* threadID);
110 
118 
124 
129 
136 palStatus_t pal_plat_osDelay(uint32_t milliseconds);
137 
147 palStatus_t pal_plat_osTimerCreate(palTimerFuncPtr function, void* funcArgument, palTimerType_t timerType, palTimerID_t* timerID);
148 
156 palStatus_t pal_plat_osTimerStart(palTimerID_t timerID, uint32_t millisec);
157 
165 
173 
181 
193 palStatus_t pal_plat_osMutexWait(palMutexID_t mutexID, uint32_t millisec);
194 
202 
214 
222 palStatus_t pal_plat_osSemaphoreCreate(uint32_t count, palSemaphoreID_t* semaphoreID);
223 
233 palStatus_t pal_plat_osSemaphoreWait(palSemaphoreID_t semaphoreID, uint32_t millisec, int32_t* countersAvailable);
234 
242 
253 
262 palStatus_t pal_plat_osPoolCreate(uint32_t blockSize, uint32_t blockCount, palMemoryPoolID_t* memoryPoolID);
263 
270 void* pal_plat_osPoolAlloc(palMemoryPoolID_t memoryPoolID);
271 
278 void* pal_plat_osPoolCAlloc(palMemoryPoolID_t memoryPoolID);
279 
287 palStatus_t pal_plat_osPoolFree(palMemoryPoolID_t memoryPoolID, void* block);
288 
296 
304 palStatus_t pal_plat_osMessageQueueCreate(uint32_t messageQSize, palMessageQID_t* messageQID);
305 
314 palStatus_t pal_plat_osMessagePut(palMessageQID_t messageQID, uint32_t info, uint32_t timeout);
315 
327 palStatus_t pal_plat_osMessageGet(palMessageQID_t messageQID, uint32_t timeout, uint32_t* messageValue);
328 
336 
344 int32_t pal_plat_osAtomicIncrement(int32_t* valuePtr, int32_t increment);
345 
346 #ifdef DEBUG
347 #include "stdio.h"
348 #define pal_plat_printf(ARGS...) printf(ARGS)
349 #define pal_plat_vprintf(FORMAT,LIST) vprintf(FORMAT,LIST)
350 
351 #endif
352 #ifdef __cplusplus
353 }
354 #endif
355 #endif //_PAL_COMMON_H
palStatus_t pal_plat_osPoolFree(palMemoryPoolID_t memoryPoolID, void *block)
Definition: pal_plat_rtos.c:773
-
palStatus_t pal_plat_osSemaphoreDelete(palSemaphoreID_t *semaphoreID)
Definition: pal_plat_rtos.c:664
+Go to the documentation of this file.
1 /*
2 * Copyright (c) 2016 ARM Limited. All rights reserved.
3 * SPDX-License-Identifier: Apache-2.0
4 * Licensed under the Apache License, Version 2.0 (the License); you may
5 * not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an AS IS BASIS, WITHOUT
12 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16 
17 
18 #ifndef _PAL_PLAT_RTOS_H
19 #define _PAL_PLAT_RTOS_H
20 
21 #ifdef __cplusplus
22 extern "C" {
23 #endif
24 
25 #include "pal_rtos.h"
26 #include "pal_configuration.h"
27 #include "pal_types.h"
28 
29 #if PAL_UNIQUE_THREAD_PRIORITY
30 
45 extern uint8_t g_palThreadPriorities[PAL_MAX_NUMBER_OF_THREADS];
46 
47 #define PRIORYT_INDEX_OFFSET 3
48 #endif //PAL_UNIQUE_THREAD_PRIORITY
49 
52 void pal_plat_osReboot(void);
53 
59 palStatus_t pal_plat_RTOSInitialize(void* opaqueContext);
60 
63 void pal_plat_RTOSDestroy(void);
64 
72 uint32_t pal_plat_osKernelSysTick();
73 
80 uint64_t pal_plat_osKernelSysTick64(void); // optional API - not part of original CMSIS API.
81 
85 uint64_t pal_plat_osKernelSysTickMicroSec(uint64_t microseconds);
86 
93 uint64_t pal_plat_osKernelSysMilliSecTick(uint64_t sysTicks);
94 
99 
116 palStatus_t pal_plat_osThreadCreate(palThreadFuncPtr function, void* funcArgument, palThreadPriority_t priority, uint32_t stackSize, uint32_t* stackPtr, palThreadLocalStore_t* store, palThreadID_t* threadID);
117 
125 
131 
136 
143 palStatus_t pal_plat_osDelay(uint32_t milliseconds);
144 
158 palStatus_t pal_plat_osTimerCreate(palTimerFuncPtr function, void* funcArgument, palTimerType_t timerType, palTimerID_t* timerID);
159 
167 palStatus_t pal_plat_osTimerStart(palTimerID_t timerID, uint32_t millisec);
168 
176 
184 
194 
206 palStatus_t pal_plat_osMutexWait(palMutexID_t mutexID, uint32_t millisec);
207 
215 
227 
237 palStatus_t pal_plat_osSemaphoreCreate(uint32_t count, palSemaphoreID_t* semaphoreID);
238 
248 palStatus_t pal_plat_osSemaphoreWait(palSemaphoreID_t semaphoreID, uint32_t millisec, int32_t* countersAvailable);
249 
257 
268 
279 palStatus_t pal_plat_osPoolCreate(uint32_t blockSize, uint32_t blockCount, palMemoryPoolID_t* memoryPoolID);
280 
287 void* pal_plat_osPoolAlloc(palMemoryPoolID_t memoryPoolID);
288 
295 void* pal_plat_osPoolCAlloc(palMemoryPoolID_t memoryPoolID);
296 
304 palStatus_t pal_plat_osPoolFree(palMemoryPoolID_t memoryPoolID, void* block);
305 
313 
323 palStatus_t pal_plat_osMessageQueueCreate(uint32_t messageQSize, palMessageQID_t* messageQID);
324 
333 palStatus_t pal_plat_osMessagePut(palMessageQID_t messageQID, uint32_t info, uint32_t timeout);
334 
346 palStatus_t pal_plat_osMessageGet(palMessageQID_t messageQID, uint32_t timeout, uint32_t* messageValue);
347 
355 
363 int32_t pal_plat_osAtomicIncrement(int32_t* valuePtr, int32_t increment);
364 
365 #ifdef DEBUG
366 #include "stdio.h"
367 #define pal_plat_printf(ARGS...) printf(ARGS)
368 #define pal_plat_vprintf(FORMAT,LIST) vprintf(FORMAT,LIST)
369 
370 #endif
371 #ifdef __cplusplus
372 }
373 #endif
374 #endif //_PAL_COMMON_H
palStatus_t pal_plat_osPoolFree(palMemoryPoolID_t memoryPoolID, void *block)
Definition: pal_plat_rtos.c:795
+
palStatus_t pal_plat_osSemaphoreDelete(palSemaphoreID_t *semaphoreID)
Definition: pal_plat_rtos.c:686
uintptr_t palSemaphoreID_t
Definition: pal_rtos.h:37
-
void pal_plat_osReboot(void)
Definition: pal_plat_rtos.c:159
+
void pal_plat_osReboot(void)
Definition: pal_plat_rtos.c:181
Definition: pal_rtos.h:67
uint64_t pal_plat_osKernelSysTick64(void)
-
palStatus_t pal_plat_osTimerStart(palTimerID_t timerID, uint32_t millisec)
Definition: pal_plat_rtos.c:389
-
void * pal_plat_osThreadGetLocalStore()
Definition: pal_plat_rtos.c:335
-
uint64_t pal_plat_osKernelSysTickMicroSec(uint64_t microseconds)
Definition: pal_plat_rtos.c:218
-
palStatus_t pal_plat_osSemaphoreCreate(uint32_t count, palSemaphoreID_t *semaphoreID)
Definition: pal_plat_rtos.c:581
-
palStatus_t pal_plat_osSemaphoreWait(palSemaphoreID_t semaphoreID, uint32_t millisec, int32_t *countersAvailable)
Definition: pal_plat_rtos.c:616
+
palStatus_t pal_plat_osTimerStart(palTimerID_t timerID, uint32_t millisec)
Definition: pal_plat_rtos.c:411
+
void * pal_plat_osThreadGetLocalStore()
Definition: pal_plat_rtos.c:357
+
uint64_t pal_plat_osKernelSysTickMicroSec(uint64_t microseconds)
Definition: pal_plat_rtos.c:240
+
palStatus_t pal_plat_osSemaphoreCreate(uint32_t count, palSemaphoreID_t *semaphoreID)
Definition: pal_plat_rtos.c:603
+
palStatus_t pal_plat_osSemaphoreWait(palSemaphoreID_t semaphoreID, uint32_t millisec, int32_t *countersAvailable)
Definition: pal_plat_rtos.c:638
enum palTimerType palTimerType_t
Timers types supported in PAL.
-
palStatus_t pal_plat_osTimerCreate(palTimerFuncPtr function, void *funcArgument, palTimerType_t timerType, palTimerID_t *timerID)
Definition: pal_plat_rtos.c:352
-
void pal_plat_RTOSDestroy(void)
Definition: pal_plat_rtos.c:184
-
void * pal_plat_osPoolCAlloc(palMemoryPoolID_t memoryPoolID)
Definition: pal_plat_rtos.c:757
-
int32_t pal_plat_osAtomicIncrement(int32_t *valuePtr, int32_t increment)
Definition: pal_plat_rtos.c:968
+
palStatus_t pal_plat_osTimerCreate(palTimerFuncPtr function, void *funcArgument, palTimerType_t timerType, palTimerID_t *timerID)
Definition: pal_plat_rtos.c:374
+
void pal_plat_RTOSDestroy(void)
Definition: pal_plat_rtos.c:206
+
void * pal_plat_osPoolCAlloc(palMemoryPoolID_t memoryPoolID)
Definition: pal_plat_rtos.c:779
+
int32_t pal_plat_osAtomicIncrement(int32_t *valuePtr, int32_t increment)
Definition: pal_plat_rtos.c:965
-
palStatus_t pal_plat_osMessageQueueDestroy(palMessageQID_t *messageQID)
Definition: pal_plat_rtos.c:925
+
palStatus_t pal_plat_osMessageQueueDestroy(palMessageQID_t *messageQID)
Definition: pal_plat_rtos.c:947
void(* palTimerFuncPtr)(void const *funcArgument)
PAL timer function prototype.
Definition: pal_rtos.h:48
#define PAL_MAX_NUMBER_OF_THREADS
number of valid priorities limits the number of threads- if priorities are added this value should be...
Definition: pal_configuration.h:34
-
palStatus_t pal_plat_osMutexRelease(palMutexID_t mutexID)
Definition: pal_plat_rtos.c:529
-
palStatus_t pal_plat_osMessagePut(palMessageQID_t messageQID, uint32_t info, uint32_t timeout)
Definition: pal_plat_rtos.c:864
+ +
palStatus_t pal_plat_osMutexRelease(palMutexID_t mutexID)
Definition: pal_plat_rtos.c:551
+
palStatus_t pal_plat_osMessagePut(palMessageQID_t messageQID, uint32_t info, uint32_t timeout)
Definition: pal_plat_rtos.c:886
uintptr_t palMutexID_t
Definition: pal_rtos.h:36
-
uint8_t g_palThreadPriorities[PAL_MAX_NUMBER_OF_THREADS]
An array of PAL thread priorities. The size of the array is defined in the Service API (pal_rtos...
void(* palThreadFuncPtr)(void const *funcArgument)
PAL thread function prototype.
Definition: pal_rtos.h:51
-
palStatus_t pal_plat_osTimerStop(palTimerID_t timerID)
Definition: pal_plat_rtos.c:414
+
palStatus_t pal_plat_osTimerStop(palTimerID_t timerID)
Definition: pal_plat_rtos.c:436
uintptr_t palMessageQID_t
Definition: pal_rtos.h:39
-
palStatus_t pal_plat_osDelay(uint32_t milliseconds)
Definition: pal_plat_rtos.c:196
-
palStatus_t pal_plat_osMutexDelete(palMutexID_t *mutexID)
Definition: pal_plat_rtos.c:554
-
palStatus_t pal_plat_osPoolDestroy(palMemoryPoolID_t *memoryPoolID)
Definition: pal_plat_rtos.c:798
-
palStatus_t pal_plat_osMutexCreate(palMutexID_t *mutexID)
Definition: pal_plat_rtos.c:467
+
palStatus_t pal_plat_osDelay(uint32_t milliseconds)
Definition: pal_plat_rtos.c:218
+
palStatus_t pal_plat_osMutexDelete(palMutexID_t *mutexID)
Definition: pal_plat_rtos.c:576
+
palStatus_t pal_plat_osPoolDestroy(palMemoryPoolID_t *memoryPoolID)
Definition: pal_plat_rtos.c:820
+
palStatus_t pal_plat_osMutexCreate(palMutexID_t *mutexID)
Definition: pal_plat_rtos.c:489
enum pal_osPriority palThreadPriority_t
Available priorities in PAL implementation, each priority can appear only once.
-
palStatus_t pal_plat_osMessageQueueCreate(uint32_t messageQSize, palMessageQID_t *messageQID)
Definition: pal_plat_rtos.c:815
-
palThreadID_t pal_plat_osThreadGetId()
Definition: pal_plat_rtos.c:293
-
palStatus_t pal_plat_RTOSInitialize(void *opaqueContext)
Definition: pal_plat_rtos.c:164
-
uint32_t pal_plat_osKernelSysTick()
Definition: pal_plat_rtos.c:211
+
palStatus_t pal_plat_osMessageQueueCreate(uint32_t messageQSize, palMessageQID_t *messageQID)
Definition: pal_plat_rtos.c:837
+
palThreadID_t pal_plat_osThreadGetId()
Definition: pal_plat_rtos.c:315
+
palStatus_t pal_plat_RTOSInitialize(void *opaqueContext)
Definition: pal_plat_rtos.c:186
+
uint32_t pal_plat_osKernelSysTick()
Definition: pal_plat_rtos.c:233
uintptr_t palMemoryPoolID_t
Definition: pal_rtos.h:38
uintptr_t palTimerID_t
Definition: pal_rtos.h:35
-
palStatus_t pal_plat_osSemaphoreRelease(palSemaphoreID_t semaphoreID)
Definition: pal_plat_rtos.c:639
-
palStatus_t pal_plat_osMutexWait(palMutexID_t mutexID, uint32_t millisec)
Definition: pal_plat_rtos.c:503
-
palStatus_t pal_plat_osThreadCreate(palThreadFuncPtr function, void *funcArgument, palThreadPriority_t priority, uint32_t stackSize, uint32_t *stackPtr, palThreadLocalStore_t *store, palThreadID_t *threadID)
Definition: pal_plat_rtos.c:236
-
void * pal_plat_osPoolAlloc(palMemoryPoolID_t memoryPoolID)
Definition: pal_plat_rtos.c:741
+
palStatus_t pal_plat_osSemaphoreRelease(palSemaphoreID_t semaphoreID)
Definition: pal_plat_rtos.c:661
+
palStatus_t pal_plat_osMutexWait(palMutexID_t mutexID, uint32_t millisec)
Definition: pal_plat_rtos.c:525
+
palStatus_t pal_plat_osThreadCreate(palThreadFuncPtr function, void *funcArgument, palThreadPriority_t priority, uint32_t stackSize, uint32_t *stackPtr, palThreadLocalStore_t *store, palThreadID_t *threadID)
Definition: pal_plat_rtos.c:258
+
void * pal_plat_osPoolAlloc(palMemoryPoolID_t memoryPoolID)
Definition: pal_plat_rtos.c:763
uintptr_t palThreadID_t
Primitives IDs types declarations.
Definition: pal_rtos.h:34
-
palStatus_t pal_plat_osMessageGet(palMessageQID_t messageQID, uint32_t timeout, uint32_t *messageValue)
Definition: pal_plat_rtos.c:889
-
uint64_t pal_plat_osKernelSysMilliSecTick(uint64_t sysTicks)
Definition: pal_plat_rtos.c:225
-
uint64_t pal_plat_osKernelSysTickFrequency(void)
Definition: pal_plat_rtos.c:231
+
palStatus_t pal_plat_osMessageGet(palMessageQID_t messageQID, uint32_t timeout, uint32_t *messageValue)
Definition: pal_plat_rtos.c:911
+
uint64_t pal_plat_osKernelSysMilliSecTick(uint64_t sysTicks)
Definition: pal_plat_rtos.c:247
+
uint64_t pal_plat_osKernelSysTickFrequency(void)
Definition: pal_plat_rtos.c:253
int32_t palStatus_t
Definition: pal_types.h:31
-
palStatus_t pal_plat_osThreadTerminate(palThreadID_t *threadID)
Definition: pal_plat_rtos.c:300
-
palStatus_t pal_plat_osTimerDelete(palTimerID_t *timerID)
Definition: pal_plat_rtos.c:439
-
palStatus_t pal_plat_osPoolCreate(uint32_t blockSize, uint32_t blockCount, palMemoryPoolID_t *memoryPoolID)
Definition: pal_plat_rtos.c:691
+
palStatus_t pal_plat_osThreadTerminate(palThreadID_t *threadID)
Definition: pal_plat_rtos.c:322
+
palStatus_t pal_plat_osTimerDelete(palTimerID_t *timerID)
Definition: pal_plat_rtos.c:461
+
palStatus_t pal_plat_osPoolCreate(uint32_t blockSize, uint32_t blockCount, palMemoryPoolID_t *memoryPoolID)
Definition: pal_plat_rtos.c:713
+
+ + +
+
+ + + + +
#define THREAD_STACK_SIZE   1024*sizeof(uint32_t)
+
+

Typedef Documentation

diff --git a/Docs/html/d9/d28/pal__rtos__test__utils_8h_source.html b/Docs/html/d9/d28/pal__rtos__test__utils_8h_source.html index 371907f..d86e17d 100644 --- a/Docs/html/d9/d28/pal__rtos__test__utils_8h_source.html +++ b/Docs/html/d9/d28/pal__rtos__test__utils_8h_source.html @@ -50,43 +50,43 @@
pal_rtos_test_utils.h
-Go to the documentation of this file.
1 /*
2 * Copyright (c) 2016 ARM Limited. All rights reserved.
3 * SPDX-License-Identifier: Apache-2.0
4 * Licensed under the Apache License, Version 2.0 (the License); you may
5 * not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an AS IS BASIS, WITHOUT
12 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16 
17 #ifndef _PAL_RTOS_TEST_UTILS_H
18 #define _PAL_RTOS_TEST_UTILS_H
19 
20 #include "pal_types.h"
21 #include "pal_rtos.h"
22 #include "pal_test_utils.h"
23 
24 
25 typedef struct threadsArgument{
26  uint32_t arg1;
27  uint32_t arg2;
28  uint32_t arg3;
29  uint32_t arg4;
30  uint32_t arg5;
31  uint32_t arg6;
32  uint32_t arg7;
34 
35 
37 
38 extern uint32_t g_threadStorage[20];
39 
40 void palThreadFunc1(void const *argument);
41 void palThreadFunc2(void const *argument);
42 void palThreadFunc3(void const *argument);
43 void palThreadFunc4(void const *argument);
44 void palThreadFunc5(void const *argument);
45 void palThreadFunc6(void const *argument);
46 
47 
48 typedef struct timerArgument{
49  uint32_t ticksBeforeTimer;
50  uint32_t ticksInFunc1;
51  uint32_t ticksInFunc2;
53 
55 
56 void palTimerFunc1(void const *argument);
57 void palTimerFunc2(void const *argument);
58 
59 
60 void palThreadFuncCustom1(void const *argument);
61 void palThreadFuncCustom2(void const *argument);
62 void palThreadFuncCustom3(void const *argument);
63 void palThreadFuncCustom4(void const *argument);
64 
65 
66 #define MEMORY_POOL1_BLOCK_SIZE 32
67 #define MEMORY_POOL1_BLOCK_COUNT 5
68 #define MEMORY_POOL2_BLOCK_SIZE 12
69 #define MEMORY_POOL2_BLOCK_COUNT 4
70 
71 extern palMutexID_t mutex1;
72 extern palMutexID_t mutex2;
73 
75 
76 #endif //_PAL_RTOS_TEST_UTILS_H
uint32_t arg1
Definition: pal_rtos_test_utils.h:26
+Go to the documentation of this file.
1 /*
2 * Copyright (c) 2016 ARM Limited. All rights reserved.
3 * SPDX-License-Identifier: Apache-2.0
4 * Licensed under the Apache License, Version 2.0 (the License); you may
5 * not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an AS IS BASIS, WITHOUT
12 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16 
17 #ifndef _PAL_RTOS_TEST_UTILS_H
18 #define _PAL_RTOS_TEST_UTILS_H
19 
20 #include "pal_types.h"
21 #include "pal_rtos.h"
22 #include "pal_test_utils.h"
23 
24 #define THREAD_STACK_SIZE 1024*sizeof(uint32_t)
25 
26 typedef struct threadsArgument{
27  uint32_t arg1;
28  uint32_t arg2;
29  uint32_t arg3;
30  uint32_t arg4;
31  uint32_t arg5;
32  uint32_t arg6;
33  uint32_t arg7;
35 
36 
38 
39 extern uint32_t g_threadStorage[20];
40 
41 void palThreadFunc1(void const *argument);
42 void palThreadFunc2(void const *argument);
43 void palThreadFunc3(void const *argument);
44 void palThreadFunc4(void const *argument);
45 void palThreadFunc5(void const *argument);
46 void palThreadFunc6(void const *argument);
47 
48 
49 typedef struct timerArgument{
50  uint32_t ticksBeforeTimer;
51  uint32_t ticksInFunc1;
52  uint32_t ticksInFunc2;
54 
56 
57 void palTimerFunc1(void const *argument);
58 void palTimerFunc2(void const *argument);
59 
60 
61 void palThreadFuncCustom1(void const *argument);
62 void palThreadFuncCustom2(void const *argument);
63 void palThreadFuncCustom3(void const *argument);
64 void palThreadFuncCustom4(void const *argument);
65 
66 
67 #define MEMORY_POOL1_BLOCK_SIZE 32
68 #define MEMORY_POOL1_BLOCK_COUNT 5
69 #define MEMORY_POOL2_BLOCK_SIZE 12
70 #define MEMORY_POOL2_BLOCK_COUNT 4
71 
72 extern palMutexID_t mutex1;
73 extern palMutexID_t mutex2;
74 
76 
77 #endif //_PAL_RTOS_TEST_UTILS_H
uint32_t arg1
Definition: pal_rtos_test_utils.h:27
uintptr_t palSemaphoreID_t
Definition: pal_rtos.h:37
-
void palTimerFunc2(void const *argument)
Definition: pal_rtos_test_utils.c:208
+
void palTimerFunc2(void const *argument)
Definition: pal_rtos_test_utils.c:207
struct timerArgument timerArgument_t
-
uint32_t arg5
Definition: pal_rtos_test_utils.h:30
+
uint32_t arg5
Definition: pal_rtos_test_utils.h:31
struct threadsArgument threadsArgument_t
palMutexID_t mutex1
Definition: pal_rtos_test.c:33
-
void palThreadFuncCustom3(void const *argument)
Definition: pal_rtos_test_utils.c:225
-
uint32_t arg3
Definition: pal_rtos_test_utils.h:28
-
void palThreadFuncCustom2(void const *argument)
Definition: pal_rtos_test_utils.c:220
+
void palThreadFuncCustom3(void const *argument)
Definition: pal_rtos_test_utils.c:224
+
uint32_t arg3
Definition: pal_rtos_test_utils.h:29
+
void palThreadFuncCustom2(void const *argument)
Definition: pal_rtos_test_utils.c:219
threadsArgument_t g_threadsArg
Definition: pal_rtos_test.c:31
-
uint32_t g_threadStorage[20]
Definition: pal_rtos_test_utils.c:23
+
uint32_t g_threadStorage[20]
Definition: pal_rtos_test.c:30
-
Definition: pal_rtos_test_utils.h:25
+
Definition: pal_rtos_test_utils.h:26
palMutexID_t mutex2
Definition: pal_rtos_test.c:34
-
void palThreadFuncCustom1(void const *argument)
Definition: pal_rtos_test_utils.c:215
-
uint32_t arg2
Definition: pal_rtos_test_utils.h:27
+
void palThreadFuncCustom1(void const *argument)
Definition: pal_rtos_test_utils.c:214
+
uint32_t arg2
Definition: pal_rtos_test_utils.h:28
uintptr_t palMutexID_t
Definition: pal_rtos.h:36
-
uint32_t ticksInFunc2
Definition: pal_rtos_test_utils.h:51
-
void palThreadFunc2(void const *argument)
Definition: pal_rtos_test_utils.c:61
-
Definition: pal_rtos_test_utils.h:48
-
void palThreadFunc4(void const *argument)
Definition: pal_rtos_test_utils.c:124
-
uint32_t ticksInFunc1
Definition: pal_rtos_test_utils.h:50
+
uint32_t ticksInFunc2
Definition: pal_rtos_test_utils.h:52
+
void palThreadFunc2(void const *argument)
Definition: pal_rtos_test_utils.c:60
+
Definition: pal_rtos_test_utils.h:49
+
void palThreadFunc4(void const *argument)
Definition: pal_rtos_test_utils.c:123
+
uint32_t ticksInFunc1
Definition: pal_rtos_test_utils.h:51
timerArgument_t g_timerArgs
Definition: pal_rtos_test.c:32
palSemaphoreID_t semaphore1
Definition: pal_rtos_test.c:35
-
void palThreadFunc5(void const *argument)
Definition: pal_rtos_test_utils.c:153
-
void palThreadFuncCustom4(void const *argument)
Definition: pal_rtos_test_utils.c:230
-
void palThreadFunc1(void const *argument)
Definition: pal_rtos_test_utils.c:27
-
uint32_t ticksBeforeTimer
Definition: pal_rtos_test_utils.h:49
-
void palThreadFunc6(void const *argument)
Definition: pal_rtos_test_utils.c:176
-
uint32_t arg7
Definition: pal_rtos_test_utils.h:32
-
uint32_t arg6
Definition: pal_rtos_test_utils.h:31
-
uint32_t arg4
Definition: pal_rtos_test_utils.h:29
-
void palThreadFunc3(void const *argument)
Definition: pal_rtos_test_utils.c:86
-
void palTimerFunc1(void const *argument)
Definition: pal_rtos_test_utils.c:201
+
void palThreadFunc5(void const *argument)
Definition: pal_rtos_test_utils.c:152
+
void palThreadFuncCustom4(void const *argument)
Definition: pal_rtos_test_utils.c:229
+
void palThreadFunc1(void const *argument)
Definition: pal_rtos_test_utils.c:26
+
uint32_t ticksBeforeTimer
Definition: pal_rtos_test_utils.h:50
+
void palThreadFunc6(void const *argument)
Definition: pal_rtos_test_utils.c:175
+
uint32_t arg7
Definition: pal_rtos_test_utils.h:33
+
uint32_t arg6
Definition: pal_rtos_test_utils.h:32
+
uint32_t arg4
Definition: pal_rtos_test_utils.h:30
+
void palThreadFunc3(void const *argument)
Definition: pal_rtos_test_utils.c:85
+
void palTimerFunc1(void const *argument)
Definition: pal_rtos_test_utils.c:200
@@ -670,7 +670,7 @@

Function Documentation

-
Returns
PAL_SUCCESS when mutex created successfully. Specific error in case of failure.
+
Returns
PAL_SUCCESS when memory pool created successfully. PAL_ERR_NO_MEMORY: no memory resource available to create memory pool object.
@@ -781,7 +781,7 @@

Function Documentation

-
Returns
PAL_SUCCESS when mutex created successfully. Specific error in case of failure.
+
Returns
PAL_SUCCESS when semaphore created successfully. PAL_ERR_NO_MEMORY: no memory resource available to create semaphore object.
@@ -1053,7 +1053,8 @@

Function Documentation

-
Returns
PAL_SUCCESS when timer created successfully. Specific error in case of failure.
+
Returns
PAL_SUCCESS when timer created successfully. PAL_ERR_NO_MEMORY: no memory resource available to create timer object.
+
Note
the timer function runs according to the platform resources of stack-size and priority.
diff --git a/Docs/html/globals_defs.html b/Docs/html/globals_defs.html index 482053a..938a02b 100644 --- a/Docs/html/globals_defs.html +++ b/Docs/html/globals_defs.html @@ -104,7 +104,7 @@

- n -

    - p -

    • PAL_DIVIDE_ROUND_UP -: pal_macros.h +: pal_macros.h
    • PAL_HOST_TO_LITTLE_ENDIAN_16BIT : pal_macros.h @@ -146,7 +146,7 @@

      - p -

        : pal_macros.h
      • PAL_MAX -: pal_macros.h +: pal_macros.h
      • PAL_MAX_INT32 : pal_macros.h @@ -173,7 +173,7 @@

        - p -

          : pal_macros.h
        • PAL_MIN -: pal_macros.h +: pal_macros.h
        • PAL_MIN_INT32 : pal_macros.h @@ -206,10 +206,10 @@

          - p -

            : pal_network.h
          • PAL_NET_SELECT_IS_RX -: pal_network.h +: pal_network.h
          • PAL_NET_SELECT_IS_TX -: pal_network.h +: pal_network.h
          • PAL_NET_SOCKET_SELECT_ERR_BIT : pal_network.h @@ -304,6 +304,9 @@

            - t -

            diff --git a/Docs/html/globals_g.html b/Docs/html/globals_g.html index 39d1d34..2b3504e 100644 --- a/Docs/html/globals_g.html +++ b/Docs/html/globals_g.html @@ -73,20 +73,13 @@

            - g -

            • -
            • @@ -935,7 +931,6 @@
            • -
            • @@ -1153,7 +1148,6 @@
              • -
              • @@ -1194,6 +1188,7 @@
              • +
              @@ -1494,6 +1489,7 @@
            +
            • diff --git a/Jenkinsfile b/Jenkinsfile index ce9a26c..f077ece 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -17,7 +17,7 @@ try { dir ("mbed-os") { git "git@github.com:ARMmbed/mbed-os" - execute ("git checkout tags/mbed-os-5.1.4") + execute ("git checkout tags/mbed-os-5.2") } diff --git a/README.md b/README.md index bb02b5a..97e15e5 100644 --- a/README.md +++ b/README.md @@ -20,7 +20,7 @@ development and testing. 1. Define the environment variable: `MBEDOS_ROOT` to be the father folder of "mbed-os". 2. `cd $(PAL_FOLDER)/Test/` -3. make mbedOS_all - This will build the tests for mbedOS5.14 (mbed-os-5.1.4)over Freescale-K64F board. +3. make mbedOS_all - This will build the tests for mbedOS5.2 (mbed-os-5.2)over Freescale-K64F board. 4. In order to build and run the tests over the platform please run: $ make mbedOS_check diff --git a/Source/PAL-Impl/Modules/Networking/pal_network.c b/Source/PAL-Impl/Modules/Networking/pal_network.c index 21cd828..d22183a 100644 --- a/Source/PAL-Impl/Modules/Networking/pal_network.c +++ b/Source/PAL-Impl/Modules/Networking/pal_network.c @@ -20,282 +20,282 @@ #include "pal_plat_network.h" typedef struct pal_in_addr { - uint32_t s_addr; // that's a 32-bit int (4 bytes) + uint32_t s_addr; // that's a 32-bit int (4 bytes) } pal_in_addr_t; typedef struct pal_socketAddressInternal { - short int pal_sin_family; // address family - unsigned short int pal_sin_port; // port - pal_in_addr_t pal_sin_addr; // ipv4 address - unsigned char pal_sin_zero[8]; // + short int pal_sin_family; // address family + unsigned short int pal_sin_port; // port + pal_in_addr_t pal_sin_addr; // ipv4 address + unsigned char pal_sin_zero[8]; // } pal_socketAddressInternal_t; typedef struct pal_socketAddressInternal6{ - uint16_t pal_sin6_family; // address family, - uint16_t pal_sin6_port; // port number, Network Byte Order - uint32_t pal_sin6_flowinfo; // IPv6 flow information - palIpV6Addr_t pal_sin6_addr; // IPv6 address - uint32_t pal_sin6_scope_id; // Scope ID + uint16_t pal_sin6_family; // address family, + uint16_t pal_sin6_port; // port number, Network Byte Order + uint32_t pal_sin6_flowinfo; // IPv6 flow information + palIpV6Addr_t pal_sin6_addr; // IPv6 address + uint32_t pal_sin6_scope_id; // Scope ID } pal_socketAddressInternal6_t; palStatus_t pal_registerNetworkInterface(void* networkInterfaceContext, uint32_t* interfaceIndex) { - palStatus_t result = PAL_SUCCESS; - result = pal_plat_RegisterNetworkInterface(networkInterfaceContext, interfaceIndex); - return result; + palStatus_t result = PAL_SUCCESS; + result = pal_plat_RegisterNetworkInterface(networkInterfaceContext, interfaceIndex); + return result; } palStatus_t pal_setSockAddrPort(palSocketAddress_t* address, uint16_t port) { - palStatus_t result = PAL_SUCCESS; - if (NULL == address) - { - return PAL_ERR_RTOS_PARAMETER; - } - - if (address->addressType == PAL_AF_INET) - { - pal_socketAddressInternal_t* innerAddr = (pal_socketAddressInternal_t*)address; - innerAddr->pal_sin_port = port; - } - else if (address->addressType == PAL_AF_INET6) - { - pal_socketAddressInternal6_t * innerAddr = (pal_socketAddressInternal6_t*)address; - innerAddr->pal_sin6_port = port; - } - else - { - result = PAL_ERR_SOCKET_INVALID_ADDRESS_FAMILY; - } - - return result; + palStatus_t result = PAL_SUCCESS; + if (NULL == address) + { + return PAL_ERR_RTOS_PARAMETER; + } + + if (address->addressType == PAL_AF_INET) + { + pal_socketAddressInternal_t* innerAddr = (pal_socketAddressInternal_t*)address; + innerAddr->pal_sin_port = port; + } + else if (address->addressType == PAL_AF_INET6) + { + pal_socketAddressInternal6_t * innerAddr = (pal_socketAddressInternal6_t*)address; + innerAddr->pal_sin6_port = port; + } + else + { + result = PAL_ERR_SOCKET_INVALID_ADDRESS_FAMILY; + } + + return result; } palStatus_t pal_setSockAddrIPV4Addr(palSocketAddress_t* address, palIpV4Addr_t ipV4Addr) { - if ((NULL == address) || (NULL == ipV4Addr)) - { - return PAL_ERR_RTOS_PARAMETER; - } - pal_socketAddressInternal_t* innerAddr = (pal_socketAddressInternal_t*)address; - innerAddr->pal_sin_family = PAL_AF_INET; - innerAddr->pal_sin_addr.s_addr = (ipV4Addr[0]) | (ipV4Addr[1] << 8) | (ipV4Addr[2] << 16) | (ipV4Addr[3] << 24); - return PAL_SUCCESS; + if ((NULL == address) || (NULL == ipV4Addr)) + { + return PAL_ERR_RTOS_PARAMETER; + } + pal_socketAddressInternal_t* innerAddr = (pal_socketAddressInternal_t*)address; + innerAddr->pal_sin_family = PAL_AF_INET; + innerAddr->pal_sin_addr.s_addr = (ipV4Addr[0]) | (ipV4Addr[1] << 8) | (ipV4Addr[2] << 16) | (ipV4Addr[3] << 24); + return PAL_SUCCESS; } palStatus_t pal_setSockAddrIPV6Addr(palSocketAddress_t* address, palIpV6Addr_t ipV6Addr) { - int index; - - if ((NULL == address) || (NULL == ipV6Addr)) - { - return PAL_ERR_RTOS_PARAMETER; - } - pal_socketAddressInternal6_t* innerAddr = (pal_socketAddressInternal6_t*)address; - innerAddr->pal_sin6_family = PAL_AF_INET6; - for (index = 0; index < PAL_IPV6_ADDRESS_SIZE; index++) // TODO: use mem copy? - { - innerAddr->pal_sin6_addr[index] = ipV6Addr[index]; - } - return PAL_SUCCESS; + int index; + + if ((NULL == address) || (NULL == ipV6Addr)) + { + return PAL_ERR_RTOS_PARAMETER; + } + pal_socketAddressInternal6_t* innerAddr = (pal_socketAddressInternal6_t*)address; + innerAddr->pal_sin6_family = PAL_AF_INET6; + for (index = 0; index < PAL_IPV6_ADDRESS_SIZE; index++) // TODO: use mem copy? + { + innerAddr->pal_sin6_addr[index] = ipV6Addr[index]; + } + return PAL_SUCCESS; } palStatus_t pal_getSockAddrIPV4Addr(const palSocketAddress_t* address, palIpV4Addr_t ipV4Addr) { - palStatus_t result = PAL_SUCCESS; - if (NULL == address) - { - return PAL_ERR_RTOS_PARAMETER; - } - if (address->addressType == PAL_AF_INET) - { - pal_socketAddressInternal_t* innerAddr = (pal_socketAddressInternal_t*)address; - ipV4Addr[0] = (innerAddr->pal_sin_addr.s_addr) & 0xFF; - ipV4Addr[1] = (innerAddr->pal_sin_addr.s_addr >> 8) & 0xFF; - ipV4Addr[2] = (innerAddr->pal_sin_addr.s_addr >> 16) & 0xFF; - ipV4Addr[3] = (innerAddr->pal_sin_addr.s_addr >> 24) & 0xFF; - - } - else - { - result = PAL_ERR_SOCKET_INVALID_ADDRESS_FAMILY; - } - return result; + palStatus_t result = PAL_SUCCESS; + if (NULL == address) + { + return PAL_ERR_RTOS_PARAMETER; + } + if (address->addressType == PAL_AF_INET) + { + pal_socketAddressInternal_t* innerAddr = (pal_socketAddressInternal_t*)address; + ipV4Addr[0] = (innerAddr->pal_sin_addr.s_addr) & 0xFF; + ipV4Addr[1] = (innerAddr->pal_sin_addr.s_addr >> 8) & 0xFF; + ipV4Addr[2] = (innerAddr->pal_sin_addr.s_addr >> 16) & 0xFF; + ipV4Addr[3] = (innerAddr->pal_sin_addr.s_addr >> 24) & 0xFF; + + } + else + { + result = PAL_ERR_SOCKET_INVALID_ADDRESS_FAMILY; + } + return result; } palStatus_t pal_getSockAddrIPV6Addr(const palSocketAddress_t* address, palIpV6Addr_t ipV6Addr) { - palStatus_t result = PAL_SUCCESS; - int index = 0; - if (address->addressType == PAL_AF_INET6) - { - pal_socketAddressInternal6_t * innerAddr = (pal_socketAddressInternal6_t*)address; - for (index = 0; index < PAL_IPV6_ADDRESS_SIZE; index++) // TODO: use mem copy? - { - ipV6Addr[index] = innerAddr->pal_sin6_addr[index]; - } - } - else - { - result = PAL_ERR_SOCKET_INVALID_ADDRESS_FAMILY; - } - return result; + palStatus_t result = PAL_SUCCESS; + int index = 0; + if (address->addressType == PAL_AF_INET6) + { + pal_socketAddressInternal6_t * innerAddr = (pal_socketAddressInternal6_t*)address; + for (index = 0; index < PAL_IPV6_ADDRESS_SIZE; index++) // TODO: use mem copy? + { + ipV6Addr[index] = innerAddr->pal_sin6_addr[index]; + } + } + else + { + result = PAL_ERR_SOCKET_INVALID_ADDRESS_FAMILY; + } + return result; } palStatus_t pal_getSockAddrPort(const palSocketAddress_t* address, uint16_t* port) { - palStatus_t result = PAL_SUCCESS; - if ((NULL == address) || (NULL == port)) - { - return PAL_ERR_RTOS_PARAMETER; - } - - if (address->addressType == PAL_AF_INET) - { - pal_socketAddressInternal_t* innerAddr = (pal_socketAddressInternal_t*)address; - *port = innerAddr->pal_sin_port; - } - else if (address->addressType == PAL_AF_INET6) - { - pal_socketAddressInternal6_t * innerAddr = (pal_socketAddressInternal6_t*)address; - *port = innerAddr->pal_sin6_port; - } - else - { - result = PAL_ERR_SOCKET_INVALID_ADDRESS_FAMILY; - } - - return result; + palStatus_t result = PAL_SUCCESS; + if ((NULL == address) || (NULL == port)) + { + return PAL_ERR_RTOS_PARAMETER; + } + + if (address->addressType == PAL_AF_INET) + { + pal_socketAddressInternal_t* innerAddr = (pal_socketAddressInternal_t*)address; + *port = innerAddr->pal_sin_port; + } + else if (address->addressType == PAL_AF_INET6) + { + pal_socketAddressInternal6_t * innerAddr = (pal_socketAddressInternal6_t*)address; + *port = innerAddr->pal_sin6_port; + } + else + { + result = PAL_ERR_SOCKET_INVALID_ADDRESS_FAMILY; + } + + return result; } palStatus_t pal_socket(palSocketDomain_t domain, palSocketType_t type, bool nonBlockingSocket, uint32_t interfaceNum, palSocket_t* socket) { - palStatus_t result = PAL_SUCCESS; - if (NULL == socket) - { - return PAL_ERR_RTOS_PARAMETER; - } - result = pal_plat_socket(domain, type, nonBlockingSocket, interfaceNum, socket); - return result; // TODO(nirson01) ADD debug print for error propagation(once debug print infrastructure is finalized) + palStatus_t result = PAL_SUCCESS; + if (NULL == socket) + { + return PAL_ERR_RTOS_PARAMETER; + } + result = pal_plat_socket(domain, type, nonBlockingSocket, interfaceNum, socket); + return result; // TODO(nirson01) ADD debug print for error propagation(once debug print infrastructure is finalized) } palStatus_t pal_getSocketOptions(palSocket_t socket, palSocketOptionName_t optionName, void* optionValue, palSocketLength_t* optionLength) { - palStatus_t result = PAL_SUCCESS; - if ((NULL == optionValue) || (NULL == optionLength)) - { - return PAL_ERR_RTOS_PARAMETER; - } - result = pal_plat_getSocketOptions(socket, optionName, optionValue, optionLength); - return result; // TODO(nirson01) ADD debug print for error propagation(once debug print infrastructure is finalized) + palStatus_t result = PAL_SUCCESS; + if ((NULL == optionValue) || (NULL == optionLength)) + { + return PAL_ERR_RTOS_PARAMETER; + } + result = pal_plat_getSocketOptions(socket, optionName, optionValue, optionLength); + return result; // TODO(nirson01) ADD debug print for error propagation(once debug print infrastructure is finalized) } palStatus_t pal_setSocketOptions(palSocket_t socket, int optionName, const void* optionValue, palSocketLength_t optionLength) { - palStatus_t result = PAL_SUCCESS; - if (NULL == optionValue) - { - return PAL_ERR_RTOS_PARAMETER; - } - result = pal_plat_setSocketOptions( socket, optionName, optionValue, optionLength); - return result; // TODO(nirson01) ADD debug print for error propagation(once debug print infrastructure is finalized) + palStatus_t result = PAL_SUCCESS; + if (NULL == optionValue) + { + return PAL_ERR_RTOS_PARAMETER; + } + result = pal_plat_setSocketOptions( socket, optionName, optionValue, optionLength); + return result; // TODO(nirson01) ADD debug print for error propagation(once debug print infrastructure is finalized) } palStatus_t pal_bind(palSocket_t socket, palSocketAddress_t* myAddress, palSocketLength_t addressLength) { - palStatus_t result = PAL_SUCCESS; - if (NULL == myAddress) - { - return PAL_ERR_RTOS_PARAMETER; - } - result = pal_plat_bind(socket, myAddress, addressLength); - return result; // TODO(nirson01) ADD debug print for error propagation(once debug print infrastructure is finalized) + palStatus_t result = PAL_SUCCESS; + if (NULL == myAddress) + { + return PAL_ERR_RTOS_PARAMETER; + } + result = pal_plat_bind(socket, myAddress, addressLength); + return result; // TODO(nirson01) ADD debug print for error propagation(once debug print infrastructure is finalized) } palStatus_t pal_receiveFrom(palSocket_t socket, void* buffer, size_t length, palSocketAddress_t* from, palSocketLength_t* fromLength, size_t* bytesReceived) { - palStatus_t result = PAL_SUCCESS; - if ((NULL == buffer) || (NULL == bytesReceived)) - { - return PAL_ERR_RTOS_PARAMETER; - } - result = pal_plat_receiveFrom(socket, buffer, length, from, fromLength, bytesReceived); - return result; // TODO(nirson01) ADD debug print for error propagation(once debug print infrastructure is finalized) + palStatus_t result = PAL_SUCCESS; + if ((NULL == buffer) || (NULL == bytesReceived)) + { + return PAL_ERR_RTOS_PARAMETER; + } + result = pal_plat_receiveFrom(socket, buffer, length, from, fromLength, bytesReceived); + return result; // TODO(nirson01) ADD debug print for error propagation(once debug print infrastructure is finalized) } palStatus_t pal_sendTo(palSocket_t socket, const void* buffer, size_t length, const palSocketAddress_t* to, palSocketLength_t toLength, size_t* bytesSent) { - palStatus_t result = PAL_SUCCESS; - if ((NULL == buffer) || (NULL == bytesSent) || (NULL == to)) - { - return PAL_ERR_RTOS_PARAMETER; - } - result = pal_plat_sendTo(socket, buffer, length, to, toLength, bytesSent); - return result; // TODO(nirson01) ADD debug print for error propagation(once debug print infrastructure is finalized) + palStatus_t result = PAL_SUCCESS; + if ((NULL == buffer) || (NULL == bytesSent) || (NULL == to)) + { + return PAL_ERR_RTOS_PARAMETER; + } + result = pal_plat_sendTo(socket, buffer, length, to, toLength, bytesSent); + return result; // TODO(nirson01) ADD debug print for error propagation(once debug print infrastructure is finalized) } palStatus_t pal_close(palSocket_t* socket) { - palStatus_t result = PAL_SUCCESS; - if (NULL == socket ) - { - return PAL_ERR_RTOS_PARAMETER; - } - result = pal_plat_close(socket); - return result; // TODO(nirson01) ADD debug print for error propagation(once debug print infrastructure is finalized) + palStatus_t result = PAL_SUCCESS; + if (NULL == socket ) + { + return PAL_ERR_RTOS_PARAMETER; + } + result = pal_plat_close(socket); + return result; // TODO(nirson01) ADD debug print for error propagation(once debug print infrastructure is finalized) } palStatus_t pal_getNumberOfNetInterfaces( uint32_t* numInterfaces) { - palStatus_t result = PAL_SUCCESS; - if (NULL == numInterfaces) - { - return PAL_ERR_RTOS_PARAMETER; - } - result = pal_plat_getNumberOfNetInterfaces(numInterfaces); - return result; // TODO(nirson01) ADD debug print for error propagation(once debug print infrastructure is finalized) + palStatus_t result = PAL_SUCCESS; + if (NULL == numInterfaces) + { + return PAL_ERR_RTOS_PARAMETER; + } + result = pal_plat_getNumberOfNetInterfaces(numInterfaces); + return result; // TODO(nirson01) ADD debug print for error propagation(once debug print infrastructure is finalized) } palStatus_t pal_getNetInterfaceInfo(uint32_t interfaceNum, palNetInterfaceInfo_t * interfaceInfo) { - palStatus_t result = PAL_SUCCESS; - - if (NULL == interfaceInfo) - { - return PAL_ERR_RTOS_PARAMETER; - } - result = pal_plat_getNetInterfaceInfo(interfaceNum, interfaceInfo); - return result; // TODO(nirson01) ADD debug print for error propagation(once debug print infrastructure is finalized) + palStatus_t result = PAL_SUCCESS; + + if (NULL == interfaceInfo) + { + return PAL_ERR_RTOS_PARAMETER; + } + result = pal_plat_getNetInterfaceInfo(interfaceNum, interfaceInfo); + return result; // TODO(nirson01) ADD debug print for error propagation(once debug print infrastructure is finalized) } palStatus_t pal_socketMiniSelect(const palSocket_t socketsToCheck[PAL_NET_SOCKET_SELECT_MAX_SOCKETS], uint32_t numberOfSockets, - pal_timeVal_t* timeout, uint8_t palSocketStatus[PAL_NET_SOCKET_SELECT_MAX_SOCKETS], uint32_t * numberOfSocketsSet) + pal_timeVal_t* timeout, uint8_t palSocketStatus[PAL_NET_SOCKET_SELECT_MAX_SOCKETS], uint32_t * numberOfSocketsSet) { - palStatus_t result = PAL_SUCCESS; - if ((NULL == socketsToCheck) || (NULL == numberOfSocketsSet) || (PAL_NET_SOCKET_SELECT_MAX_SOCKETS < numberOfSockets)) - { - return PAL_ERR_RTOS_PARAMETER; - } - result = pal_plat_socketMiniSelect(socketsToCheck, numberOfSockets, timeout, palSocketStatus, numberOfSocketsSet); - return result; // TODO(nirson01) ADD debug print for error propagation(once debug print infrastructure is finalized) + palStatus_t result = PAL_SUCCESS; + if ((NULL == socketsToCheck) || (NULL == numberOfSocketsSet) || (PAL_NET_SOCKET_SELECT_MAX_SOCKETS < numberOfSockets)) + { + return PAL_ERR_RTOS_PARAMETER; + } + result = pal_plat_socketMiniSelect(socketsToCheck, numberOfSockets, timeout, palSocketStatus, numberOfSocketsSet); + return result; // TODO(nirson01) ADD debug print for error propagation(once debug print infrastructure is finalized) } @@ -303,57 +303,57 @@ palStatus_t pal_socketMiniSelect(const palSocket_t socketsToCheck[PAL_NET_SOCKET palStatus_t pal_listen(palSocket_t socket, int backlog) { - palStatus_t result = PAL_SUCCESS; - result = pal_plat_listen(socket, backlog); - return result; // TODO(nirson01) ADD debug print for error propagation(once debug print infrastructure is finalized) + palStatus_t result = PAL_SUCCESS; + result = pal_plat_listen(socket, backlog); + return result; // TODO(nirson01) ADD debug print for error propagation(once debug print infrastructure is finalized) } palStatus_t pal_accept(palSocket_t socket, palSocketAddress_t* address, palSocketLength_t* addressLen, palSocket_t* acceptedSocket) { - palStatus_t result = PAL_SUCCESS; - if ((NULL == acceptedSocket) || (NULL == address)|| (NULL == addressLen)) - { - return PAL_ERR_RTOS_PARAMETER; - } - result = pal_plat_accept(socket, address, addressLen, acceptedSocket); - return result; // TODO(nirson01) ADD debug print for error propagation(once debug print infrastructure is finalized) + palStatus_t result = PAL_SUCCESS; + if ((NULL == acceptedSocket) || (NULL == address)|| (NULL == addressLen)) + { + return PAL_ERR_RTOS_PARAMETER; + } + result = pal_plat_accept(socket, address, addressLen, acceptedSocket); + return result; // TODO(nirson01) ADD debug print for error propagation(once debug print infrastructure is finalized) } palStatus_t pal_connect(palSocket_t socket, const palSocketAddress_t* address, palSocketLength_t addressLen) { - palStatus_t result = PAL_SUCCESS; - if (NULL == address) - { - return PAL_ERR_RTOS_PARAMETER; - } - result = pal_plat_connect( socket, address, addressLen); - return result; // TODO(nirson01) ADD debug print for error propagation(once debug print infrastructure is finalized) + palStatus_t result = PAL_SUCCESS; + if (NULL == address) + { + return PAL_ERR_RTOS_PARAMETER; + } + result = pal_plat_connect( socket, address, addressLen); + return result; // TODO(nirson01) ADD debug print for error propagation(once debug print infrastructure is finalized) } palStatus_t pal_recv(palSocket_t socket, void* buf, size_t len, size_t* recievedDataSize) { - palStatus_t result = PAL_SUCCESS; - if ((NULL == recievedDataSize) || (NULL == recievedDataSize)) - { - return PAL_ERR_RTOS_PARAMETER; - } - result = pal_plat_recv(socket, buf, len, recievedDataSize); - return result; // TODO(nirson01) ADD debug print for error propagation(once debug print infrastructure is finalized) + palStatus_t result = PAL_SUCCESS; + if ((NULL == recievedDataSize) || (NULL == recievedDataSize)) + { + return PAL_ERR_RTOS_PARAMETER; + } + result = pal_plat_recv(socket, buf, len, recievedDataSize); + return result; // TODO(nirson01) ADD debug print for error propagation(once debug print infrastructure is finalized) } palStatus_t pal_send(palSocket_t socket, const void* buf, size_t len, size_t* sentDataSize) { - palStatus_t result = PAL_SUCCESS; - if ((NULL == buf) || (NULL == sentDataSize)) - { - return PAL_ERR_RTOS_PARAMETER; - } - result = pal_plat_send( socket, buf, len, sentDataSize); - return result; // TODO(nirson01) ADD debug print for error propagation(once debug print infrastructure is finalized) + palStatus_t result = PAL_SUCCESS; + if ((NULL == buf) || (NULL == sentDataSize)) + { + return PAL_ERR_RTOS_PARAMETER; + } + result = pal_plat_send( socket, buf, len, sentDataSize); + return result; // TODO(nirson01) ADD debug print for error propagation(once debug print infrastructure is finalized) } @@ -364,13 +364,13 @@ palStatus_t pal_send(palSocket_t socket, const void* buf, size_t len, size_t* se palStatus_t pal_asynchronousSocket(palSocketDomain_t domain, palSocketType_t type, bool nonBlockingSocket, uint32_t interfaceNum, palAsyncSocketCallback_t callback, palSocket_t* socket) { - palStatus_t result = PAL_SUCCESS; - if ((NULL == socket) || (NULL == callback)) - { - return PAL_ERR_RTOS_PARAMETER; - } - result = pal_plat_asynchronousSocket(domain, type, nonBlockingSocket, interfaceNum, callback, socket); - return result; // TODO(nirson01) ADD debug print for error propagation(once debug print infrastructure is finalized) + palStatus_t result = PAL_SUCCESS; + if ((NULL == socket) || (NULL == callback)) + { + return PAL_ERR_RTOS_PARAMETER; + } + result = pal_plat_asynchronousSocket(domain, type, nonBlockingSocket, interfaceNum, callback, socket); + return result; // TODO(nirson01) ADD debug print for error propagation(once debug print infrastructure is finalized) } #endif @@ -379,13 +379,13 @@ palStatus_t pal_asynchronousSocket(palSocketDomain_t domain, palSocketType_t typ palStatus_t pal_getAddressInfo(const char *url, palSocketAddress_t *address, palSocketLength_t* addressLength) { - palStatus_t result = PAL_SUCCESS; - if ((NULL == url) || (NULL == address) || (NULL == addressLength)) - { - return PAL_ERR_RTOS_PARAMETER; - } - result = pal_plat_getAddressInfo(url, address, addressLength); - return result; // TODO(nirson01) ADD debug print for error propagation(once debug print infrastructure is finalized) + palStatus_t result = PAL_SUCCESS; + if ((NULL == url) || (NULL == address) || (NULL == addressLength)) + { + return PAL_ERR_RTOS_PARAMETER; + } + result = pal_plat_getAddressInfo(url, address, addressLength); + return result; // TODO(nirson01) ADD debug print for error propagation(once debug print infrastructure is finalized) } #endif diff --git a/Source/PAL-Impl/Modules/RTOS/pal_rtos.c b/Source/PAL-Impl/Modules/RTOS/pal_rtos.c index e3b16ff..2cb1ae5 100644 --- a/Source/PAL-Impl/Modules/RTOS/pal_rtos.c +++ b/Source/PAL-Impl/Modules/RTOS/pal_rtos.c @@ -25,267 +25,267 @@ uint8_t g_palThreadPriorities[PAL_MAX_NUMBER_OF_THREADS] = {0}; void pal_osReboot(void) { - pal_plat_osReboot(); + pal_plat_osReboot(); } uint32_t pal_osKernelSysTick(void) { - uint32_t result; - result = pal_plat_osKernelSysTick(); - return result; + uint32_t result; + result = pal_plat_osKernelSysTick(); + return result; } uint64_t pal_osKernelSysTick64(void) { -#if PAL_RTOS_64Bit_TICK_SUPPORTED - uint64_t result; - result = pal_plat_osKernelSysTick64(); - return result; +#if PAL_RTOS_64BIT_TICK_SUPPORTED + uint64_t result; + result = pal_plat_osKernelSysTick64(); + return result; #else - static uint64_t lastValue = 0; - static uint64_t wraparoundsDetected = 0; - const uint64_t one = 1; - uint64_t tmp = pal_plat_osKernelSysTick() + (wraparoundsDetected << 32); - if (tmp < lastValue) //erez's "wraparound algorithm" if we detect a wrap around add 1 to the higher 32 bits - { - tmp = tmp + (one << 32); - wraparoundsDetected++; - } - lastValue = tmp; - return (uint64_t)tmp; + static uint64_t lastValue = 0; + static uint64_t wraparoundsDetected = 0; + const uint64_t one = 1; + uint64_t tmp = pal_plat_osKernelSysTick() + (wraparoundsDetected << 32); + if (tmp < lastValue) //erez's "wraparound algorithm" if we detect a wrap around add 1 to the higher 32 bits + { + tmp = tmp + (one << 32); + wraparoundsDetected++; + } + lastValue = tmp; + return (uint64_t)tmp; #endif } uint64_t pal_osKernelSysTickMicroSec(uint64_t microseconds) { - uint64_t result; - result = pal_plat_osKernelSysTickMicroSec(microseconds); - return result; + uint64_t result; + result = pal_plat_osKernelSysTickMicroSec(microseconds); + return result; } uint64_t pal_osKernelSysMilliSecTick(uint64_t sysTicks) { - uint64_t result; - result = pal_plat_osKernelSysMilliSecTick(sysTicks); - return result; + uint64_t result; + result = pal_plat_osKernelSysMilliSecTick(sysTicks); + return result; } uint64_t pal_osKernelSysTickFrequency(void) { - uint64_t result; - result = pal_plat_osKernelSysTickFrequency(); - return result; + uint64_t result; + result = pal_plat_osKernelSysTickFrequency(); + return result; } palStatus_t pal_osThreadCreate(palThreadFuncPtr function, void* funcArgument, palThreadPriority_t priority, uint32_t stackSize, uint32_t* stackPtr, palThreadLocalStore_t* store, palThreadID_t* threadID) { - palStatus_t status = PAL_SUCCESS; + palStatus_t status = PAL_SUCCESS; #if PAL_UNIQUE_THREAD_PRIORITY - //! check if the priority have been used by other thread before - if(PAL_osPriorityError == priority) - { - status = PAL_ERR_INVALID_ARGUMENT; - } - - if ((PAL_SUCCESS == status) && (g_palThreadPriorities[priority+PRIORYT_INDEX_OFFSET])) - { - *threadID = NULLPTR; - status = PAL_ERR_RTOS_PRIORITY; - } + //! check if the priority have been used by other thread before + if(PAL_osPriorityError == priority) + { + status = PAL_ERR_INVALID_ARGUMENT; + } + + if ((PAL_SUCCESS == status) && (g_palThreadPriorities[priority+PRIORYT_INDEX_OFFSET])) + { + *threadID = NULLPTR; + status = PAL_ERR_RTOS_PRIORITY; + } #endif //PAL_IGNORE_UNIQUE_THREAD_PRIORITY - if (PAL_SUCCESS == status) - { - status = pal_plat_osThreadCreate(function, funcArgument, priority, stackSize, stackPtr, store, threadID); - } - return status; + if (PAL_SUCCESS == status) + { + status = pal_plat_osThreadCreate(function, funcArgument, priority, stackSize, stackPtr, store, threadID); + } + return status; } palStatus_t pal_osThreadTerminate(palThreadID_t* threadID) { - palStatus_t status; - status = pal_plat_osThreadTerminate(threadID); - return status; + palStatus_t status; + status = pal_plat_osThreadTerminate(threadID); + return status; } palThreadID_t pal_osThreadGetId(void) { - palThreadID_t result; - result = pal_plat_osThreadGetId(); - return result; + palThreadID_t result; + result = pal_plat_osThreadGetId(); + return result; } void* pal_osThreadGetLocalStore(void) { - void* result; - result = pal_plat_osThreadGetLocalStore(); - return result; + void* result; + result = pal_plat_osThreadGetLocalStore(); + return result; } palStatus_t pal_osDelay(uint32_t milliseconds) { - palStatus_t status; - status = pal_plat_osDelay(milliseconds); - return status; + palStatus_t status; + status = pal_plat_osDelay(milliseconds); + return status; } palStatus_t pal_osTimerCreate(palTimerFuncPtr function, void* funcArgument, palTimerType_t timerType, palTimerID_t* timerID) { - palStatus_t status; - status = pal_plat_osTimerCreate(function, funcArgument, timerType, timerID); - return status; + palStatus_t status; + status = pal_plat_osTimerCreate(function, funcArgument, timerType, timerID); + return status; } palStatus_t pal_osTimerStart(palTimerID_t timerID, uint32_t millisec) { - palStatus_t status; - status = pal_plat_osTimerStart(timerID, millisec); - return status; + palStatus_t status; + status = pal_plat_osTimerStart(timerID, millisec); + return status; } palStatus_t pal_osTimerStop(palTimerID_t timerID) { - palStatus_t status; - status = pal_plat_osTimerStop(timerID); - return status; + palStatus_t status; + status = pal_plat_osTimerStop(timerID); + return status; } palStatus_t pal_osTimerDelete(palTimerID_t* timerID) { - palStatus_t status; - status = pal_plat_osTimerDelete(timerID); - return status; + palStatus_t status; + status = pal_plat_osTimerDelete(timerID); + return status; } palStatus_t pal_osMutexCreate(palMutexID_t* mutexID) { - palStatus_t status; - status = pal_plat_osMutexCreate(mutexID); - return status; + palStatus_t status; + status = pal_plat_osMutexCreate(mutexID); + return status; } palStatus_t pal_osMutexWait(palMutexID_t mutexID, uint32_t millisec) { - palStatus_t status; - status = pal_plat_osMutexWait(mutexID, millisec); - return status; + palStatus_t status; + status = pal_plat_osMutexWait(mutexID, millisec); + return status; } palStatus_t pal_osMutexRelease(palMutexID_t mutexID) { - palStatus_t status; - status = pal_plat_osMutexRelease(mutexID); - return status; + palStatus_t status; + status = pal_plat_osMutexRelease(mutexID); + return status; } palStatus_t pal_osMutexDelete(palMutexID_t* mutexID) { - palStatus_t status; - status = pal_plat_osMutexDelete(mutexID); - return status; + palStatus_t status; + status = pal_plat_osMutexDelete(mutexID); + return status; } palStatus_t pal_osSemaphoreCreate(uint32_t count, palSemaphoreID_t* semaphoreID) { - palStatus_t status; - status = pal_plat_osSemaphoreCreate(count, semaphoreID); - return status; + palStatus_t status; + status = pal_plat_osSemaphoreCreate(count, semaphoreID); + return status; } palStatus_t pal_osSemaphoreWait(palSemaphoreID_t semaphoreID, uint32_t millisec, int32_t* countersAvailable) { - palStatus_t status; - status = pal_plat_osSemaphoreWait(semaphoreID, millisec, countersAvailable); - return status; + palStatus_t status; + status = pal_plat_osSemaphoreWait(semaphoreID, millisec, countersAvailable); + return status; } palStatus_t pal_osSemaphoreRelease(palSemaphoreID_t semaphoreID) { - palStatus_t status; - status = pal_plat_osSemaphoreRelease(semaphoreID); - return status; + palStatus_t status; + status = pal_plat_osSemaphoreRelease(semaphoreID); + return status; } palStatus_t pal_osSemaphoreDelete(palSemaphoreID_t* semaphoreID) { - palStatus_t status; - status = pal_plat_osSemaphoreDelete(semaphoreID); - return status; + palStatus_t status; + status = pal_plat_osSemaphoreDelete(semaphoreID); + return status; } palStatus_t pal_osPoolCreate(uint32_t blockSize, uint32_t blockCount, palMemoryPoolID_t* memoryPoolID) { - palStatus_t status; - status = pal_plat_osPoolCreate(blockSize, blockCount, memoryPoolID); - return status; + palStatus_t status; + status = pal_plat_osPoolCreate(blockSize, blockCount, memoryPoolID); + return status; } void* pal_osPoolAlloc(palMemoryPoolID_t memoryPoolID) { - void* result; - result = pal_plat_osPoolAlloc(memoryPoolID); - return result; + void* result; + result = pal_plat_osPoolAlloc(memoryPoolID); + return result; } void* pal_osPoolCAlloc(palMemoryPoolID_t memoryPoolID) { - void* result; - //TODO(nirson01): debug print in case of failed alloc? - result = pal_plat_osPoolCAlloc(memoryPoolID); - return result; + void* result; + //TODO(nirson01): debug print in case of failed alloc? + result = pal_plat_osPoolCAlloc(memoryPoolID); + return result; } palStatus_t pal_osPoolFree(palMemoryPoolID_t memoryPoolID, void* block) { - palStatus_t status; - //TODO(nirson01): debug print in case of failed alloc? - status = pal_plat_osPoolFree(memoryPoolID, block); - return status; + palStatus_t status; + //TODO(nirson01): debug print in case of failed alloc? + status = pal_plat_osPoolFree(memoryPoolID, block); + return status; } palStatus_t pal_osPoolDestroy(palMemoryPoolID_t* memoryPoolID) { - palStatus_t status; - status = pal_plat_osPoolDestroy(memoryPoolID); - return status; + palStatus_t status; + status = pal_plat_osPoolDestroy(memoryPoolID); + return status; } palStatus_t pal_osMessageQueueCreate(uint32_t messageQSize, palMessageQID_t* messageQID) { - palStatus_t status; - status = pal_plat_osMessageQueueCreate(messageQSize, messageQID); - return status; + palStatus_t status; + status = pal_plat_osMessageQueueCreate(messageQSize, messageQID); + return status; } palStatus_t pal_osMessagePut(palMessageQID_t messageQID, uint32_t info, uint32_t timeout) { - palStatus_t status; - status = pal_plat_osMessagePut(messageQID, info, timeout); - return status; + palStatus_t status; + status = pal_plat_osMessagePut(messageQID, info, timeout); + return status; } palStatus_t pal_osMessageGet(palMessageQID_t messageQID, uint32_t timeout, uint32_t* messageValue) { - palStatus_t status; - status = pal_plat_osMessageGet(messageQID, timeout, messageValue); - return status; + palStatus_t status; + status = pal_plat_osMessageGet(messageQID, timeout, messageValue); + return status; } palStatus_t pal_osMessageQueueDestroy(palMessageQID_t* messageQID) { - palStatus_t status; - status = pal_plat_osMessageQueueDestroy(messageQID); - return status; + palStatus_t status; + status = pal_plat_osMessageQueueDestroy(messageQID); + return status; } int32_t pal_osAtomicIncrement(int32_t* valuePtr, int32_t increment) { - int32_t result; - result = pal_plat_osAtomicIncrement(valuePtr, increment); - return result; + int32_t result; + result = pal_plat_osAtomicIncrement(valuePtr, increment); + return result; } @@ -297,21 +297,21 @@ int32_t pal_osAtomicIncrement(int32_t* valuePtr, int32_t increment) void dbgPrintf( const char* function, uint32_t line, const char * format, ... ) { #ifdef DEBUG - static palMutexID_t printfMutex = NULLPTR; - - va_list args; - if (!printfMutex) - { - pal_osMutexCreate(&printfMutex); - } - pal_osMutexWait(printfMutex, PAL_MAX_UINT32); + static palMutexID_t printfMutex = NULLPTR; + + va_list args; + if (!printfMutex) + { + pal_osMutexCreate(&printfMutex); + } + pal_osMutexWait(printfMutex, PAL_MAX_UINT32); #ifdef VERBOSE - pal_plat_printf("%s:%ld\t",function,line); + pal_plat_printf("%s:%ld\t",function,line); #endif - va_start (args, format); - pal_plat_vprintf (format, args); - va_end (args); - pal_osMutexRelease(printfMutex); + va_start (args, format); + pal_plat_vprintf (format, args); + va_end (args); + pal_osMutexRelease(printfMutex); #endif } diff --git a/Source/PAL-Impl/Services-API/pal.h b/Source/PAL-Impl/Services-API/pal.h index 98f5b10..845a3b0 100644 --- a/Source/PAL-Impl/Services-API/pal.h +++ b/Source/PAL-Impl/Services-API/pal.h @@ -38,16 +38,16 @@ extern "C" { //declarations for global init and destroy of PAL /*! PAL initialization -* This function will call each module's initialization function (if exist) -* to allocate required resources and initiate them. +* This function will call each module's initialization function (if exist) +* to allocate required resources and initiate them. * \return the function returns the status in the form of palStatus_t which will be PAL_SUCCESS(0) in case of success -* and another negative value indicating a specific error code in case of failure +* and another negative value indicating a specific error code in case of failure */ palStatus_t pal_init(); /*! PAL destruction -* This function will call each module's destroy function (if exist) -* to free resources. +* This function will call each module's destroy function (if exist) +* to free resources. */ void pal_destroy(); diff --git a/Source/PAL-Impl/Services-API/pal_configuration.h b/Source/PAL-Impl/Services-API/pal_configuration.h index d397b10..c0cd724 100644 --- a/Source/PAL-Impl/Services-API/pal_configuration.h +++ b/Source/PAL-Impl/Services-API/pal_configuration.h @@ -23,12 +23,12 @@ extern "C" { #endif //! pal configuration options -#define PAL_NET_TCP_AND_TLS_SUPPORT true/* add pal support for TCP */ -#define PAL_NET_ASYNCHRONOUS_SOCKET_API true/* add pal support for asynchronous sockets */ -#define PAL_NET_DNS_SUPPORT true/* add pal support for DNS lookup */ +#define PAL_NET_TCP_AND_TLS_SUPPORT true/* add pal support for TCP */ +#define PAL_NET_ASYNCHRONOUS_SOCKET_API true/* add pal support for asynchronous sockets */ +#define PAL_NET_DNS_SUPPORT true/* add pal support for DNS lookup */ -#define PAL_RTOS_64BIT_TICK_SUPPORTED true /* add pal support for asynchronous sockets */ -#define PAL_UNIQUE_THREAD_PRIORITY (!defined(PAL_IGNORE_UNIQUE_THREAD_PRIORITY))/* if defined code skips the uniqueness priority check */ +#define PAL_RTOS_64BIT_TICK_SUPPORTED false /* add pal support for asynchronous sockets */ +#define PAL_UNIQUE_THREAD_PRIORITY (!defined(PAL_IGNORE_UNIQUE_THREAD_PRIORITY))/* if defined code skips the uniqueness priority check */ //! number of valid priorities limits the number of threads- if priorities are added this value should be increased #define PAL_MAX_NUMBER_OF_THREADS 7 @@ -37,28 +37,28 @@ extern "C" { #define PAL_MAX_SUPORTED_NET_INTEFACES 5 #ifdef __GNUC__ // we are compiling using GCC/G++ - #define PAL_TARGET_POINTER_SIZE __SIZEOF_POINTER__ - #ifdef __BYTE_ORDER - #if __BYTE_ORDER == __BIG_ENDIAN //if both are not defined it is TRUE! - #define PAL_COMPILATION_ENDIANITY 1 //define pal compilation endianity (0 is little endian, 1 is big endian) - #elif __BYTE_ORDER == __LITTLE_ENDIAN - #define PAL_COMPILATION_ENDIANITY 0//define pal compilation endianity (0 is little endian, 1 is big endian) - #else - #error missing endiantiy defintion for GCC - #endif + #define PAL_TARGET_POINTER_SIZE __SIZEOF_POINTER__ + #ifdef __BYTE_ORDER + #if __BYTE_ORDER == __BIG_ENDIAN //if both are not defined it is TRUE! + #define PAL_COMPILATION_ENDIANITY 1 //define pal compilation endianity (0 is little endian, 1 is big endian) + #elif __BYTE_ORDER == __LITTLE_ENDIAN + #define PAL_COMPILATION_ENDIANITY 0//define pal compilation endianity (0 is little endian, 1 is big endian) + #else + #error missing endiantiy defintion for GCC + #endif - #endif + #endif #else - #ifdef __arm__ // we are compiling using the ARM compiler - #define PAL_TARGET_POINTER_SIZE __sizeof_ptr - #ifdef __BIG_ENDIAN - #define PAL_COMPILATION_ENDIANITY 1 //define pal compilation endianity (0 is little endian, 1 is big endian) - #else - #define PAL_COMPILATION_ENDIANITY 0 //define pal compilation endianity (0 is little endian, 1 is big endian) - #endif - #else - //#error neither ARMCC nor GCC used for compilation - not supported - #endif + #ifdef __arm__ // we are compiling using the ARM compiler + #define PAL_TARGET_POINTER_SIZE __sizeof_ptr + #ifdef __BIG_ENDIAN + #define PAL_COMPILATION_ENDIANITY 1 //define pal compilation endianity (0 is little endian, 1 is big endian) + #else + #define PAL_COMPILATION_ENDIANITY 0 //define pal compilation endianity (0 is little endian, 1 is big endian) + #endif + #else + //#error neither ARMCC nor GCC used for compilation - not supported + #endif #endif diff --git a/Source/PAL-Impl/Services-API/pal_errors.h b/Source/PAL-Impl/Services-API/pal_errors.h index 2523191..a0d7656 100644 --- a/Source/PAL-Impl/Services-API/pal_errors.h +++ b/Source/PAL-Impl/Services-API/pal_errors.h @@ -26,75 +26,75 @@ extern "C" { typedef enum { - PAL_ERR_MODULE_GENERAL = 0x4, - PAL_ERR_MODULE_PAL = 0x6, - PAL_ERR_MODULE_C = 0x8, - PAL_ERR_MODULE_RTOS = 0xC, - PAL_ERR_MODULE_NET = 0x10, - PAL_ERR_MODULE_TLS = 0x14, - PAL_ERR_MODULE_CRYPTO = 0x18, - PAL_ERR_MODULE_UPDATE = 0x1C, + PAL_ERR_MODULE_GENERAL = 0x4, + PAL_ERR_MODULE_PAL = 0x6, + PAL_ERR_MODULE_C = 0x8, + PAL_ERR_MODULE_RTOS = 0xC, + PAL_ERR_MODULE_NET = 0x10, + PAL_ERR_MODULE_TLS = 0x14, + PAL_ERR_MODULE_CRYPTO = 0x18, + PAL_ERR_MODULE_UPDATE = 0x1C, } palErrorModules_t; typedef enum { - // generic errors - PAL_ERR_GENERAL_BASE = (-1 << PAL_ERR_MODULE_GENERAL), - PAL_ERR_GENERIC_FAILURE = PAL_ERR_GENERAL_BASE, /*! generic failure*/ // try to use a more specific error message whenever possible - PAL_ERR_INVALID_ARGUMENT = PAL_ERR_GENERAL_BASE + 1, /*! one or more of the functions arguments is invalid */ - PAL_ERR_NO_MEMORY = PAL_ERR_GENERAL_BASE + 2, /*! failure due to a failed attempt to allocate memory */ - PAL_ERR_BUFFER_TOO_SMALL = PAL_ERR_GENERAL_BASE + 3, /*! buffer given is too small*/ - PAL_ERR_NOT_SUPPORTED = PAL_ERR_GENERAL_BASE + 4, /*! operation not supported by PAL for the current configuration*/ - PAL_ERR_TIMEOUT_EXPIRED = PAL_ERR_GENERAL_BASE + 5, /*! timeout for the operation has expired */ - PAL_ERR_NOT_INITIALIZED = PAL_ERR_GENERAL_BASE + 6, /*! timeout for the operation has expired */ - PAL_ERR_NULL_POINTER = PAL_ERR_GENERAL_BASE + 7, /*! received a null pointer when it should be initialized */ - PAL_ERR_CREATION_FAILED = PAL_ERR_GENERAL_BASE + 8, /*! failure in creation of given type, like: mutex, thread , etc */ - // pal errors - PAL_ERR_NOT_IMPLEMENTED = (-1 << PAL_ERR_MODULE_PAL), /*!Currently not implemented will be in the future*/ - // c errors - // RTOS errors - PAL_ERR_RTOS_ERROR_BASE = (-1 << PAL_ERR_MODULE_RTOS), /*! generic failure in RTOS module*/ // try to use a more specific error message whenever possible - PAL_ERR_RTOS_PARAMETER = PAL_ERR_RTOS_ERROR_BASE + 0x80,/*! PAL mapping of CMSIS error osErrorParameter : parameter error: a mandatory parameter was missing or specified an incorrect object.*/ - PAL_ERR_RTOS_RESOURCE = PAL_ERR_RTOS_ERROR_BASE + 0x81,/*! PAL mapping of CMSIS error osErrorResource : resource not available: a specified resource was not available.*/ - PAL_ERR_RTOS_TIMEOUT = PAL_ERR_RTOS_ERROR_BASE + 0xC1,/*! PAL mapping of CMSIS error osErrorTimeoutResource : resource not available within given time: a specified resource was not available within the timeout period*/ - PAL_ERR_RTOS_ISR = PAL_ERR_RTOS_ERROR_BASE + 0x82,/*! PAL mapping of CMSIS error osErrorISR : not allowed in ISR context: the function cannot be called from interrupt service routines.*/ - PAL_ERR_RTOS_ISR_RECURSIVE = PAL_ERR_RTOS_ERROR_BASE + 0x83,/*! PAL mapping of CMSIS error osErrorISRRecursive : function called multiple times from ISR with same object.c*/ - PAL_ERR_RTOS_PRIORITY = PAL_ERR_RTOS_ERROR_BASE + 0x84,/*! PAL mapping of CMSIS error osErrorPriority : system cannot determine priority or thread has illegal priority.*/ - PAL_ERR_RTOS_NO_MEMORY = PAL_ERR_RTOS_ERROR_BASE + 0x85,/*! PAL mapping of CMSIS error osErrorNoMemory : system is out of memory: it was impossible to allocate or reserve memory for the operation.*/ - PAL_ERR_RTOS_VALUE = PAL_ERR_RTOS_ERROR_BASE + 0x86,/*! PAL mapping of CMSIS error osErrorValue : value of a parameter is out of range.*/ - PAL_ERR_RTOS_OS = PAL_ERR_RTOS_ERROR_BASE + 0xFF,/*! PAL mapping of CMSIS error osErrorOS : unspecified RTOS error: run-time error but no other error message fits.*/ - // network errors - PAL_ERR_SOCKET_ERROR_BASE = (-1 << PAL_ERR_MODULE_NET), /*! generic socket error */ - PAL_ERR_SOCKET_GENERIC = PAL_ERR_SOCKET_ERROR_BASE, /*! generic socket error */ - PAL_ERR_SOCKET_NO_BUFFERS = PAL_ERR_SOCKET_ERROR_BASE + 1, /*! no buffers - PAL mapping of posix error ENOBUFS*/ - PAL_ERR_SOCKET_HOST_UNREACHABLE = PAL_ERR_SOCKET_ERROR_BASE + 2, /*! host unreachable (routing error)- PAL mapping of posix error EHOSTUNREACH*/ - PAL_ERR_SOCKET_IN_PROGRES = PAL_ERR_SOCKET_ERROR_BASE + 3, /*! in progress- PAL mapping of posix error EINPROGRESS*/ - PAL_ERR_SOCKET_INVALID_VALUE = PAL_ERR_SOCKET_ERROR_BASE + 4, /*!invalid value - PAL mapping of posix error EINVAL*/ - PAL_ERR_SOCKET_WOULD_BLOCK = PAL_ERR_SOCKET_ERROR_BASE + 5, /*! would block - PAL mapping of posix error EWOULDBLOCK*/ - PAL_ERR_SOCKET_ADDRESS_IN_USE = PAL_ERR_SOCKET_ERROR_BASE + 6, /*! Address in use - PAL mapping of posix error EADDRINUSE*/ - PAL_ERR_SOCKET_ALREADY_CONNECTED = PAL_ERR_SOCKET_ERROR_BASE + 7, /*! Already connected - PAL mapping of posix error EALREADY*/ - PAL_ERR_SOCKET_CONNECTION_ABORTED = PAL_ERR_SOCKET_ERROR_BASE + 8, /*! Connection aborted - PAL mapping of posix error ECONNABORTED*/ - PAL_ERR_SOCKET_CONNECTION_RESET = PAL_ERR_SOCKET_ERROR_BASE + 9, /*! Connection reset - PAL mapping of posix error ECONNRESET*/ - PAL_ERR_SOCKET_NOT_CONNECTED = PAL_ERR_SOCKET_ERROR_BASE + 10, /*! Not connected - PAL mapping of posix error ENOTCONN*/ - PAL_ERR_SOCKET_INPUT_OUTPUT_ERROR = PAL_ERR_SOCKET_ERROR_BASE + 11, /*! I/O error PAL mapping of posix error EIO*/ - PAL_ERR_SOCKET_CONNECTION_CLOSED = PAL_ERR_SOCKET_ERROR_BASE + 12, /*! connection closed */ - PAL_ERR_SOCKET_FAILED_TO_SET_SOCKET_TO_NON_BLOCKING = PAL_ERR_SOCKET_ERROR_BASE + 13, /*! failed to set socket to non-blocking */ - PAL_ERR_SOCKET_INVALID_ADDRESS_FAMILY = PAL_ERR_SOCKET_ERROR_BASE + 14, /*! failed to set socket to non-blocking */ - PAL_ERR_SOCKET_INVALID_ADDRESS = PAL_ERR_SOCKET_ERROR_BASE + 15, /*! address given was not valid/found*/ - PAL_ERR_SOCKET_DNS_ERROR = PAL_ERR_SOCKET_ERROR_BASE + 16, /*! DNS lookup error*/ - PAL_ERR_SOCKET_HDCP_ERROR = PAL_ERR_SOCKET_ERROR_BASE + 17, /*! HDCP error*/ - PAL_ERR_SOCKET_AUTH_ERROR = PAL_ERR_SOCKET_ERROR_BASE + 18, /*! authentication error*/ - PAL_ERR_SOCKET_OPTION_NOT_SUPPORTED = PAL_ERR_SOCKET_ERROR_BASE + 19, /*! socket option not supported*/ - //update Error - PAL_ERR_UPDATE_ERROR_BASE = (-1 << PAL_ERR_MODULE_UPDATE), /*! generic error */ - PAL_ERR_UPDATE_ERROR = PAL_ERR_UPDATE_ERROR_BASE, /*! unknown error */ - PAL_ERR_UPDATE_BUSY = PAL_ERR_UPDATE_ERROR_BASE + 1, /*! unknown error */ - PAL_ERR_UPDATE_TIMEOUT = PAL_ERR_UPDATE_ERROR_BASE + 2, /*! unknown error */ - PAL_ERR_UPDATE_OUT_OF_BOUNDS = PAL_ERR_UPDATE_ERROR_BASE + 3, /*! unknown error */ - PAL_ERR_UPDATE_PALFROM_API = PAL_ERR_UPDATE_ERROR_BASE + 4, /*! unknown error */ - PAL_ERR_UPDATE_PALFROM_IO = PAL_ERR_UPDATE_ERROR_BASE + 5, /*! unknown error */ - PAL_ERR_UPDATE_END_OF_IMAGE = PAL_ERR_UPDATE_ERROR_BASE + 6, /*! unknown error */ - PAL_ERR_UPDATE_CHUNK_TO_SMALL = PAL_ERR_UPDATE_ERROR_BASE + 7, /*! unknown error */ + // generic errors + PAL_ERR_GENERAL_BASE = (-1 << PAL_ERR_MODULE_GENERAL), + PAL_ERR_GENERIC_FAILURE = PAL_ERR_GENERAL_BASE, /*! generic failure*/ // try to use a more specific error message whenever possible + PAL_ERR_INVALID_ARGUMENT = PAL_ERR_GENERAL_BASE + 1, /*! one or more of the functions arguments is invalid */ + PAL_ERR_NO_MEMORY = PAL_ERR_GENERAL_BASE + 2, /*! failure due to a failed attempt to allocate memory */ + PAL_ERR_BUFFER_TOO_SMALL = PAL_ERR_GENERAL_BASE + 3, /*! buffer given is too small*/ + PAL_ERR_NOT_SUPPORTED = PAL_ERR_GENERAL_BASE + 4, /*! operation not supported by PAL for the current configuration*/ + PAL_ERR_TIMEOUT_EXPIRED = PAL_ERR_GENERAL_BASE + 5, /*! timeout for the operation has expired */ + PAL_ERR_NOT_INITIALIZED = PAL_ERR_GENERAL_BASE + 6, /*! timeout for the operation has expired */ + PAL_ERR_NULL_POINTER = PAL_ERR_GENERAL_BASE + 7, /*! received a null pointer when it should be initialized */ + PAL_ERR_CREATION_FAILED = PAL_ERR_GENERAL_BASE + 8, /*! failure in creation of given type, like: mutex, thread , etc */ + // pal errors + PAL_ERR_NOT_IMPLEMENTED = (-1 << PAL_ERR_MODULE_PAL), /*!Currently not implemented will be in the future*/ + // c errors + // RTOS errors + PAL_ERR_RTOS_ERROR_BASE = (-1 << PAL_ERR_MODULE_RTOS), /*! generic failure in RTOS module*/ // try to use a more specific error message whenever possible + PAL_ERR_RTOS_PARAMETER = PAL_ERR_RTOS_ERROR_BASE + 0x80,/*! PAL mapping of CMSIS error osErrorParameter : parameter error: a mandatory parameter was missing or specified an incorrect object.*/ + PAL_ERR_RTOS_RESOURCE = PAL_ERR_RTOS_ERROR_BASE + 0x81,/*! PAL mapping of CMSIS error osErrorResource : resource not available: a specified resource was not available.*/ + PAL_ERR_RTOS_TIMEOUT = PAL_ERR_RTOS_ERROR_BASE + 0xC1,/*! PAL mapping of CMSIS error osErrorTimeoutResource : resource not available within given time: a specified resource was not available within the timeout period*/ + PAL_ERR_RTOS_ISR = PAL_ERR_RTOS_ERROR_BASE + 0x82,/*! PAL mapping of CMSIS error osErrorISR : not allowed in ISR context: the function cannot be called from interrupt service routines.*/ + PAL_ERR_RTOS_ISR_RECURSIVE = PAL_ERR_RTOS_ERROR_BASE + 0x83,/*! PAL mapping of CMSIS error osErrorISRRecursive : function called multiple times from ISR with same object.c*/ + PAL_ERR_RTOS_PRIORITY = PAL_ERR_RTOS_ERROR_BASE + 0x84,/*! PAL mapping of CMSIS error osErrorPriority : system cannot determine priority or thread has illegal priority.*/ + PAL_ERR_RTOS_NO_MEMORY = PAL_ERR_RTOS_ERROR_BASE + 0x85,/*! PAL mapping of CMSIS error osErrorNoMemory : system is out of memory: it was impossible to allocate or reserve memory for the operation.*/ + PAL_ERR_RTOS_VALUE = PAL_ERR_RTOS_ERROR_BASE + 0x86,/*! PAL mapping of CMSIS error osErrorValue : value of a parameter is out of range.*/ + PAL_ERR_RTOS_OS = PAL_ERR_RTOS_ERROR_BASE + 0xFF,/*! PAL mapping of CMSIS error osErrorOS : unspecified RTOS error: run-time error but no other error message fits.*/ + // network errors + PAL_ERR_SOCKET_ERROR_BASE = (-1 << PAL_ERR_MODULE_NET), /*! generic socket error */ + PAL_ERR_SOCKET_GENERIC = PAL_ERR_SOCKET_ERROR_BASE, /*! generic socket error */ + PAL_ERR_SOCKET_NO_BUFFERS = PAL_ERR_SOCKET_ERROR_BASE + 1, /*! no buffers - PAL mapping of posix error ENOBUFS*/ + PAL_ERR_SOCKET_HOST_UNREACHABLE = PAL_ERR_SOCKET_ERROR_BASE + 2, /*! host unreachable (routing error)- PAL mapping of posix error EHOSTUNREACH*/ + PAL_ERR_SOCKET_IN_PROGRES = PAL_ERR_SOCKET_ERROR_BASE + 3, /*! in progress- PAL mapping of posix error EINPROGRESS*/ + PAL_ERR_SOCKET_INVALID_VALUE = PAL_ERR_SOCKET_ERROR_BASE + 4, /*!invalid value - PAL mapping of posix error EINVAL*/ + PAL_ERR_SOCKET_WOULD_BLOCK = PAL_ERR_SOCKET_ERROR_BASE + 5, /*! would block - PAL mapping of posix error EWOULDBLOCK*/ + PAL_ERR_SOCKET_ADDRESS_IN_USE = PAL_ERR_SOCKET_ERROR_BASE + 6, /*! Address in use - PAL mapping of posix error EADDRINUSE*/ + PAL_ERR_SOCKET_ALREADY_CONNECTED = PAL_ERR_SOCKET_ERROR_BASE + 7, /*! Already connected - PAL mapping of posix error EALREADY*/ + PAL_ERR_SOCKET_CONNECTION_ABORTED = PAL_ERR_SOCKET_ERROR_BASE + 8, /*! Connection aborted - PAL mapping of posix error ECONNABORTED*/ + PAL_ERR_SOCKET_CONNECTION_RESET = PAL_ERR_SOCKET_ERROR_BASE + 9, /*! Connection reset - PAL mapping of posix error ECONNRESET*/ + PAL_ERR_SOCKET_NOT_CONNECTED = PAL_ERR_SOCKET_ERROR_BASE + 10, /*! Not connected - PAL mapping of posix error ENOTCONN*/ + PAL_ERR_SOCKET_INPUT_OUTPUT_ERROR = PAL_ERR_SOCKET_ERROR_BASE + 11, /*! I/O error PAL mapping of posix error EIO*/ + PAL_ERR_SOCKET_CONNECTION_CLOSED = PAL_ERR_SOCKET_ERROR_BASE + 12, /*! connection closed */ + PAL_ERR_SOCKET_FAILED_TO_SET_SOCKET_TO_NON_BLOCKING = PAL_ERR_SOCKET_ERROR_BASE + 13, /*! failed to set socket to non-blocking */ + PAL_ERR_SOCKET_INVALID_ADDRESS_FAMILY = PAL_ERR_SOCKET_ERROR_BASE + 14, /*! failed to set socket to non-blocking */ + PAL_ERR_SOCKET_INVALID_ADDRESS = PAL_ERR_SOCKET_ERROR_BASE + 15, /*! address given was not valid/found*/ + PAL_ERR_SOCKET_DNS_ERROR = PAL_ERR_SOCKET_ERROR_BASE + 16, /*! DNS lookup error*/ + PAL_ERR_SOCKET_HDCP_ERROR = PAL_ERR_SOCKET_ERROR_BASE + 17, /*! HDCP error*/ + PAL_ERR_SOCKET_AUTH_ERROR = PAL_ERR_SOCKET_ERROR_BASE + 18, /*! authentication error*/ + PAL_ERR_SOCKET_OPTION_NOT_SUPPORTED = PAL_ERR_SOCKET_ERROR_BASE + 19, /*! socket option not supported*/ + //update Error + PAL_ERR_UPDATE_ERROR_BASE = (-1 << PAL_ERR_MODULE_UPDATE), /*! generic error */ + PAL_ERR_UPDATE_ERROR = PAL_ERR_UPDATE_ERROR_BASE, /*! unknown error */ + PAL_ERR_UPDATE_BUSY = PAL_ERR_UPDATE_ERROR_BASE + 1, /*! unknown error */ + PAL_ERR_UPDATE_TIMEOUT = PAL_ERR_UPDATE_ERROR_BASE + 2, /*! unknown error */ + PAL_ERR_UPDATE_OUT_OF_BOUNDS = PAL_ERR_UPDATE_ERROR_BASE + 3, /*! unknown error */ + PAL_ERR_UPDATE_PALFROM_API = PAL_ERR_UPDATE_ERROR_BASE + 4, /*! unknown error */ + PAL_ERR_UPDATE_PALFROM_IO = PAL_ERR_UPDATE_ERROR_BASE + 5, /*! unknown error */ + PAL_ERR_UPDATE_END_OF_IMAGE = PAL_ERR_UPDATE_ERROR_BASE + 6, /*! unknown error */ + PAL_ERR_UPDATE_CHUNK_TO_SMALL = PAL_ERR_UPDATE_ERROR_BASE + 7, /*! unknown error */ } palError_t; /*! errors returned by the pal service API */ diff --git a/Source/PAL-Impl/Services-API/pal_macros.h b/Source/PAL-Impl/Services-API/pal_macros.h index 51c4a7a..0c0315b 100644 --- a/Source/PAL-Impl/Services-API/pal_macros.h +++ b/Source/PAL-Impl/Services-API/pal_macros.h @@ -27,21 +27,21 @@ extern "C" { #define PAL_SUCCESS 0 // maximum integer types -#define PAL_MAX_UINT8 0xFFU -#define PAL_MAX_UINT16 0xFFFFU -#define PAL_MAX_UINT32 0xFFFFFFFFUL -#define PAL_MAX_INT32 0x7FFFFFFFL -#define PAL_MIN_INT32 0x80000000L -#define PAL_MAX_UINT64 0xFFFFFFFFFFFFFFFFULL -#define PAL_MAX_INT64 0x7FFFFFFFFFFFFFFFLL +#define PAL_MAX_UINT8 0xFFU +#define PAL_MAX_UINT16 0xFFFFU +#define PAL_MAX_UINT32 0xFFFFFFFFUL +#define PAL_MAX_INT32 0x7FFFFFFFL +#define PAL_MIN_INT32 0x80000000L +#define PAL_MAX_UINT64 0xFFFFFFFFFFFFFFFFULL +#define PAL_MAX_INT64 0x7FFFFFFFFFFFFFFFLL // useful macros -#define PAL_MAX(a,b) ((a) > (b) ? (a) : (b)) +#define PAL_MAX(a,b) ((a) > (b) ? (a) : (b)) -#define PAL_MIN(a,b) ((a) < (b) ? (a) : (b)) +#define PAL_MIN(a,b) ((a) < (b) ? (a) : (b)) -#define PAL_DIVIDE_ROUND_UP(num, divider) (((num) + (divider) - 1) / (divider)) +#define PAL_DIVIDE_ROUND_UP(num, divider) (((num) + (divider) - 1) / (divider)) #if PAL_COMPILATION_ENDIANITY == 1 #define BIG__ENDIAN 1 @@ -55,13 +55,13 @@ extern "C" { #ifdef LITTLE__ENDIAN #define PAL_HTONS(x) (((((unsigned short)(x)) >> 8) & 0xff) | \ - ((((unsigned short)(x)) & 0xff) << 8)) + ((((unsigned short)(x)) & 0xff) << 8)) #define PAL_NTOHS(x) (((((unsigned short)(x)) >> 8) & 0xff) | \ - ((((unsigned short)(x)) & 0xff) << 8) ) + ((((unsigned short)(x)) & 0xff) << 8) ) #define PAL_HTONL(x) ((((x)>>24) & 0xffL) | (((x)>>8) & 0xff00L) | \ - (((x)<<8) & 0xff0000L) | (((x)<<24) & 0xff000000L)) + (((x)<<8) & 0xff0000L) | (((x)<<24) & 0xff000000L)) #define PAL_NTOHL(x) ((((x)>>24) & 0xffL) | (((x)>>8) & 0xff00L) | \ - (((x)<<8) & 0xff0000L) | (((x)<<24) & 0xff000000L)) + (((x)<<8) & 0xff0000L) | (((x)<<24) & 0xff000000L)) #elif defined(BIG__ENDIAN) @@ -76,13 +76,13 @@ extern "C" { #define PAL_INVERSE_UINT16_BYTES( val ) \ - ( ((val) << 8) | (((val) & 0x0000FF00) >> 8)) + ( ((val) << 8) | (((val) & 0x0000FF00) >> 8)) #define PAL_INVERSE_UINT32_BYTES( val ) \ ( ((val) >> 24) | (((val) & 0x00FF0000) >> 8) | (((val) & 0x0000FF00) << 8) | (((val) & 0x000000FF) << 24) ) #define PAL_INVERSE_UINT64_BYTES( val ) \ - ((PAL_INVERSE_UINT32_BYTES( ((val >> 16) >> 16)) &0xffffffff) | ((((uint64_t)PAL_INVERSE_UINT32_BYTES(val & 0xffffffff))<<16)<<16)) + ((PAL_INVERSE_UINT32_BYTES( ((val >> 16) >> 16)) &0xffffffff) | ((((uint64_t)PAL_INVERSE_UINT32_BYTES(val & 0xffffffff))<<16)<<16)) /* Set of Macros similar to the HTONS/L, NTOHS/L ones but converting to/from little endian instead of big endian*/ #ifdef LITTLE__ENDIAN diff --git a/Source/PAL-Impl/Services-API/pal_network.h b/Source/PAL-Impl/Services-API/pal_network.h index 7d0b0b2..b1545b1 100644 --- a/Source/PAL-Impl/Services-API/pal_network.h +++ b/Source/PAL-Impl/Services-API/pal_network.h @@ -35,38 +35,38 @@ typedef void* palSocket_t; /*! PAL socket handle type */ #define PAL_NET_MAX_ADDR_SIZE 32 // check if we can make this more efficient typedef struct palSocketAddress { - unsigned short addressType; /*! address family for the socket*/ - char addressData[PAL_NET_MAX_ADDR_SIZE]; /*! address (based on protocol)*/ + unsigned short addressType; /*! address family for the socket*/ + char addressData[PAL_NET_MAX_ADDR_SIZE]; /*! address (based on protocol)*/ } palSocketAddress_t; /*! address data structure with enough room to support IPV4 and IPV6*/ typedef struct palNetInterfaceInfo{ - char interfaceName[16]; //15 + ‘\0’ - palSocketAddress_t address; - uint32_t addressSize; + char interfaceName[16]; //15 + ‘\0’ + palSocketAddress_t address; + uint32_t addressSize; } palNetInterfaceInfo_t; typedef enum { - PAL_AF_UNSPEC = 0, - PAL_AF_INET = 2, /*! Internet IP Protocol */ - PAL_AF_INET6 = 10, /*! IP version 6 */ + PAL_AF_UNSPEC = 0, + PAL_AF_INET = 2, /*! Internet IP Protocol */ + PAL_AF_INET6 = 10, /*! IP version 6 */ } palSocketDomain_t;/*! network domains supported by PAL*/ typedef enum { #if PAL_NET_TCP_AND_TLS_SUPPORT - PAL_SOCK_STREAM = 1, /*! stream socket */ - PAL_SOCK_STREAM_SERVER = 99, /*! stream socket */ + PAL_SOCK_STREAM = 1, /*! stream socket */ + PAL_SOCK_STREAM_SERVER = 99, /*! stream socket */ #endif //PAL_NET_TCP_AND_TLS_SUPPORT - PAL_SOCK_DGRAM = 2 /*! datagram socket */ + PAL_SOCK_DGRAM = 2 /*! datagram socket */ } palSocketType_t;/*! socket types supported by PAL */ typedef enum { - PAL_SO_REUSEADDR = 0x0004, /*! allow local address reuse */ + PAL_SO_REUSEADDR = 0x0004, /*! allow local address reuse */ #if PAL_NET_TCP_AND_TLS_SUPPORT // socket options below supported only if TCP is supported. - PAL_SO_KEEPALIVE = 0x0008, /*! keep TCP connection open even if idle using periodic messages*/ + PAL_SO_KEEPALIVE = 0x0008, /*! keep TCP connection open even if idle using periodic messages*/ #endif //PAL_NET_TCP_AND_TLS_SUPPORT - PAL_SO_SNDTIMEO = 0x1005, /*! send timeout */ - PAL_SO_RCVTIMEO = 0x1006, /*! receive timeout */ + PAL_SO_SNDTIMEO = 0x1005, /*! send timeout */ + PAL_SO_RCVTIMEO = 0x1006, /*! receive timeout */ } palSocketOptionName_t;/*! socket options supported by PAL */ #define PAL_NET_DEFAULT_INTERFACE 0xFFFFFFFF @@ -78,8 +78,8 @@ typedef uint8_t palIpV4Addr_t[PAL_IPV4_ADDRESS_SIZE]; typedef uint8_t palIpV6Addr_t[PAL_IPV6_ADDRESS_SIZE]; typedef struct pal_timeVal{ - int32_t pal_tv_sec; /*! seconds */ - int32_t pal_tv_usec; /*! microseconds */ + int32_t pal_tv_sec; /*! seconds */ + int32_t pal_tv_usec; /*! microseconds */ } pal_timeVal_t; @@ -218,9 +218,9 @@ palStatus_t pal_getNetInterfaceInfo(uint32_t interfaceNum, palNetInterfaceInfo_t #define PAL_NET_SOCKET_SELECT_TX_BIT (2) #define PAL_NET_SOCKET_SELECT_ERR_BIT (4) -#define PAL_NET_SELECT_IS_RX(socketStatus, index) ((socketStatus[index] | PAL_NET_SOCKET_SELECT_RX_BIT) != 0) /*! check if RX bit is set in select result for a given socket index*/ -#define PAL_NET_SELECT_IS_TX(socketStatus, index) ((socketStatus[index] | PAL_NET_SOCKET_SELECT_TX_BIT) != 0) /*! check if TX bit is set in select result for a given socket index*/ -#define PAL_NET_SELECT_IS_ERR(socketStatus, index) ((socketStatus[index] | PAL_NET_SOCKET_SELECT_ERR_BIT) != 0) /*! check if ERR bit is set in select result for a given socket index*/ +#define PAL_NET_SELECT_IS_RX(socketStatus, index) ((socketStatus[index] | PAL_NET_SOCKET_SELECT_RX_BIT) != 0) /*! check if RX bit is set in select result for a given socket index*/ +#define PAL_NET_SELECT_IS_TX(socketStatus, index) ((socketStatus[index] | PAL_NET_SOCKET_SELECT_TX_BIT) != 0) /*! check if TX bit is set in select result for a given socket index*/ +#define PAL_NET_SELECT_IS_ERR(socketStatus, index) ((socketStatus[index] | PAL_NET_SOCKET_SELECT_ERR_BIT) != 0) /*! check if ERR bit is set in select result for a given socket index*/ /*! check if one or more (up to PAL_NET_SOCKET_SELECT_MAX_SOCKETS) sockets given has data available for reading/writing/error, the function will block until data is available for one of the given sockets or the timeout expires. To use the function: set the sockets you want to check in the socketsToCheck array and set a timeout, when it returns the socketStatus output will indicate the status of each socket passed in. @@ -233,7 +233,7 @@ To use the function: set the sockets you want to check in the socketsToCheck arr \note the entry in index x in the socketStatus array corresponds to the socket at index x in the sockets to check array. */ palStatus_t pal_socketMiniSelect(const palSocket_t socketsToCheck[PAL_NET_SOCKET_SELECT_MAX_SOCKETS], uint32_t numberOfSockets, pal_timeVal_t* timeout, - uint8_t palSocketStatus[PAL_NET_SOCKET_SELECT_MAX_SOCKETS], uint32_t* numberOfSocketsSet); + uint8_t palSocketStatus[PAL_NET_SOCKET_SELECT_MAX_SOCKETS], uint32_t* numberOfSocketsSet); #if PAL_NET_TCP_AND_TLS_SUPPORT // functionality below supported only in case TCP is supported. @@ -275,7 +275,7 @@ palStatus_t pal_recv(palSocket_t socket, void* buf, size_t len, size_t* recieved /*! send a given buffer via the given connected socket * @param[in] socket the connected socket on which to send data [we expect sockets passed to this function to be of type PAL_SOCK_STREAM ( the implementation may support other types as well) ] -* @param[in] buf the buffer for the message data +* @param[in] buf the output buffer for the message data * @param[in] len the length of the input data buffer * @param[out] sentDataSize the length of the data sent \return the function returns the status as in the form of PalStatus_t which will be PAL_SUCCESS (0) in case of success or a specific negative error code in case of failure diff --git a/Source/PAL-Impl/Services-API/pal_rtos.h b/Source/PAL-Impl/Services-API/pal_rtos.h index d9233d0..6d1faac 100644 --- a/Source/PAL-Impl/Services-API/pal_rtos.h +++ b/Source/PAL-Impl/Services-API/pal_rtos.h @@ -40,8 +40,8 @@ typedef uintptr_t palMessageQID_t; //! Timers types supported in PAL typedef enum palTimerType { - palOsTimerOnce = 0, /*! One shot timer*/ - palOsTimerPeriodic = 1 /*! Periodic (repeating) timer*/ + palOsTimerOnce = 0, /*! One shot timer*/ + palOsTimerPeriodic = 1 /*! Periodic (repeating) timer*/ } palTimerType_t; //! PAL timer function prototype @@ -51,21 +51,21 @@ typedef void(*palTimerFuncPtr)(void const *funcArgument); typedef void(*palThreadFuncPtr)(void const *funcArgument); //! Available priorities in PAL implementation, each priority can appear only once. -typedef enum pal_osPriority { - PAL_osPriorityIdle = -3, - PAL_osPriorityLow = -2, - PAL_osPriorityBelowNormal = -1, - PAL_osPriorityNormal = 0, - PAL_osPriorityAboveNormal = +1, - PAL_osPriorityHigh = +2, - PAL_osPriorityRealtime = +3, - PAL_osPriorityError = 0x84 +typedef enum pal_osPriority { + PAL_osPriorityIdle = -3, + PAL_osPriorityLow = -2, + PAL_osPriorityBelowNormal = -1, + PAL_osPriorityNormal = 0, + PAL_osPriorityAboveNormal = +1, + PAL_osPriorityHigh = +2, + PAL_osPriorityRealtime = +3, + PAL_osPriorityError = 0x84 } palThreadPriority_t; /*! Thread priority levels for PAL threads - each thread must have a different priority*/ //! Thread Local Store struct. //! Can be used to hold: State, configurations and etc inside the thread. typedef struct pal_threadLocalStore{ - void* storeData; + void* storeData; } palThreadLocalStore_t; //------- system general functions @@ -117,11 +117,11 @@ uint64_t pal_osKernelSysTickFrequency(void); * @param[out] threadID: holds the created thread ID handle - zero value indecates an error. * * \return PAL_SUCCESS when thread created successfully. -* PAL_ERR_RTOS_PRIORITY : the given priority already used before in the system. +* PAL_ERR_RTOS_PRIORITY : the given priority already used before in the system. * * \note Each thread MUST be with unique priority. * \note When the priority of the created thread function is higher than the current running thread, the -* created thread function starts instantly and becomes the new running thread. +* created thread function starts instantly and becomes the new running thread. */ palStatus_t pal_osThreadCreate(palThreadFuncPtr function, void* funcArgument, palThreadPriority_t priority, uint32_t stackSize, uint32_t* stackPtr, palThreadLocalStore_t* store, palThreadID_t* threadID); @@ -131,7 +131,7 @@ palStatus_t pal_osThreadCreate(palThreadFuncPtr function, void* funcArgument, pa * @param[in] threadID: thread ID to stop and terminate. * * \return palStatus_t which will be PAL_SUCCESS(0) in case of success and another negative value indicating a specific error code in case of failure -* PAL_ERR_RTOS_RESOURCE: if the thread ID is not correct. +* PAL_ERR_RTOS_RESOURCE: if the thread ID is not correct. */ palStatus_t pal_osThreadTerminate(palThreadID_t* threadID); @@ -161,7 +161,9 @@ palStatus_t pal_osDelay(uint32_t milliseconds); * @param[out] timerID: holds the created timer ID handle - zero value indecates an error. * * \return PAL_SUCCESS when timer created successfully. -* Specific error in case of failure. +* PAL_ERR_NO_MEMORY: no memory resource available to create timer object. +* +* \note the timer function runs according to the platform resources of stack-size and priority. */ palStatus_t pal_osTimerCreate(palTimerFuncPtr function, void* funcArgument, palTimerType_t timerType, palTimerID_t* timerID); @@ -185,7 +187,7 @@ palStatus_t pal_osTimerStop(palTimerID_t timerID); * @param[inout] timerID: the handle for the timer to delete, in success:(*timerID = NULL). * * \return PAL_SUCCESS when timer deleted successfully. -* PAL_ERR_RTOS_PARAMETER when timerID is incorrect. +* PAL_ERR_RTOS_PARAMETER when timerID is incorrect. */ palStatus_t pal_osTimerDelete(palTimerID_t* timerID); @@ -194,7 +196,7 @@ palStatus_t pal_osTimerDelete(palTimerID_t* timerID); * @param[out] mutexID: holds the created mutex ID handle - zero value indecates an error. * * \return PAL_SUCCESS when mutex created successfully. -* Specific error in case of failure. +* PAL_ERR_NO_MEMORY: no memory resource available to create mutex object. */ palStatus_t pal_osMutexCreate(palMutexID_t* mutexID); @@ -202,14 +204,14 @@ palStatus_t pal_osMutexCreate(palMutexID_t* mutexID); * * @param[in] mutexID the handle for the mutex * @param[in] millisec the timeout for the waiting operation if the - timeout expires before the semaphore is released and - error will be returned from the function, PAL_RTOS_WAIT_FOREVER can be used. + timeout expires before the semaphore is released and + error will be returned from the function, PAL_RTOS_WAIT_FOREVER can be used. * * \return the function returns the status in the form of palStatus_t which will be PAL_SUCCESS(0) in case of success and one of the following error codes in case of failure: -* PAL_ERR_RTOS_RESOURCE - mutex not avaialbe but no time out set. -* PAL_ERR_RTOS_TIMEOUT - mutex was not available until timeout expired. -* PAL_ERR_RTOS_PARAMETER - mutex id is invalid -* PAL_ERR_RTOS_ISR - cannot be called from interrupt service routines +* PAL_ERR_RTOS_RESOURCE - mutex not avaialbe but no time out set. +* PAL_ERR_RTOS_TIMEOUT - mutex was not available until timeout expired. +* PAL_ERR_RTOS_PARAMETER - mutex id is invalid +* PAL_ERR_RTOS_ISR - cannot be called from interrupt service routines */ palStatus_t pal_osMutexWait(palMutexID_t mutexID, uint32_t millisec); @@ -225,9 +227,9 @@ palStatus_t pal_osMutexRelease(palMutexID_t mutexID); * @param[inout] mutexID: Mutex handle to delete, in success:(*mutexID = NULL). * * \return PAL_SUCCESS when mutex deleted successfully. -* PAL_ERR_RTOS_RESOURCE - mutex already released. -* PAL_ERR_RTOS_PARAMETER - mutex id is invalid. -* PAL_ERR_RTOS_ISR - cannot be called from interrupt service routines. +* PAL_ERR_RTOS_RESOURCE - mutex already released. +* PAL_ERR_RTOS_PARAMETER - mutex id is invalid. +* PAL_ERR_RTOS_ISR - cannot be called from interrupt service routines. * \note After this call the mutex_id is no longer valid and cannot be used. */ palStatus_t pal_osMutexDelete(palMutexID_t* mutexID); @@ -237,8 +239,8 @@ palStatus_t pal_osMutexDelete(palMutexID_t* mutexID); * @param[in] count: number of available resources * @param[out] semaphoreID: holds the created semaphore ID handle - zero value indecates an error. * -* \return PAL_SUCCESS when mutex created successfully. -* Specific error in case of failure. +* \return PAL_SUCCESS when semaphore created successfully. +* PAL_ERR_NO_MEMORY: no memory resource available to create semaphore object. */ palStatus_t pal_osSemaphoreCreate(uint32_t count, palSemaphoreID_t* semaphoreID); @@ -246,12 +248,12 @@ palStatus_t pal_osSemaphoreCreate(uint32_t count, palSemaphoreID_t* semaphoreID) * * @param[in] semaphoreID the handle for the semaphore * @param[in] millisec the timeout for the waiting operation if the timeout - expires before the semaphore is released and error will be - returned from the function, PAL_RTOS_WAIT_FOREVER can be used. + expires before the semaphore is released and error will be + returned from the function, PAL_RTOS_WAIT_FOREVER can be used. * @param[out] counteresAvailable the number of semaphore available at the call if semaphore is available, if semaphore was not available (timeout/error) zero is returned. * \return the function returns the status in the form of palStatus_t which will be PAL_SUCCESS(0) in case of success and one of the following error codes in case of failure: -* PAL_ERR_RTOS_TIMEOUT - semaphore was not available until timeout expired. -* PAL_ERR_RTOS_PARAMETER - semaphore id is invalid. +* PAL_ERR_RTOS_TIMEOUT - semaphore was not available until timeout expired. +* PAL_ERR_RTOS_PARAMETER - semaphore id is invalid. */ palStatus_t pal_osSemaphoreWait(palSemaphoreID_t semaphoreID, uint32_t millisec, int32_t* countersAvailable); @@ -268,8 +270,8 @@ palStatus_t pal_osSemaphoreRelease(palSemaphoreID_t semaphoreID); * @param[inout] semaphoreID: Semaphore handle to delete, in success:(*semaphoreID = NULL). * * \return PAL_SUCCESS when semaphore deleted successfully. -* PAL_ERR_RTOS_RESOURCE - semaphore already released. -* PAL_ERR_RTOS_PARAMETER - semaphore id is invalid. +* PAL_ERR_RTOS_RESOURCE - semaphore already released. +* PAL_ERR_RTOS_PARAMETER - semaphore id is invalid. * \note After this call the semaphore_id is no longer valid and cannot be used. */ palStatus_t pal_osSemaphoreDelete(palSemaphoreID_t* semaphoreID); @@ -280,8 +282,8 @@ palStatus_t pal_osSemaphoreDelete(palSemaphoreID_t* semaphoreID); * @param[in] blockCount: maximum number of blocks in memory pool. * @param[out] memoryPoolID: holds the created memory pool ID handle - zero value indecates an error. * -* \return PAL_SUCCESS when mutex created successfully. -* Specific error in case of failure. +* \return PAL_SUCCESS when memory pool created successfully. +* PAL_ERR_NO_MEMORY: no memory resource available to create memory pool object. */ palStatus_t pal_osPoolCreate(uint32_t blockSize, uint32_t blockCount, palMemoryPoolID_t* memoryPoolID); @@ -325,7 +327,7 @@ palStatus_t pal_osPoolDestroy(palMemoryPoolID_t* memoryPoolID); * @param[out] memoryPoolID: holds the created memory pool ID handle - zero value indecates an error. * * \return PAL_SUCCESS when message queue created successfully. -* Specific error in case of failure. +* PAL_ERR_NO_MEMORY: no memory resource available to create message queue object. */ palStatus_t pal_osMessageQueueCreate(uint32_t messageQSize, palMessageQID_t* messageQID); @@ -382,8 +384,8 @@ int32_t pal_osAtomicIncrement(int32_t* valuePtr, int32_t increment); */ void dbgPrintf( const char* function, uint32_t line, const char * format, ... ); -#define PAL_PRINTF( ARGS...) \ - dbgPrintf(__FUNCTION__,__LINE__, ARGS); +#define PAL_PRINTF( ARGS...) \ + dbgPrintf(__FUNCTION__,__LINE__, ARGS); diff --git a/Source/PAL-Impl/pal_init.c b/Source/PAL-Impl/pal_init.c index 9271556..1ae0b42 100644 --- a/Source/PAL-Impl/pal_init.c +++ b/Source/PAL-Impl/pal_init.c @@ -27,49 +27,49 @@ static int32_t g_palIntialized = 0; palStatus_t pal_init() { - palStatus_t status = PAL_SUCCESS; - int32_t currentInitValue; - // get the return value of g_palIntialized+1 to save it locally - currentInitValue = pal_osAtomicIncrement(&g_palIntialized,1); - // if increased for the 1st time - if (1 == currentInitValue) - { - DEBUG_PRINT("Init for the 1st time, initializing the modules\r\n"); - status = pal_plat_RTOSInitialize(NULL); - if (PAL_SUCCESS == status) - { + palStatus_t status = PAL_SUCCESS; + int32_t currentInitValue; + // get the return value of g_palIntialized+1 to save it locally + currentInitValue = pal_osAtomicIncrement(&g_palIntialized,1); + // if increased for the 1st time + if (1 == currentInitValue) + { + DEBUG_PRINT("Init for the 1st time, initializing the modules\r\n"); + status = pal_plat_RTOSInitialize(NULL); + if (PAL_SUCCESS == status) + { - status = pal_plat_socketsInit(NULL); - if (PAL_SUCCESS != status) - { - DEBUG_PRINT("init of network module has failed with status %d\r\n",status); - } - } - else - { - DEBUG_PRINT("init of RTOS module has failed with status %d\r\n",status); - } - } - // if failed decrees the value of g_palIntialized - if (PAL_SUCCESS != status) - { - pal_plat_socketsTerminate(NULL); - pal_plat_RTOSDestroy(); - pal_osAtomicIncrement(&g_palIntialized, -1); - } - return status; + status = pal_plat_socketsInit(NULL); + if (PAL_SUCCESS != status) + { + DEBUG_PRINT("init of network module has failed with status %d\r\n",status); + } + } + else + { + DEBUG_PRINT("init of RTOS module has failed with status %d\r\n",status); + } + } + // if failed decrees the value of g_palIntialized + if (PAL_SUCCESS != status) + { + pal_plat_socketsTerminate(NULL); + pal_plat_RTOSDestroy(); + pal_osAtomicIncrement(&g_palIntialized, -1); + } + return status; } void pal_destroy() { - int32_t currentInitValue; - // get the current value of g_palIntialized locally - currentInitValue = pal_osAtomicIncrement(&g_palIntialized, -1); - if (0 == currentInitValue) - { - DEBUG_PRINT("Destroying modules\r\n"); - pal_plat_RTOSDestroy(); - pal_plat_socketsTerminate(NULL); - } + int32_t currentInitValue; + // get the current value of g_palIntialized locally + currentInitValue = pal_osAtomicIncrement(&g_palIntialized, -1); + if (0 == currentInitValue) + { + DEBUG_PRINT("Destroying modules\r\n"); + pal_plat_RTOSDestroy(); + pal_plat_socketsTerminate(NULL); + } } diff --git a/Source/Port/Platform-API/pal_plat_network.h b/Source/Port/Platform-API/pal_plat_network.h index b161ed1..83f0ec0 100644 --- a/Source/Port/Platform-API/pal_plat_network.h +++ b/Source/Port/Platform-API/pal_plat_network.h @@ -140,7 +140,7 @@ Note: The entry in index x in the socketStatus array corresponds to the socket a \return The status in the form of PalStatus_t; PAL_SUCCESS (0) in case of success, a specific negative error code in case of failure. */ palStatus_t pal_plat_socketMiniSelect(const palSocket_t socketsToCheck[PAL_NET_SOCKET_SELECT_MAX_SOCKETS], uint32_t numberOfSockets, pal_timeVal_t* timeout, - uint8_t palSocketStatus[PAL_NET_SOCKET_SELECT_MAX_SOCKETS], uint32_t * numberOfSocketsSet); + uint8_t palSocketStatus[PAL_NET_SOCKET_SELECT_MAX_SOCKETS], uint32_t * numberOfSocketsSet); #if PAL_NET_TCP_AND_TLS_SUPPORT // functionality below supported only in case TCP is supported. diff --git a/Source/Port/Platform-API/pal_plat_rtos.h b/Source/Port/Platform-API/pal_plat_rtos.h index bc42449..2e33bd1 100644 --- a/Source/Port/Platform-API/pal_plat_rtos.h +++ b/Source/Port/Platform-API/pal_plat_rtos.h @@ -22,6 +22,7 @@ extern "C" { #endif +#include "pal_rtos.h" #include "pal_configuration.h" #include "pal_types.h" @@ -32,13 +33,13 @@ extern "C" { //! situation. The mapping between the priorities and the index //! in the array is as follow: //! -//! PAL_osPriorityIdle --> g_palThreadPriorities[0] -//! PAL_osPriorityLow --> g_palThreadPriorities[1] -//! PAL_osPriorityBelowNormal --> g_palThreadPriorities[2] -//! PAL_osPriorityNormal --> g_palThreadPriorities[3] -//! PAL_osPriorityAboveNormal --> g_palThreadPriorities[4] -//! PAL_osPriorityHigh --> g_palThreadPriorities[5] -//! PAL_osPriorityRealtime --> g_palThreadPriorities[6] +//! PAL_osPriorityIdle --> g_palThreadPriorities[0] +//! PAL_osPriorityLow --> g_palThreadPriorities[1] +//! PAL_osPriorityBelowNormal --> g_palThreadPriorities[2] +//! PAL_osPriorityNormal --> g_palThreadPriorities[3] +//! PAL_osPriorityAboveNormal --> g_palThreadPriorities[4] +//! PAL_osPriorityHigh --> g_palThreadPriorities[5] +//! PAL_osPriorityRealtime --> g_palThreadPriorities[6] //! An array of PAL thread priorities. The size of the array is defined in the Service API (pal_rtos.h) by "PAL_MAX_NUMBER_OF_THREADS" extern uint8_t g_palThreadPriorities[PAL_MAX_NUMBER_OF_THREADS]; @@ -51,7 +52,7 @@ extern uint8_t g_palThreadPriorities[PAL_MAX_NUMBER_OF_THREADS]; void pal_plat_osReboot(void); /*! Initialize all data structures (semaphores, mutexes, memory pools, message queues) at system initialization. -* In case of a failure in any of the initializations, the function returns with an error and stops the rest of the initializations. +* In case of a failure in any of the initializations, the function returns with an error and stops the rest of the initializations. * @param[in] opaqueContext The context passed to the initialization (not required for generic CMSIS, pass NULL in this case). * \return PAL_SUCCESS(0) in case of success, PAL_ERR_CREATION_FAILED in case of failure. */ @@ -62,13 +63,19 @@ palStatus_t pal_plat_RTOSInitialize(void* opaqueContext); void pal_plat_RTOSDestroy(void); /*! Get the RTOS kernel system timer counter. -* \note This counter wraps around very often (for example, once every 42 sec for 100Mhz). +* * \return The RTOS kernel system timer counter. +* +* \note The required tick counter is the OS (platform) kernel system tick counter. +* \note This counter wraps around very often (for example, once every 42 sec for 100Mhz). */ uint32_t pal_plat_osKernelSysTick(); /*! Get the RTOS kernel system timer counter. +* * \return The RTOS kernel system timer counter. +* +* \note The required tick counter is the OS (platform) kernel system tick counter. */ uint64_t pal_plat_osKernelSysTick64(void); // optional API - not part of original CMSIS API. @@ -103,7 +110,8 @@ uint64_t pal_plat_osKernelSysTickFrequency(void); * \return The ID of the created thread, in case of error return zero. * \note Each thread MUST have a unique priority. * \note When the priority of the created thread function is higher than the current running thread, the -* created thread function starts instantly and becomes the new running thread. +* created thread function starts instantly and becomes the new running thread. +* \note the create function MUST not wait for platform resources and it should return "PAL_ERR_RTOS_RESOURCE", unless the platform API is blocking. */ palStatus_t pal_plat_osThreadCreate(palThreadFuncPtr function, void* funcArgument, palThreadPriority_t priority, uint32_t stackSize, uint32_t* stackPtr, palThreadLocalStore_t* store, palThreadID_t* threadID); @@ -142,6 +150,10 @@ palStatus_t pal_plat_osDelay(uint32_t milliseconds); * @param[out] timerID The ID of the created timer, zero value indicates an error. * * \return PAL_SUCCESS when the timer was created successfully. A specific error in case of failure. +* PAL_ERR_NO_MEMORY: no memory resource available to create timer object. +* +* \note the timer callback function runs according to the platform resources of stack-size and priority. +* \note the create function MUST not wait for platform resources and it should return "PAL_ERR_RTOS_RESOURCE", unless the platform API is blocking. */ palStatus_t pal_plat_osTimerCreate(palTimerFuncPtr function, void* funcArgument, palTimerType_t timerType, palTimerID_t* timerID); @@ -175,6 +187,8 @@ palStatus_t pal_plat_osTimerDelete(palTimerID_t* timerID); * @param[out] mutexID The created mutex ID handle, zero value indicates an error. * * \return PAL_SUCCESS when the mutex was created successfully, a specific error in case of failure. +* PAL_ERR_NO_MEMORY: no memory resource available to create mutex object. +* \note the create function MUST not wait for platform resources and it should return "PAL_ERR_RTOS_RESOURCE", unless the platform API is blocking. */ palStatus_t pal_plat_osMutexCreate(palMutexID_t* mutexID); @@ -184,10 +198,10 @@ palStatus_t pal_plat_osMutexCreate(palMutexID_t* mutexID); * @param[in] millisec The timeout for the waiting operation if the timeout expires before the semaphore is released and an error is returned from the function. * * \return The status in the form of palStatus_t; PAL_SUCCESS(0) in case of success, one of the following error codes in case of failure: -* PAL_ERR_RTOS_RESOURCE - Mutex not available but no timeout set. -* PAL_ERR_RTOS_TIMEOUT - Mutex was not available until timeout expired. -* PAL_ERR_RTOS_PARAMETER - Mutex ID is invalid. -* PAL_ERR_RTOS_ISR - Cannot be called from interrupt service routines. +* PAL_ERR_RTOS_RESOURCE - Mutex not available but no timeout set. +* PAL_ERR_RTOS_TIMEOUT - Mutex was not available until timeout expired. +* PAL_ERR_RTOS_PARAMETER - Mutex ID is invalid. +* PAL_ERR_RTOS_ISR - Cannot be called from interrupt service routines. */ palStatus_t pal_plat_osMutexWait(palMutexID_t mutexID, uint32_t millisec); @@ -204,9 +218,9 @@ palStatus_t pal_plat_osMutexRelease(palMutexID_t mutexID); * @param[inout] mutexID The ID of the mutex to delete. In success, *mutexID = NULL. * * \return PAL_SUCCESS when the mutex was deleted successfully, one of the following error codes in case of failure: -* PAL_ERR_RTOS_RESOURCE - Mutex already released. -* PAL_ERR_RTOS_PARAMETER - Mutex ID is invalid. -* PAL_ERR_RTOS_ISR - Cannot be called from interrupt service routines. +* PAL_ERR_RTOS_RESOURCE - Mutex already released. +* PAL_ERR_RTOS_PARAMETER - Mutex ID is invalid. +* PAL_ERR_RTOS_ISR - Cannot be called from interrupt service routines. * \note After this call, mutex_id is no longer valid and cannot be used. */ palStatus_t pal_plat_osMutexDelete(palMutexID_t* mutexID); @@ -217,6 +231,8 @@ palStatus_t pal_plat_osMutexDelete(palMutexID_t* mutexID); * @param[out] semaphoreID The ID of the created semaphore, zero value indicates an error. * * \return PAL_SUCCESS when the semaphore was created successfully, a specific error in case of failure. +* PAL_ERR_NO_MEMORY: no memory resource available to create semaphore object. +* \note the create function MUST not wait for platform resources and it should return "PAL_ERR_RTOS_RESOURCE", unless the platform API is blocking. */ palStatus_t pal_plat_osSemaphoreCreate(uint32_t count, palSemaphoreID_t* semaphoreID); @@ -226,8 +242,8 @@ palStatus_t pal_plat_osSemaphoreCreate(uint32_t count, palSemaphoreID_t* semapho * @param[in] millisec The timeout for the waiting operation if the timeout expires before the semaphore is released and an error is returned from the function. * @param[out] countersAvailable The number of semaphores available, if semaphores are not available (timeout/error) zero is returned. * \return The status in the form of palStatus_t; PAL_SUCCESS(0) in case of success, one of the following error codes in case of failure: -* PAL_ERR_RTOS_TIMEOUT - Semaphore was not available until timeout expired. -* PAL_ERR_RTOS_PARAMETER - Semaphore ID is invalid. +* PAL_ERR_RTOS_TIMEOUT - Semaphore was not available until timeout expired. +* PAL_ERR_RTOS_PARAMETER - Semaphore ID is invalid. */ palStatus_t pal_plat_osSemaphoreWait(palSemaphoreID_t semaphoreID, uint32_t millisec, int32_t* countersAvailable); @@ -244,8 +260,8 @@ palStatus_t pal_plat_osSemaphoreRelease(palSemaphoreID_t semaphoreID); * @param[inout] semaphoreID: The ID of the semaphore to delete. In success, *semaphoreID = NULL. * * \return PAL_SUCCESS when the semaphore was deleted successfully, one of the following error codes in case of failure: -* PAL_ERR_RTOS_RESOURCE - Semaphore already released. -* PAL_ERR_RTOS_PARAMETER - Semaphore ID is invalid. +* PAL_ERR_RTOS_RESOURCE - Semaphore already released. +* PAL_ERR_RTOS_PARAMETER - Semaphore ID is invalid. * \note After this call, the semaphore_id is no longer valid and cannot be used. */ palStatus_t pal_plat_osSemaphoreDelete(palSemaphoreID_t* semaphoreID); @@ -257,6 +273,8 @@ palStatus_t pal_plat_osSemaphoreDelete(palSemaphoreID_t* semaphoreID); * @param[out] memoryPoolID The ID of the created memory pool, zero value indicates an error. * * \return PAL_SUCCESS when the memory pool was created successfully, a specific error in case of failure. +* PAL_ERR_NO_MEMORY: no memory resource available to create memory pool object. +* \note the create function MUST not wait for platform resources and it should return "PAL_ERR_RTOS_RESOURCE", unless the platform API is blocking. */ palStatus_t pal_plat_osPoolCreate(uint32_t blockSize, uint32_t blockCount, palMemoryPoolID_t* memoryPoolID); @@ -299,6 +317,8 @@ palStatus_t pal_plat_osPoolDestroy(palMemoryPoolID_t* memoryPoolID); * @param[out] messageQID The ID of the created message queue, zero value indicates an error. * * \return PAL_SUCCESS when the message queue was created successfully, a specific error in case of failure. +* PAL_ERR_NO_MEMORY: no memory resource available to create message queue object. +* \note the create function MUST not wait for platform resources and it should return "PAL_ERR_RTOS_RESOURCE", unless the platform API is blocking. */ palStatus_t pal_plat_osMessageQueueCreate(uint32_t messageQSize, palMessageQID_t* messageQID); @@ -345,7 +365,7 @@ int32_t pal_plat_osAtomicIncrement(int32_t* valuePtr, int32_t increment); #ifdef DEBUG #include "stdio.h" #define pal_plat_printf(ARGS...) printf(ARGS) -#define pal_plat_vprintf(FORMAT,LIST) vprintf(FORMAT,LIST) +#define pal_plat_vprintf(FORMAT,LIST) vprintf(FORMAT,LIST) #endif #ifdef __cplusplus diff --git a/Source/Port/Reference-Impl/mbedOS/Networking/pal_plat_network.cpp b/Source/Port/Reference-Impl/mbedOS/Networking/pal_plat_network.cpp index 2f65823..32e7c44 100644 --- a/Source/Port/Reference-Impl/mbedOS/Networking/pal_plat_network.cpp +++ b/Source/Port/Reference-Impl/mbedOS/Networking/pal_plat_network.cpp @@ -49,200 +49,200 @@ static uint32_t s_pal_network_initialized = 0; static palStatus_t translateErrorToPALError(int errnoValue) { - palStatus_t status; - switch (errnoValue) - { - case NSAPI_ERROR_NO_MEMORY: - status = PAL_ERR_NO_MEMORY; - break; - case NSAPI_ERROR_PARAMETER: - status = PAL_ERR_SOCKET_INVALID_VALUE; - break; - case NSAPI_ERROR_WOULD_BLOCK: - status = PAL_ERR_SOCKET_WOULD_BLOCK; - break; - case NSAPI_ERROR_DNS_FAILURE: - status = PAL_ERR_SOCKET_DNS_ERROR; - break; - case NSAPI_ERROR_DHCP_FAILURE: - status = PAL_ERR_SOCKET_HDCP_ERROR; - break; - case NSAPI_ERROR_AUTH_FAILURE: - status = PAL_ERR_SOCKET_AUTH_ERROR; - break; - case NSAPI_ERROR_NO_ADDRESS: - status = PAL_ERR_SOCKET_INVALID_ADDRESS; - break; - case NSAPI_ERROR_NO_CONNECTION: - status = PAL_ERR_SOCKET_NOT_CONNECTED; - break; - case NSAPI_ERROR_DEVICE_ERROR: - status = PAL_ERR_SOCKET_INPUT_OUTPUT_ERROR; - break; - case NSAPI_ERROR_UNSUPPORTED: - status = PAL_ERR_NOT_SUPPORTED; - break; - - default: - status = PAL_ERR_SOCKET_GENERIC; - break; - } - return status; + palStatus_t status; + switch (errnoValue) + { + case NSAPI_ERROR_NO_MEMORY: + status = PAL_ERR_NO_MEMORY; + break; + case NSAPI_ERROR_PARAMETER: + status = PAL_ERR_SOCKET_INVALID_VALUE; + break; + case NSAPI_ERROR_WOULD_BLOCK: + status = PAL_ERR_SOCKET_WOULD_BLOCK; + break; + case NSAPI_ERROR_DNS_FAILURE: + status = PAL_ERR_SOCKET_DNS_ERROR; + break; + case NSAPI_ERROR_DHCP_FAILURE: + status = PAL_ERR_SOCKET_HDCP_ERROR; + break; + case NSAPI_ERROR_AUTH_FAILURE: + status = PAL_ERR_SOCKET_AUTH_ERROR; + break; + case NSAPI_ERROR_NO_ADDRESS: + status = PAL_ERR_SOCKET_INVALID_ADDRESS; + break; + case NSAPI_ERROR_NO_CONNECTION: + status = PAL_ERR_SOCKET_NOT_CONNECTED; + break; + case NSAPI_ERROR_DEVICE_ERROR: + status = PAL_ERR_SOCKET_INPUT_OUTPUT_ERROR; + break; + case NSAPI_ERROR_UNSUPPORTED: + status = PAL_ERR_NOT_SUPPORTED; + break; + + default: + status = PAL_ERR_SOCKET_GENERIC; + break; + } + return status; } palStatus_t pal_plat_socketsInit(void* context) { - (void)context; // replace with macro - int result = PAL_SUCCESS; - if (s_pal_network_initialized == 1) - { - return PAL_SUCCESS; // already initialized. - } - - s_pal_network_initialized = 1; + (void)context; // replace with macro + int result = PAL_SUCCESS; + if (s_pal_network_initialized == 1) + { + return PAL_SUCCESS; // already initialized. + } + + s_pal_network_initialized = 1; - return result; + return result; } palStatus_t pal_plat_RegisterNetworkInterface(void* context, uint32_t* interfaceIndex) { - palStatus_t result = PAL_SUCCESS; - uint32_t index = 0; - uint32_t found = 0; - if (NULL != context) // TODO: nirson01 : not thread safe - do we need to fix his? - { - for (index = 0; index < s_pal_numberOFInterfaces; index++) // if specific context already registered return exisitng index instead of registering again. - { - if (s_pal_networkInterfacesSupported[index] == context) - { - found = 1; - if (interfaceIndex != NULL) - { - *interfaceIndex = index; - } - } - } - if (0 == found) - { - s_pal_networkInterfacesSupported[s_pal_numberOFInterfaces] = (NetworkInterface*)context; - if (interfaceIndex != NULL) - { - *interfaceIndex = s_pal_numberOFInterfaces; - } - s_pal_numberOFInterfaces = s_pal_numberOFInterfaces + 1; - } - - - } - else - { - result = PAL_ERR_INVALID_ARGUMENT; - } - return result; + palStatus_t result = PAL_SUCCESS; + uint32_t index = 0; + uint32_t found = 0; + if (NULL != context) // TODO: nirson01 : not thread safe - do we need to fix his? + { + for (index = 0; index < s_pal_numberOFInterfaces; index++) // if specific context already registered return exisitng index instead of registering again. + { + if (s_pal_networkInterfacesSupported[index] == context) + { + found = 1; + if (interfaceIndex != NULL) + { + *interfaceIndex = index; + } + } + } + if (0 == found) + { + s_pal_networkInterfacesSupported[s_pal_numberOFInterfaces] = (NetworkInterface*)context; + if (interfaceIndex != NULL) + { + *interfaceIndex = s_pal_numberOFInterfaces; + } + s_pal_numberOFInterfaces = s_pal_numberOFInterfaces + 1; + } + + + } + else + { + result = PAL_ERR_INVALID_ARGUMENT; + } + return result; } palStatus_t pal_plat_socketsTerminate(void* context) { - (void)context; // replace with macro - return PAL_SUCCESS; + (void)context; // replace with macro + return PAL_SUCCESS; } static int translateNSAPItoPALSocketOption(int option) { - int optionVal = PAL_SOCKET_OPTION_ERROR; - switch (option) - { - case PAL_SO_REUSEADDR: - optionVal = NSAPI_REUSEADDR; - break; + int optionVal = PAL_SOCKET_OPTION_ERROR; + switch (option) + { + case PAL_SO_REUSEADDR: + optionVal = NSAPI_REUSEADDR; + break; #if PAL_NET_TCP_AND_TLS_SUPPORT // socket options below supported only if TCP is supported. - case PAL_SO_KEEPALIVE: - optionVal = NSAPI_KEEPALIVE; - break; + case PAL_SO_KEEPALIVE: + optionVal = NSAPI_KEEPALIVE; + break; #endif //PAL_NET_TCP_AND_TLS_SUPPORT - case PAL_SO_SNDTIMEO: - case PAL_SO_RCVTIMEO: - default: - optionVal = PAL_SOCKET_OPTION_ERROR; - } - return optionVal; + case PAL_SO_SNDTIMEO: + case PAL_SO_RCVTIMEO: + default: + optionVal = PAL_SOCKET_OPTION_ERROR; + } + return optionVal; } static palStatus_t palSockAddrToSocketAddress(const palSocketAddress_t* palAddr, int length, SocketAddress& output) { - palStatus_t result = PAL_SUCCESS; - uint16_t port = 0; - nsapi_version_t version = NSAPI_IPv4; - - result = pal_getSockAddrPort(palAddr, &port); - if (result != PAL_SUCCESS) - { - return result; - } - output.set_port(port); - - if (PAL_AF_INET == palAddr->addressType) - { - palIpV4Addr_t ipV4Addr; - version = NSAPI_IPv4; - result = pal_getSockAddrIPV4Addr(palAddr, ipV4Addr); - if (result == PAL_SUCCESS) - { - output.set_ip_bytes(&ipV4Addr, version); - } - } - else if (PAL_AF_INET6 == palAddr->addressType) - { - palIpV6Addr_t ipV6Addr; - version = NSAPI_IPv6; - result = pal_getSockAddrIPV6Addr(palAddr, ipV6Addr); - if (result == PAL_SUCCESS) - { - output.set_ip_bytes(&ipV6Addr, version); - } - } - - return result; + palStatus_t result = PAL_SUCCESS; + uint16_t port = 0; + nsapi_version_t version = NSAPI_IPv4; + + result = pal_getSockAddrPort(palAddr, &port); + if (result != PAL_SUCCESS) + { + return result; + } + output.set_port(port); + + if (PAL_AF_INET == palAddr->addressType) + { + palIpV4Addr_t ipV4Addr; + version = NSAPI_IPv4; + result = pal_getSockAddrIPV4Addr(palAddr, ipV4Addr); + if (result == PAL_SUCCESS) + { + output.set_ip_bytes(&ipV4Addr, version); + } + } + else if (PAL_AF_INET6 == palAddr->addressType) + { + palIpV6Addr_t ipV6Addr; + version = NSAPI_IPv6; + result = pal_getSockAddrIPV6Addr(palAddr, ipV6Addr); + if (result == PAL_SUCCESS) + { + output.set_ip_bytes(&ipV6Addr, version); + } + } + + return result; } static palStatus_t socketAddressToPalSockAddr(SocketAddress& input, palSocketAddress_t* out, palSocketLength_t* length) { - palStatus_t result = PAL_SUCCESS; - int index = 0; - if (input.get_ip_version() == NSAPI_IPv4) - { - palIpV4Addr_t addr; - const void* tmp = input.get_ip_bytes(); - for (index = 0; index < PAL_IPV4_ADDRESS_SIZE; index++) - { - addr[index] = ((const uint8_t*)tmp)[index]; - } - result = pal_setSockAddrIPV4Addr(out, addr); - *length = PAL_IPV4_ADDRESS_SIZE; // TODO: check - - } - else if (input.get_ip_version() == NSAPI_IPv6) - { - palIpV6Addr_t addr; - const void* tmp = input.get_ip_bytes(); - for (index = 0; index < PAL_IPV6_ADDRESS_SIZE; index++) - { - addr[index] = ((const uint8_t*)tmp)[index]; - } - result = pal_setSockAddrIPV6Addr(out, addr); - *length = PAL_IPV6_ADDRESS_SIZE; // TODO: check - } - else - { - result = PAL_ERR_SOCKET_INVALID_ADDRESS_FAMILY; - } - - if (result == PAL_SUCCESS) - { - result = pal_setSockAddrPort(out, input.get_port()); - } - return result; + palStatus_t result = PAL_SUCCESS; + int index = 0; + if (input.get_ip_version() == NSAPI_IPv4) + { + palIpV4Addr_t addr; + const void* tmp = input.get_ip_bytes(); + for (index = 0; index < PAL_IPV4_ADDRESS_SIZE; index++) + { + addr[index] = ((const uint8_t*)tmp)[index]; + } + result = pal_setSockAddrIPV4Addr(out, addr); + *length = PAL_IPV4_ADDRESS_SIZE; // TODO: check + + } + else if (input.get_ip_version() == NSAPI_IPv6) + { + palIpV6Addr_t addr; + const void* tmp = input.get_ip_bytes(); + for (index = 0; index < PAL_IPV6_ADDRESS_SIZE; index++) + { + addr[index] = ((const uint8_t*)tmp)[index]; + } + result = pal_setSockAddrIPV6Addr(out, addr); + *length = PAL_IPV6_ADDRESS_SIZE; // TODO: check + } + else + { + result = PAL_ERR_SOCKET_INVALID_ADDRESS_FAMILY; + } + + if (result == PAL_SUCCESS) + { + result = pal_setSockAddrPort(out, input.get_port()); + } + return result; } @@ -250,235 +250,235 @@ static palStatus_t socketAddressToPalSockAddr(SocketAddress& input, palSocketAdd palStatus_t pal_plat_socket(palSocketDomain_t domain, palSocketType_t type, bool nonBlockingSocket, uint32_t interfaceNum, palSocket_t* socket) { - int result = PAL_SUCCESS; - Socket* socketObj = NULL; + int result = PAL_SUCCESS; + Socket* socketObj = NULL; - if (PAL_NET_DEFAULT_INTERFACE == interfaceNum) - { - interfaceNum = 0; - } + if (PAL_NET_DEFAULT_INTERFACE == interfaceNum) + { + interfaceNum = 0; + } - if ((s_pal_numberOFInterfaces > interfaceNum) && (PAL_SOCK_DGRAM == type) && ((PAL_AF_INET == domain) || (PAL_AF_INET6 == domain) || (PAL_AF_UNSPEC == domain))) - { - socketObj = new UDPSocket(s_pal_networkInterfacesSupported[interfaceNum]); - } + if ((s_pal_numberOFInterfaces > interfaceNum) && (PAL_SOCK_DGRAM == type) && ((PAL_AF_INET == domain) || (PAL_AF_INET6 == domain) || (PAL_AF_UNSPEC == domain))) + { + socketObj = new UDPSocket(s_pal_networkInterfacesSupported[interfaceNum]); + } #if PAL_NET_TCP_AND_TLS_SUPPORT // functionality below supported only in case TCP is supported. - else if ((s_pal_numberOFInterfaces > interfaceNum) && (PAL_SOCK_STREAM == type) && ((PAL_AF_INET == domain) || (PAL_AF_INET6 == domain) || (PAL_AF_UNSPEC == domain))) - { - socketObj = new TCPSocket(s_pal_networkInterfacesSupported[interfaceNum]); - } - else if ((s_pal_numberOFInterfaces > interfaceNum) && (PAL_SOCK_STREAM_SERVER == type) && ((PAL_AF_INET == domain) || (PAL_AF_INET6 == domain) || (PAL_AF_UNSPEC == domain))) - { - socketObj = new TCPServer(s_pal_networkInterfacesSupported[interfaceNum]); - } + else if ((s_pal_numberOFInterfaces > interfaceNum) && (PAL_SOCK_STREAM == type) && ((PAL_AF_INET == domain) || (PAL_AF_INET6 == domain) || (PAL_AF_UNSPEC == domain))) + { + socketObj = new TCPSocket(s_pal_networkInterfacesSupported[interfaceNum]); + } + else if ((s_pal_numberOFInterfaces > interfaceNum) && (PAL_SOCK_STREAM_SERVER == type) && ((PAL_AF_INET == domain) || (PAL_AF_INET6 == domain) || (PAL_AF_UNSPEC == domain))) + { + socketObj = new TCPServer(s_pal_networkInterfacesSupported[interfaceNum]); + } #endif - else - { - result = PAL_ERR_INVALID_ARGUMENT; - } - - if ((PAL_SUCCESS == result ) && (NULL == socketObj)) - { - result = PAL_ERR_NO_MEMORY; - } - - if (PAL_SUCCESS == result) - { - if (true == nonBlockingSocket) - { - socketObj->set_blocking(false); - } - else - { - socketObj->set_blocking(true); - } - *socket = (palSocket_t)socketObj; - } - return result; // TODO(nirson01) ADD debug print for error propagation(once debug print infrastructure is finalized) + else + { + result = PAL_ERR_INVALID_ARGUMENT; + } + + if ((PAL_SUCCESS == result ) && (NULL == socketObj)) + { + result = PAL_ERR_NO_MEMORY; + } + + if (PAL_SUCCESS == result) + { + if (true == nonBlockingSocket) + { + socketObj->set_blocking(false); + } + else + { + socketObj->set_blocking(true); + } + *socket = (palSocket_t)socketObj; + } + return result; // TODO(nirson01) ADD debug print for error propagation(once debug print infrastructure is finalized) } palStatus_t pal_plat_getSocketOptions(palSocket_t socket, palSocketOptionName_t optionName, void* optionValue, palSocketLength_t* optionLength) { - int result = PAL_SUCCESS; - unsigned int length = *optionLength; - Socket* socketObj = (Socket*)socket; - - int socketOption = translateNSAPItoPALSocketOption(optionName); - - if (PAL_SOCKET_OPTION_ERROR != socketOption) - { - result = socketObj->getsockopt(NSAPI_SOCKET, socketOption, optionValue, &length); - if (result < 0) - { - result = translateErrorToPALError(result); - } - else - { - *optionLength = length; - } - - } - else - { - // in MBED socket timeouts are write only via the API - not supported though socket options. - result = PAL_ERR_SOCKET_OPTION_NOT_SUPPORTED; - } - - return result; + int result = PAL_SUCCESS; + unsigned int length = *optionLength; + Socket* socketObj = (Socket*)socket; + + int socketOption = translateNSAPItoPALSocketOption(optionName); + + if (PAL_SOCKET_OPTION_ERROR != socketOption) + { + result = socketObj->getsockopt(NSAPI_SOCKET, socketOption, optionValue, &length); + if (result < 0) + { + result = translateErrorToPALError(result); + } + else + { + *optionLength = length; + } + + } + else + { + // in MBED socket timeouts are write only via the API - not supported though socket options. + result = PAL_ERR_SOCKET_OPTION_NOT_SUPPORTED; + } + + return result; } palStatus_t pal_plat_setSocketOptions(palSocket_t socket, int optionName, const void* optionValue, palSocketLength_t optionLength) { - int result = PAL_SUCCESS; - Socket* socketObj = (Socket*)socket; - int socketOption = PAL_SOCKET_OPTION_ERROR; - - socketOption = translateNSAPItoPALSocketOption(optionName); - if (PAL_SOCKET_OPTION_ERROR != socketOption) - { - result = socketObj->setsockopt(NSAPI_SOCKET, socketOption, optionValue, optionLength); - if (result < 0) - { - result = translateErrorToPALError(result); - } - } - else - { - if ((PAL_SO_SNDTIMEO == optionName) || (PAL_SO_RCVTIMEO == optionName)) // timeouts in MBED API are not managed though socket options, bun instead via a different funciton call - { - int timeout = *((int*)optionValue); - socketObj->set_timeout(timeout); - } - else - { - result = PAL_ERR_SOCKET_OPTION_NOT_SUPPORTED; - } - } - - - return result; + int result = PAL_SUCCESS; + Socket* socketObj = (Socket*)socket; + int socketOption = PAL_SOCKET_OPTION_ERROR; + + socketOption = translateNSAPItoPALSocketOption(optionName); + if (PAL_SOCKET_OPTION_ERROR != socketOption) + { + result = socketObj->setsockopt(NSAPI_SOCKET, socketOption, optionValue, optionLength); + if (result < 0) + { + result = translateErrorToPALError(result); + } + } + else + { + if ((PAL_SO_SNDTIMEO == optionName) || (PAL_SO_RCVTIMEO == optionName)) // timeouts in MBED API are not managed though socket options, bun instead via a different funciton call + { + int timeout = *((int*)optionValue); + socketObj->set_timeout(timeout); + } + else + { + result = PAL_ERR_SOCKET_OPTION_NOT_SUPPORTED; + } + } + + + return result; } palStatus_t pal_plat_bind(palSocket_t socket, palSocketAddress_t* myAddress, palSocketLength_t addressLength) { - int result = PAL_SUCCESS; - Socket* socketObj = (Socket*)socket; - SocketAddress internalAddr; + int result = PAL_SUCCESS; + Socket* socketObj = (Socket*)socket; + SocketAddress internalAddr; - result = palSockAddrToSocketAddress(myAddress, addressLength, internalAddr); - if (result == 0) - { - result = socketObj->bind(internalAddr); - if (result < 0) - { - result = translateErrorToPALError(result); - } - } + result = palSockAddrToSocketAddress(myAddress, addressLength, internalAddr); + if (result == 0) + { + result = socketObj->bind(internalAddr); + if (result < 0) + { + result = translateErrorToPALError(result); + } + } - return result; + return result; } palStatus_t pal_plat_receiveFrom(palSocket_t socket, void* buffer, size_t length, palSocketAddress_t* from, palSocketLength_t* fromLength, size_t* bytesReceived) { - int result = PAL_SUCCESS; - int status = 0; - *bytesReceived = 0; - SocketAddress sockAddr; - UDPSocket* socketObj; - - socketObj = (UDPSocket*)socket; - - status = socketObj->recvfrom(&sockAddr, buffer, length); - if (status < 0) - { - result = translateErrorToPALError(status); - } - else if (status == 0){ - result = PAL_ERR_SOCKET_CONNECTION_CLOSED; - } - else // only return address / bytesReceived in case of success - { - if ((NULL != from) && (NULL != fromLength)) - { - result = socketAddressToPalSockAddr(sockAddr, from, fromLength); - - } - *bytesReceived = status; - } - - return result; + int result = PAL_SUCCESS; + int status = 0; + *bytesReceived = 0; + SocketAddress sockAddr; + UDPSocket* socketObj; + + socketObj = (UDPSocket*)socket; + + status = socketObj->recvfrom(&sockAddr, buffer, length); + if (status < 0) + { + result = translateErrorToPALError(status); + } + else if (status == 0){ + result = PAL_ERR_SOCKET_CONNECTION_CLOSED; + } + else // only return address / bytesReceived in case of success + { + if ((NULL != from) && (NULL != fromLength)) + { + result = socketAddressToPalSockAddr(sockAddr, from, fromLength); + + } + *bytesReceived = status; + } + + return result; } palStatus_t pal_plat_sendTo(palSocket_t socket, const void* buffer, size_t length, const palSocketAddress_t* to, palSocketLength_t toLength, size_t* bytesSent) { - int result = PAL_SUCCESS; - int status = 0; - SocketAddress sockAddr; + int result = PAL_SUCCESS; + int status = 0; + SocketAddress sockAddr; - UDPSocket* socketObj = (UDPSocket*)socket; + UDPSocket* socketObj = (UDPSocket*)socket; - *bytesSent = 0; - result = palSockAddrToSocketAddress(to, toLength, sockAddr); - if (result == 0) - { - status = socketObj->sendto(sockAddr, buffer, length); - if (status < 0) - { - result = translateErrorToPALError(status); - } - else - { - *bytesSent = status; - } - } + *bytesSent = 0; + result = palSockAddrToSocketAddress(to, toLength, sockAddr); + if (result == 0) + { + status = socketObj->sendto(sockAddr, buffer, length); + if (status < 0) + { + result = translateErrorToPALError(status); + } + else + { + *bytesSent = status; + } + } - return result; + return result; } palStatus_t pal_plat_close(palSocket_t* socket) { - int result = PAL_SUCCESS; - Socket* socketObj = (Socket*)*socket; - result = socketObj->close(); - if (result < 0) - { - result = translateErrorToPALError(result); - } - delete socketObj; - *socket = NULL; - return result; + int result = PAL_SUCCESS; + Socket* socketObj = (Socket*)*socket; + result = socketObj->close(); + if (result < 0) + { + result = translateErrorToPALError(result); + } + delete socketObj; + *socket = NULL; + return result; } palStatus_t pal_plat_getNumberOfNetInterfaces( uint32_t* numInterfaces) { - *numInterfaces = s_pal_numberOFInterfaces; - return PAL_SUCCESS; + *numInterfaces = s_pal_numberOFInterfaces; + return PAL_SUCCESS; } palStatus_t pal_plat_getNetInterfaceInfo(uint32_t interfaceNum, palNetInterfaceInfo_t * interfaceInfo) { - palStatus_t result = PAL_SUCCESS; - const char* address = NULL; - SocketAddress addr; - if ((interfaceNum >= s_pal_numberOFInterfaces) || (NULL == interfaceInfo)) - { - return PAL_ERR_INVALID_ARGUMENT; - } - address = s_pal_networkInterfacesSupported[interfaceNum]->get_ip_address(); // ip address returned is a null terminated string - if (NULL != address) - { - addr.set_ip_address(address); - result = socketAddressToPalSockAddr(addr, &interfaceInfo->address, &interfaceInfo->addressSize); - } - + palStatus_t result = PAL_SUCCESS; + const char* address = NULL; + SocketAddress addr; + if ((interfaceNum >= s_pal_numberOFInterfaces) || (NULL == interfaceInfo)) + { + return PAL_ERR_INVALID_ARGUMENT; + } + address = s_pal_networkInterfacesSupported[interfaceNum]->get_ip_address(); // ip address returned is a null terminated string + if (NULL != address) + { + addr.set_ip_address(address); + result = socketAddressToPalSockAddr(addr, &interfaceInfo->address, &interfaceInfo->addressSize); + } + - return result; + return result; } typedef void(*palSelectCallbackFunction_t)(); @@ -496,124 +496,124 @@ void palSelectCallback0() } void palSelectCallback1() { - s_select_event_happened[1]++; - pal_osSemaphoreRelease(s_palSelectSemaphore); + s_select_event_happened[1]++; + pal_osSemaphoreRelease(s_palSelectSemaphore); } void palSelectCallback2() { - s_select_event_happened[2]++; - pal_osSemaphoreRelease(s_palSelectSemaphore); + s_select_event_happened[2]++; + pal_osSemaphoreRelease(s_palSelectSemaphore); } void palSelectCallback3() { - s_select_event_happened[3]++; - pal_osSemaphoreRelease(s_palSelectSemaphore); + s_select_event_happened[3]++; + pal_osSemaphoreRelease(s_palSelectSemaphore); } void palSelectCallback4() { - s_select_event_happened[4]++; - pal_osSemaphoreRelease(s_palSelectSemaphore); + s_select_event_happened[4]++; + pal_osSemaphoreRelease(s_palSelectSemaphore); } void palSelectCallback5() { - s_select_event_happened[5]++; - pal_osSemaphoreRelease(s_palSelectSemaphore); + s_select_event_happened[5]++; + pal_osSemaphoreRelease(s_palSelectSemaphore); } void palSelectCallback6() { - s_select_event_happened[6]++; - pal_osSemaphoreRelease(s_palSelectSemaphore); + s_select_event_happened[6]++; + pal_osSemaphoreRelease(s_palSelectSemaphore); } void palSelectCallback7() { - s_select_event_happened[7]++; - pal_osSemaphoreRelease(s_palSelectSemaphore); + s_select_event_happened[7]++; + pal_osSemaphoreRelease(s_palSelectSemaphore); } palSelectCallbackFunction_t s_palSelectPalCallbackFunctions[PAL_NET_SOCKET_SELECT_MAX_SOCKETS] = { palSelectCallback0, palSelectCallback1, palSelectCallback2, palSelectCallback3, palSelectCallback4, palSelectCallback5, palSelectCallback6, palSelectCallback7 }; palStatus_t pal_plat_socketMiniSelect(const palSocket_t socketsToCheck[PAL_NET_SOCKET_SELECT_MAX_SOCKETS], uint32_t numberOfSockets, pal_timeVal_t* timeout, - uint8_t palSocketStatus[PAL_NET_SOCKET_SELECT_MAX_SOCKETS], uint32_t * numberOfSocketsSet) -{ - uint32_t index = 0; - int32_t counter = 0; - uint32_t timeoutInMiliseconds = 0; - palStatus_t result = PAL_SUCCESS; - - if ((NULL == socketsToCheck) || (NULL == numberOfSocketsSet) || (NULL == timeout)) - { - return PAL_ERR_INVALID_ARGUMENT; - } - - timeoutInMiliseconds = (timeout->pal_tv_sec * 1000) + (timeout->pal_tv_usec /1000); - *numberOfSocketsSet = 0; - - if (0 == numberOfSockets) - { - return PAL_SUCCESS; - } - // create semaphore if not initialized before - if it exists ensure count is 0. - - if (false == s_palSelectSemaphoreInited) - { - result = pal_osSemaphoreCreate(0, &s_palSelectSemaphore); // create semaphore to wait until socket event happens (semaphore will be re-used and is only created once, and never freed - if terminate is added free this resoruce if allocaed) - if (PAL_SUCCESS != result) - { - return result; //single exit ?? - } - s_palSelectSemaphoreInited = true; - } - else { - int32_t counters = 0; - result = pal_osSemaphoreWait(s_palSelectSemaphore, 1, &counters); // deplete semaphore count until it is 0. - while (result != PAL_ERR_RTOS_TIMEOUT) - { - result = pal_osSemaphoreWait(s_palSelectSemaphore, 1, &counters); - } - if (PAL_ERR_RTOS_TIMEOUT != result ) // make sure count is actually 0 - { - return result; //single exit ?? - } - - } - for (uint32_t index = 0; index < numberOfSockets; index++) - { - s_select_event_happened[index] = 0; - palSocketStatus[index] = 0; - } - - for (index = 0; index < numberOfSockets; index++) - { - Socket* socketObj = (Socket*)socketsToCheck[index]; - socketObj->attach(s_palSelectPalCallbackFunctions[index]); - } - - result = pal_osSemaphoreWait(s_palSelectSemaphore, timeoutInMiliseconds, &counter); - if (result == PAL_SUCCESS) - { - for (index = 0; index < numberOfSockets; index++) - { - if (s_select_event_happened[index] > 0) - { - palSocketStatus[index] |= PAL_NET_SOCKET_SELECT_RX_BIT | PAL_NET_SOCKET_SELECT_TX_BIT | PAL_NET_SOCKET_SELECT_ERR_BIT; - *numberOfSocketsSet = *numberOfSocketsSet +1; - } - } - } - if (result == PAL_ERR_RTOS_TIMEOUT) // to socket callback has been called to free the semaphore -> no socket events happenet untill the timout. - { - *numberOfSocketsSet = 0; // TODO: add debug prints - result = PAL_SUCCESS; // timeout is not actually an error in this case - } - - for (index = 0; index < numberOfSockets; index++) - { - - Socket* socketObj = (Socket*)socketsToCheck[index]; - socketObj->attach(NULL_FUNCTION); - } - return result ; + uint8_t palSocketStatus[PAL_NET_SOCKET_SELECT_MAX_SOCKETS], uint32_t * numberOfSocketsSet) +{ + uint32_t index = 0; + int32_t counter = 0; + uint32_t timeoutInMiliseconds = 0; + palStatus_t result = PAL_SUCCESS; + + if ((NULL == socketsToCheck) || (NULL == numberOfSocketsSet) || (NULL == timeout)) + { + return PAL_ERR_INVALID_ARGUMENT; + } + + timeoutInMiliseconds = (timeout->pal_tv_sec * 1000) + (timeout->pal_tv_usec /1000); + *numberOfSocketsSet = 0; + + if (0 == numberOfSockets) + { + return PAL_SUCCESS; + } + // create semaphore if not initialized before - if it exists ensure count is 0. + + if (false == s_palSelectSemaphoreInited) + { + result = pal_osSemaphoreCreate(0, &s_palSelectSemaphore); // create semaphore to wait until socket event happens (semaphore will be re-used and is only created once, and never freed - if terminate is added free this resoruce if allocaed) + if (PAL_SUCCESS != result) + { + return result; //single exit ?? + } + s_palSelectSemaphoreInited = true; + } + else { + int32_t counters = 0; + result = pal_osSemaphoreWait(s_palSelectSemaphore, 1, &counters); // deplete semaphore count until it is 0. + while (result != PAL_ERR_RTOS_TIMEOUT) + { + result = pal_osSemaphoreWait(s_palSelectSemaphore, 1, &counters); + } + if (PAL_ERR_RTOS_TIMEOUT != result ) // make sure count is actually 0 + { + return result; //single exit ?? + } + + } + for (uint32_t index = 0; index < numberOfSockets; index++) + { + s_select_event_happened[index] = 0; + palSocketStatus[index] = 0; + } + + for (index = 0; index < numberOfSockets; index++) + { + Socket* socketObj = (Socket*)socketsToCheck[index]; + socketObj->attach(s_palSelectPalCallbackFunctions[index]); + } + + result = pal_osSemaphoreWait(s_palSelectSemaphore, timeoutInMiliseconds, &counter); + if (result == PAL_SUCCESS) + { + for (index = 0; index < numberOfSockets; index++) + { + if (s_select_event_happened[index] > 0) + { + palSocketStatus[index] |= PAL_NET_SOCKET_SELECT_RX_BIT | PAL_NET_SOCKET_SELECT_TX_BIT | PAL_NET_SOCKET_SELECT_ERR_BIT; + *numberOfSocketsSet = *numberOfSocketsSet +1; + } + } + } + if (result == PAL_ERR_RTOS_TIMEOUT) // to socket callback has been called to free the semaphore -> no socket events happenet untill the timout. + { + *numberOfSocketsSet = 0; // TODO: add debug prints + result = PAL_SUCCESS; // timeout is not actually an error in this case + } + + for (index = 0; index < numberOfSockets; index++) + { + + Socket* socketObj = (Socket*)socketsToCheck[index]; + socketObj->attach(NULL_FUNCTION); + } + return result ; } #if PAL_NET_TCP_AND_TLS_SUPPORT // functionality below supported only in case TCP is supported. @@ -621,106 +621,96 @@ palStatus_t pal_plat_socketMiniSelect(const palSocket_t socketsToCheck[PAL_NET_S palStatus_t pal_plat_listen(palSocket_t socket, int backlog) { - int result = PAL_SUCCESS; + int result = PAL_SUCCESS; - TCPServer* socketObj = (TCPServer*)socket; + TCPServer* socketObj = (TCPServer*)socket; - result = socketObj->listen(backlog); - if (result < 0) - { - return translateErrorToPALError(result); - } - return PAL_SUCCESS; + result = socketObj->listen(backlog); + if (result < 0) + { + return translateErrorToPALError(result); + } + return PAL_SUCCESS; } palStatus_t pal_plat_accept(palSocket_t socket, palSocketAddress_t * address, palSocketLength_t* addressLen, palSocket_t* acceptedSocket) { - int result = PAL_SUCCESS; - -#ifdef MBED_OS_SUPPORTS_ACCEPT_RETURNING_ADDRESS - SocketAddress incomingAddr; - - TCPServer* socketObj = (TCPServer*)socket; - result = socketObj->accept((TCPSocket*)(*acceptedSocket), &incomingAddr); - if (result < 0) - { - result = translateErrorToPALError(result); - } - else - { - result = socketAddressToPalSockAddr(incomingAddr, address, addressLen); - } -#else - - TCPServer* socketObj = (TCPServer*)socket; - result = socketObj->accept((TCPSocket*)(*acceptedSocket)); - if (result < 0) - { - result = translateErrorToPALError(result); - } -#endif - return result; + int result = PAL_SUCCESS; + + SocketAddress incomingAddr; + + TCPServer* socketObj = (TCPServer*)socket; + result = socketObj->accept((TCPSocket*)(*acceptedSocket), &incomingAddr); + if (result < 0) + { + result = translateErrorToPALError(result); + } + else + { + result = socketAddressToPalSockAddr(incomingAddr, address, addressLen); + } + return result; } palStatus_t pal_plat_connect(palSocket_t socket, const palSocketAddress_t* address, palSocketLength_t addressLen) { - int result = PAL_SUCCESS; - SocketAddress internalAddr; - TCPSocket* socketObj = (TCPSocket*)socket; - - result = palSockAddrToSocketAddress(address, addressLen, internalAddr); - if (result == PAL_SUCCESS) - { - result = socketObj->connect(internalAddr); - if (result < 0) - { - result = translateErrorToPALError(result); - } - } + int result = PAL_SUCCESS; + SocketAddress internalAddr; + TCPSocket* socketObj = (TCPSocket*)socket; + + result = palSockAddrToSocketAddress(address, addressLen, internalAddr); + if (result == PAL_SUCCESS) + { + result = socketObj->connect(internalAddr); + if (result < 0) + { + result = translateErrorToPALError(result); + } + } - return result; + return result; } palStatus_t pal_plat_recv(palSocket_t socket, void *buf, size_t len, size_t* recievedDataSize) { - int result = PAL_SUCCESS; - int status = 0; + int result = PAL_SUCCESS; + int status = 0; - TCPSocket* socketObj = (TCPSocket*)socket; + TCPSocket* socketObj = (TCPSocket*)socket; - status = socketObj->recv(buf, len); - if (status < 0) - { - result = translateErrorToPALError(status); - } - else if (status == 0){ - return PAL_ERR_SOCKET_CONNECTION_CLOSED; - } - *recievedDataSize = status; - return result; + status = socketObj->recv(buf, len); + if (status < 0) + { + result = translateErrorToPALError(status); + } + else if (status == 0){ + return PAL_ERR_SOCKET_CONNECTION_CLOSED; + } + *recievedDataSize = status; + return result; } palStatus_t pal_plat_send(palSocket_t socket, const void *buf, size_t len, size_t* sentDataSize) { - palStatus_t result = PAL_SUCCESS; - int status = 0; + palStatus_t result = PAL_SUCCESS; + int status = 0; - TCPSocket* socketObj = (TCPSocket*)socket; - - status = socketObj->send(buf, len); - if (status < 0) - { - result = translateErrorToPALError(status); - } - else - { - *sentDataSize = status; - } - return result; + TCPSocket* socketObj = (TCPSocket*)socket; + + status = socketObj->send(buf, len); + if (status < 0) + { + result = translateErrorToPALError(status); + } + else + { + *sentDataSize = status; + } + return result; } #endif //PAL_NET_TCP_AND_TLS_SUPPORT @@ -731,15 +721,15 @@ palStatus_t pal_plat_send(palSocket_t socket, const void *buf, size_t len, size_ palStatus_t pal_plat_asynchronousSocket(palSocketDomain_t domain, palSocketType_t type, bool nonBlockingSocket, uint32_t interfaceNum, palAsyncSocketCallback_t callback, palSocket_t* socket) { - Socket* socketObj = NULL; - palStatus_t result = pal_plat_socket(domain, type, nonBlockingSocket, interfaceNum, socket); - if (result == PAL_SUCCESS) - { - socketObj = (Socket*)*socket; - socketObj->attach(callback); - } + Socket* socketObj = NULL; + palStatus_t result = pal_plat_socket(domain, type, nonBlockingSocket, interfaceNum, socket); + if (result == PAL_SUCCESS) + { + socketObj = (Socket*)*socket; + socketObj->attach(callback); + } - return result; + return result; } @@ -749,13 +739,19 @@ palStatus_t pal_plat_asynchronousSocket(palSocketDomain_t domain, palSocketType_ palStatus_t pal_plat_getAddressInfo(const char *url, palSocketAddress_t *address, palSocketLength_t* length) { - palStatus_t result = PAL_SUCCESS; - - SocketAddress translatedAddress(s_pal_networkInterfacesSupported[0], url); // by default use the fist supported net interface - TODO: do we need to select a different interface? - - result = socketAddressToPalSockAddr(translatedAddress, address, length); - - return result; + palStatus_t result = PAL_SUCCESS; + + SocketAddress translatedAddress; // by default use the fist supported net interface - TODO: do we need to select a different interface? + result = s_pal_networkInterfacesSupported[0]->gethostbyname(url, &translatedAddress); + if (result == 0) + { + result = socketAddressToPalSockAddr(translatedAddress, address, length); + } + else // error happened + { + result = translateErrorToPALError(result); + } + return result; } #endif diff --git a/Source/Port/Reference-Impl/mbedOS/RTOS/pal_plat_rtos.c b/Source/Port/Reference-Impl/mbedOS/RTOS/pal_plat_rtos.c index 1e46e35..d09e299 100644 --- a/Source/Port/Reference-Impl/mbedOS/RTOS/pal_plat_rtos.c +++ b/Source/Port/Reference-Impl/mbedOS/RTOS/pal_plat_rtos.c @@ -46,15 +46,15 @@ void NVIC_SystemReset(void); #include "critical.h" #define PAL_RTOS_TRANSLATE_CMSIS_ERROR_CODE(cmsisCode)\ - ((int32_t)(cmsisCode + PAL_ERR_RTOS_ERROR_BASE)) + ((int32_t)(cmsisCode + PAL_ERR_RTOS_ERROR_BASE)) //! the size of the memory to allocate was taken from CMSIS header (cmsis_os.h) #define PAL_RTOS_MEMORY_POOL_SIZE(blockSize, blockCount)\ - (sizeof(uint32_t)*(3+((blockSize+3)/4)*(blockCount))) + (sizeof(uint32_t)*(3+((blockSize+3)/4)*(blockCount))) //! the size of the memory to allocate was taken from CMSIS header (cmsis_os.h) #define PAL_RTOS_MESSAGE_Q_SIZE(messageQSize)\ - (sizeof(uint32_t)*(4 + messageQSize)) + (sizeof(uint32_t)*(4 + messageQSize)) #ifdef PAL_RTOS_WAIT_FOREVER @@ -71,905 +71,905 @@ void NVIC_SystemReset(void); #define PAL_TICK_TO_MILLI_FACTOR 1000 typedef struct palThreadFuncWrapper{ - palTimerFuncPtr realThreadFunc; - void* realThreadArgs; - uint32_t threadIndex; + palTimerFuncPtr realThreadFunc; + void* realThreadArgs; + uint32_t threadIndex; }palThreadFuncWrapper_t; //! Thread structure typedef struct palThread{ - palThreadID_t threadID; - bool initialized; - palThreadLocalStore_t* threadStore; //! please see pal_rtos.h for documentation - palThreadFuncWrapper_t threadFuncWrapper; - osThreadDef_t osThread; + palThreadID_t threadID; + bool initialized; + palThreadLocalStore_t* threadStore; //! please see pal_rtos.h for documentation + palThreadFuncWrapper_t threadFuncWrapper; + osThreadDef_t osThread; } palThread_t; static palThread_t g_palThreads[PAL_MAX_NUMBER_OF_THREADS] = {0}; //! Timer structure typedef struct palTimer{ - palTimerID_t timerID; - uint32_t internalTimerData[PAL_TIMER_DATA_SIZE]; ///< pointer to internal data - osTimerDef_t osTimer; + palTimerID_t timerID; + uint32_t internalTimerData[PAL_TIMER_DATA_SIZE]; ///< pointer to internal data + osTimerDef_t osTimer; } palTimer_t; //! Mutex structure typedef struct palMutex{ - palMutexID_t mutexID; - uint32_t internalMutexData[PAL_MUTEX_DATA_SIZE]; - osMutexDef_t osMutex; + palMutexID_t mutexID; + uint32_t internalMutexData[PAL_MUTEX_DATA_SIZE]; + osMutexDef_t osMutex; }palMutex_t; //! Semaphore structure typedef struct palSemaphore{ - palSemaphoreID_t semaphoreID; - uint32_t internalSemaphoreData[PAL_SEMAPHORE_DATA_SIZE]; - osSemaphoreDef_t osSemaphore; + palSemaphoreID_t semaphoreID; + uint32_t internalSemaphoreData[PAL_SEMAPHORE_DATA_SIZE]; + osSemaphoreDef_t osSemaphore; }palSemaphore_t; //! Memoey Pool structure typedef struct palMemPool{ - palMemoryPoolID_t memoryPoolID; - osPoolDef_t osPool; + palMemoryPoolID_t memoryPoolID; + osPoolDef_t osPool; }palMemoryPool_t; //! Message Queue structure typedef struct palMessageQ{ - palMessageQID_t messageQID; - osMessageQDef_t osMessageQ; + palMessageQID_t messageQID; + osMessageQDef_t osMessageQ; }palMessageQ_t; inline static void setDefaultThreadValues(palThread_t* thread) { -#if PAL_UNIQUE_THREAD_PRIORITY - g_palThreadPriorities[thread->osThread.tpriority+PRIORYT_INDEX_OFFSET] = false; -#endif //PAL_UNIQUE_THREAD_PRIORITY - thread->threadStore = NULL; - thread->threadFuncWrapper.realThreadArgs = NULL; - thread->threadFuncWrapper.realThreadFunc = NULL; - thread->threadFuncWrapper.threadIndex = 0; - thread->osThread.pthread = NULL; - thread->osThread.tpriority = PAL_osPriorityError; - thread->osThread.instances = PAL_NUM_OF_THREAD_INSTANCES; - thread->osThread.stacksize = 0; - thread->osThread.stack_pointer = NULL; - //! This line should be last thing to be done in this function. - //! in order to prevent double accessing the same index between - //! this function and the threadCreate function. - thread->initialized = false; +#if PAL_UNIQUE_THREAD_PRIORITY + g_palThreadPriorities[thread->osThread.tpriority+PRIORYT_INDEX_OFFSET] = false; +#endif //PAL_UNIQUE_THREAD_PRIORITY + thread->threadStore = NULL; + thread->threadFuncWrapper.realThreadArgs = NULL; + thread->threadFuncWrapper.realThreadFunc = NULL; + thread->threadFuncWrapper.threadIndex = 0; + thread->osThread.pthread = NULL; + thread->osThread.tpriority = PAL_osPriorityError; + thread->osThread.instances = PAL_NUM_OF_THREAD_INSTANCES; + thread->osThread.stacksize = 0; + thread->osThread.stack_pointer = NULL; + //! This line should be last thing to be done in this function. + //! in order to prevent double accessing the same index between + //! this function and the threadCreate function. + thread->initialized = false; } /*! Clean thread data from the global thread data base (g_palThreads). Thread Safe API * * @param[in] dbPointer: data base pointer. -* @param[in] index: the index in the data base to be cleaned. +* @param[in] index: the index in the data base to be cleaned. */ static void threadCleanUp(void* dbPointer, uint32_t index) { - palThread_t* threadsDB = (palThread_t*)dbPointer; + palThread_t* threadsDB = (palThread_t*)dbPointer; - if (NULL == dbPointer || index >= PAL_MAX_NUMBER_OF_THREADS) - { - return; - } + if (NULL == dbPointer || index >= PAL_MAX_NUMBER_OF_THREADS) + { + return; + } - setDefaultThreadValues(&threadsDB[index]); + setDefaultThreadValues(&threadsDB[index]); } /*! Thread wrapper function, this function will be set as the thread function (for every thread) -* and it will get as an argument the real data about the thread and call the REAL thread function -* with the REAL argument. Once the REAL thread function finished, \ref pal_threadClean() will be called. +* and it will get as an argument the real data about the thread and call the REAL thread function +* with the REAL argument. Once the REAL thread function finished, \ref pal_threadClean() will be called. * -* @param[in] arg: data structure which contains the real data about the thread. +* @param[in] arg: data structure which contains the real data about the thread. */ static void threadFunctionWrapper(void const* arg) { - palThreadFuncWrapper_t* threadWrapper = (palThreadFuncWrapper_t*)arg; - if (NULL != threadWrapper) - { - threadWrapper->realThreadFunc(threadWrapper->realThreadArgs); - //! real thread finished to run, now start the cleanup from the data base. - threadCleanUp(g_palThreads, threadWrapper->threadIndex); - } + palThreadFuncWrapper_t* threadWrapper = (palThreadFuncWrapper_t*)arg; + if (NULL != threadWrapper) + { + threadWrapper->realThreadFunc(threadWrapper->realThreadArgs); + //! real thread finished to run, now start the cleanup from the data base. + threadCleanUp(g_palThreads, threadWrapper->threadIndex); + } } void pal_plat_osReboot() { - NVIC_SystemReset(); + NVIC_SystemReset(); } palStatus_t pal_plat_RTOSInitialize(void* opaqueContext) { - palStatus_t status = PAL_SUCCESS; - static bool palRTOSInitialized = false; - if (palRTOSInitialized) - { - return PAL_SUCCESS; - } - for (int i = 0; i < PAL_MAX_NUMBER_OF_THREADS; ++i) - { - g_palThreads[i].initialized = false; - } + palStatus_t status = PAL_SUCCESS; + static bool palRTOSInitialized = false; + if (palRTOSInitialized) + { + return PAL_SUCCESS; + } + for (int i = 0; i < PAL_MAX_NUMBER_OF_THREADS; ++i) + { + g_palThreads[i].initialized = false; + } - if (PAL_SUCCESS == status) - { - palRTOSInitialized = true; - } - return status; + if (PAL_SUCCESS == status) + { + palRTOSInitialized = true; + } + return status; } void pal_plat_RTOSDestroy(void) { - for (int i = 0; i < PAL_MAX_NUMBER_OF_THREADS; ++i) - { - if (true == g_palThreads[i].initialized) - { - osThreadTerminate((osThreadId)g_palThreads[i].threadID); - threadCleanUp(g_palThreads, i); - } - } - return; + for (int i = 0; i < PAL_MAX_NUMBER_OF_THREADS; ++i) + { + if (true == g_palThreads[i].initialized) + { + osThreadTerminate((osThreadId)g_palThreads[i].threadID); + threadCleanUp(g_palThreads, i); + } + } + return; } palStatus_t pal_plat_osDelay(uint32_t milliseconds) { - palStatus_t status; - osStatus platStatus = osDelay(milliseconds); - if (osEventTimeout == platStatus) - { - status = PAL_SUCCESS; - } - else - { - status = PAL_RTOS_TRANSLATE_CMSIS_ERROR_CODE(platStatus); //TODO(nirson01): error propagation MACRO?? - } - return status; + palStatus_t status; + osStatus platStatus = osDelay(milliseconds); + if (osEventTimeout == platStatus) + { + status = PAL_SUCCESS; + } + else + { + status = PAL_RTOS_TRANSLATE_CMSIS_ERROR_CODE(platStatus); //TODO(nirson01): error propagation MACRO?? + } + return status; } uint32_t pal_plat_osKernelSysTick() { - uint32_t result; - result = osKernelSysTick(); - return result; + uint32_t result; + result = osKernelSysTick(); + return result; } uint64_t pal_plat_osKernelSysTickMicroSec(uint64_t microseconds) { - uint64_t result; - result = osKernelSysTickMicroSec(microseconds); - return result; + uint64_t result; + result = osKernelSysTickMicroSec(microseconds); + return result; } uint64_t pal_plat_osKernelSysMilliSecTick(uint64_t sysTicks) { - uint64_t millisec = (PAL_TICK_TO_MILLI_FACTOR * sysTicks)/osKernelSysTickFrequency; - return millisec; + uint64_t millisec = (PAL_TICK_TO_MILLI_FACTOR * sysTicks)/osKernelSysTickFrequency; + return millisec; } uint64_t pal_plat_osKernelSysTickFrequency() { - return osKernelSysTickFrequency; + return osKernelSysTickFrequency; } palStatus_t pal_plat_osThreadCreate(palThreadFuncPtr function, void* funcArgument, palThreadPriority_t priority, uint32_t stackSize, uint32_t* stackPtr, palThreadLocalStore_t* store, palThreadID_t* threadID) { - palStatus_t status = PAL_SUCCESS; - uint32_t firstAvailableThreadIndex = PAL_MAX_NUMBER_OF_THREADS; - uint32_t i; - - if (NULL == threadID || NULL == function || NULL == stackPtr || 0 == stackSize || priority > PAL_osPriorityRealtime) - { - return PAL_ERR_INVALID_ARGUMENT; - } - - for (i = 0; i < PAL_MAX_NUMBER_OF_THREADS; ++i) - { - if (!g_palThreads[i].initialized) - { - firstAvailableThreadIndex = i; - break; - } - } - - if (firstAvailableThreadIndex >= PAL_MAX_NUMBER_OF_THREADS) - { - status = PAL_ERR_RTOS_RESOURCE; - } - - if (PAL_SUCCESS == status) - { - g_palThreads[firstAvailableThreadIndex].threadStore = store; - g_palThreads[firstAvailableThreadIndex].threadFuncWrapper.realThreadArgs = funcArgument; - g_palThreads[firstAvailableThreadIndex].threadFuncWrapper.realThreadFunc = function; - g_palThreads[firstAvailableThreadIndex].threadFuncWrapper.threadIndex = firstAvailableThreadIndex; - g_palThreads[firstAvailableThreadIndex].osThread.pthread = threadFunctionWrapper; - g_palThreads[firstAvailableThreadIndex].osThread.tpriority = priority; - g_palThreads[firstAvailableThreadIndex].osThread.instances = PAL_NUM_OF_THREAD_INSTANCES; - g_palThreads[firstAvailableThreadIndex].osThread.stacksize = stackSize; - g_palThreads[firstAvailableThreadIndex].osThread.stack_pointer = stackPtr; - g_palThreads[firstAvailableThreadIndex].initialized = true; -#if PAL_UNIQUE_THREAD_PRIORITY - g_palThreadPriorities[priority+PRIORYT_INDEX_OFFSET] = true; -#endif //PAL_UNIQUE_THREAD_PRIORITY - - status = PAL_SUCCESS; - - g_palThreads[firstAvailableThreadIndex].threadID = (uintptr_t)osThreadCreate(&g_palThreads[firstAvailableThreadIndex].osThread, &g_palThreads[firstAvailableThreadIndex].threadFuncWrapper); - *threadID = g_palThreads[firstAvailableThreadIndex].threadID; - - if(NULLPTR == *threadID) - { - //! in case of error in the thread creation, reset the data of the given index in the threads array. - threadCleanUp(g_palThreads, firstAvailableThreadIndex); - - status = PAL_ERR_GENERIC_FAILURE; - } - } - return status; + palStatus_t status = PAL_SUCCESS; + uint32_t firstAvailableThreadIndex = PAL_MAX_NUMBER_OF_THREADS; + uint32_t i; + + if (NULL == threadID || NULL == function || NULL == stackPtr || 0 == stackSize || priority > PAL_osPriorityRealtime) + { + return PAL_ERR_INVALID_ARGUMENT; + } + + for (i = 0; i < PAL_MAX_NUMBER_OF_THREADS; ++i) + { + if (!g_palThreads[i].initialized) + { + firstAvailableThreadIndex = i; + break; + } + } + + if (firstAvailableThreadIndex >= PAL_MAX_NUMBER_OF_THREADS) + { + status = PAL_ERR_RTOS_RESOURCE; + } + + if (PAL_SUCCESS == status) + { + g_palThreads[firstAvailableThreadIndex].threadStore = store; + g_palThreads[firstAvailableThreadIndex].threadFuncWrapper.realThreadArgs = funcArgument; + g_palThreads[firstAvailableThreadIndex].threadFuncWrapper.realThreadFunc = function; + g_palThreads[firstAvailableThreadIndex].threadFuncWrapper.threadIndex = firstAvailableThreadIndex; + g_palThreads[firstAvailableThreadIndex].osThread.pthread = threadFunctionWrapper; + g_palThreads[firstAvailableThreadIndex].osThread.tpriority = priority; + g_palThreads[firstAvailableThreadIndex].osThread.instances = PAL_NUM_OF_THREAD_INSTANCES; + g_palThreads[firstAvailableThreadIndex].osThread.stacksize = stackSize; + g_palThreads[firstAvailableThreadIndex].osThread.stack_pointer = stackPtr; + g_palThreads[firstAvailableThreadIndex].initialized = true; +#if PAL_UNIQUE_THREAD_PRIORITY + g_palThreadPriorities[priority+PRIORYT_INDEX_OFFSET] = true; +#endif //PAL_UNIQUE_THREAD_PRIORITY + + status = PAL_SUCCESS; + + g_palThreads[firstAvailableThreadIndex].threadID = (uintptr_t)osThreadCreate(&g_palThreads[firstAvailableThreadIndex].osThread, &g_palThreads[firstAvailableThreadIndex].threadFuncWrapper); + *threadID = g_palThreads[firstAvailableThreadIndex].threadID; + + if(NULLPTR == *threadID) + { + //! in case of error in the thread creation, reset the data of the given index in the threads array. + threadCleanUp(g_palThreads, firstAvailableThreadIndex); + + status = PAL_ERR_GENERIC_FAILURE; + } + } + return status; } palThreadID_t pal_plat_osThreadGetId() { - palThreadID_t result; - result = (uintptr_t)osThreadGetId(); - return result; + palThreadID_t result; + result = (uintptr_t)osThreadGetId(); + return result; } palStatus_t pal_plat_osThreadTerminate(palThreadID_t* threadID) { - palStatus_t status = PAL_SUCCESS; - osStatus platStatus = osOK; - - if (NULL == threadID || NULLPTR == *threadID) - { - return PAL_ERR_INVALID_ARGUMENT; - } - - for (int i = 0; i < PAL_MAX_NUMBER_OF_THREADS; ++i) - { - if (g_palThreads[i].initialized && (*threadID == g_palThreads[i].threadID)) - { - platStatus = osThreadTerminate((osThreadId)(*threadID)); - if (osOK == platStatus) - { - threadCleanUp(g_palThreads, i); - *threadID = NULLPTR; - } - else - { - status = PAL_RTOS_TRANSLATE_CMSIS_ERROR_CODE(platStatus); - } - break; - - } - else if (!g_palThreads[i].initialized && (*threadID == g_palThreads[i].threadID)) - { - *threadID = NULLPTR; - } - } - return status; + palStatus_t status = PAL_SUCCESS; + osStatus platStatus = osOK; + + if (NULL == threadID || NULLPTR == *threadID) + { + return PAL_ERR_INVALID_ARGUMENT; + } + + for (int i = 0; i < PAL_MAX_NUMBER_OF_THREADS; ++i) + { + if (g_palThreads[i].initialized && (*threadID == g_palThreads[i].threadID)) + { + platStatus = osThreadTerminate((osThreadId)(*threadID)); + if (osOK == platStatus) + { + threadCleanUp(g_palThreads, i); + *threadID = NULLPTR; + } + else + { + status = PAL_RTOS_TRANSLATE_CMSIS_ERROR_CODE(platStatus); + } + break; + + } + else if (!g_palThreads[i].initialized && (*threadID == g_palThreads[i].threadID)) + { + *threadID = NULLPTR; + } + } + return status; } void* pal_plat_osThreadGetLocalStore() { - void* localStore = NULL; - palThreadID_t id = (uintptr_t)osThreadGetId(); + void* localStore = NULL; + palThreadID_t id = (uintptr_t)osThreadGetId(); - for(int i = 0; i < PAL_MAX_NUMBER_OF_THREADS; ++i) - { - if(g_palThreads[i].initialized && (id == g_palThreads[i].threadID)) - { - localStore = g_palThreads[i].threadStore; - break; - } - } - return localStore; + for(int i = 0; i < PAL_MAX_NUMBER_OF_THREADS; ++i) + { + if(g_palThreads[i].initialized && (id == g_palThreads[i].threadID)) + { + localStore = g_palThreads[i].threadStore; + break; + } + } + return localStore; } palStatus_t pal_plat_osTimerCreate(palTimerFuncPtr function, void* funcArgument, palTimerType_t timerType, palTimerID_t* timerID) { - palStatus_t status = PAL_SUCCESS; - palTimer_t* timer = NULL; - - if(NULL == timerID || NULL == function) - { - return PAL_ERR_INVALID_ARGUMENT; - } - - timer = (palTimer_t*)malloc(sizeof(palTimer_t)); - if (NULL == timer) - { - status = PAL_ERR_NO_MEMORY; - } - - if (PAL_SUCCESS == status) - { - timer->osTimer.ptimer = function; - timer->osTimer.timer = timer->internalTimerData; - memset(timer->osTimer.timer, 0, sizeof(uint32_t)*PAL_TIMER_DATA_SIZE); - - timer->timerID = (uintptr_t)osTimerCreate(&timer->osTimer, timerType, funcArgument); - if (NULLPTR == timer->timerID) - { - free(timer); - timer = NULL; - status = PAL_ERR_GENERIC_FAILURE; - } - else - { - *timerID = (palTimerID_t)timer; - } - } - return status; + palStatus_t status = PAL_SUCCESS; + palTimer_t* timer = NULL; + + if(NULL == timerID || NULL == function) + { + return PAL_ERR_INVALID_ARGUMENT; + } + + timer = (palTimer_t*)malloc(sizeof(palTimer_t)); + if (NULL == timer) + { + status = PAL_ERR_NO_MEMORY; + } + + if (PAL_SUCCESS == status) + { + timer->osTimer.ptimer = function; + timer->osTimer.timer = timer->internalTimerData; + memset(timer->osTimer.timer, 0, sizeof(uint32_t)*PAL_TIMER_DATA_SIZE); + + timer->timerID = (uintptr_t)osTimerCreate(&timer->osTimer, timerType, funcArgument); + if (NULLPTR == timer->timerID) + { + free(timer); + timer = NULL; + status = PAL_ERR_GENERIC_FAILURE; + } + else + { + *timerID = (palTimerID_t)timer; + } + } + return status; } palStatus_t pal_plat_osTimerStart(palTimerID_t timerID, uint32_t millisec) { - palStatus_t status = PAL_SUCCESS; - osStatus platStatus = osOK; - palTimer_t* timer = NULL; - - if (NULLPTR == timerID) - { - return PAL_ERR_INVALID_ARGUMENT; - } - - timer = (palTimer_t*)timerID; - platStatus = osTimerStart((osTimerId)timer->timerID, millisec); - if (osOK == (osStatus)platStatus) - { - status = PAL_SUCCESS; - } - else - { - status = PAL_RTOS_TRANSLATE_CMSIS_ERROR_CODE(platStatus); - } - - return status; + palStatus_t status = PAL_SUCCESS; + osStatus platStatus = osOK; + palTimer_t* timer = NULL; + + if (NULLPTR == timerID) + { + return PAL_ERR_INVALID_ARGUMENT; + } + + timer = (palTimer_t*)timerID; + platStatus = osTimerStart((osTimerId)timer->timerID, millisec); + if (osOK == (osStatus)platStatus) + { + status = PAL_SUCCESS; + } + else + { + status = PAL_RTOS_TRANSLATE_CMSIS_ERROR_CODE(platStatus); + } + + return status; } palStatus_t pal_plat_osTimerStop(palTimerID_t timerID) { - palStatus_t status = PAL_SUCCESS; - osStatus platStatus = osOK; - palTimer_t* timer = NULL; - - if(NULLPTR == timerID) - { - return PAL_ERR_INVALID_ARGUMENT; - } - - timer = (palTimer_t*)timerID; - platStatus = osTimerStop((osTimerId)timer->timerID); - if (osOK == platStatus) - { - status = PAL_SUCCESS; - } - else - { - status = PAL_RTOS_TRANSLATE_CMSIS_ERROR_CODE(platStatus); - } - - return status; + palStatus_t status = PAL_SUCCESS; + osStatus platStatus = osOK; + palTimer_t* timer = NULL; + + if(NULLPTR == timerID) + { + return PAL_ERR_INVALID_ARGUMENT; + } + + timer = (palTimer_t*)timerID; + platStatus = osTimerStop((osTimerId)timer->timerID); + if (osOK == platStatus) + { + status = PAL_SUCCESS; + } + else + { + status = PAL_RTOS_TRANSLATE_CMSIS_ERROR_CODE(platStatus); + } + + return status; } palStatus_t pal_plat_osTimerDelete(palTimerID_t* timerID) { - palStatus_t status = PAL_SUCCESS; - osStatus platStatus = osOK; - palTimer_t* timer = NULL; - - if(NULL == timerID || NULLPTR == *timerID) - { - return PAL_ERR_INVALID_ARGUMENT; - } + palStatus_t status = PAL_SUCCESS; + osStatus platStatus = osOK; + palTimer_t* timer = NULL; + + if(NULL == timerID || NULLPTR == *timerID) + { + return PAL_ERR_INVALID_ARGUMENT; + } - timer = (palTimer_t*)*timerID; - platStatus = osTimerDelete((osTimerId)timer->timerID); - if (osOK == platStatus) - { - free(timer); - *timerID = NULLPTR; - status = PAL_SUCCESS; - } - else - { - status = PAL_RTOS_TRANSLATE_CMSIS_ERROR_CODE(platStatus); - } + timer = (palTimer_t*)*timerID; + platStatus = osTimerDelete((osTimerId)timer->timerID); + if (osOK == platStatus) + { + free(timer); + *timerID = NULLPTR; + status = PAL_SUCCESS; + } + else + { + status = PAL_RTOS_TRANSLATE_CMSIS_ERROR_CODE(platStatus); + } - return status; + return status; } palStatus_t pal_plat_osMutexCreate(palMutexID_t* mutexID) { - palStatus_t status = PAL_SUCCESS; - palMutex_t* mutex = NULL; - if(NULL == mutexID) - { - return PAL_ERR_INVALID_ARGUMENT; - } - - mutex = (palMutex_t*)malloc(sizeof(palMutex_t)); - if (NULL == mutex) - { - status = PAL_ERR_NO_MEMORY; - } - - if (PAL_SUCCESS == status) - { - mutex->osMutex.mutex = mutex->internalMutexData; - memset(mutex->osMutex.mutex, 0, sizeof(uint32_t)*PAL_MUTEX_DATA_SIZE); - - mutex->mutexID = (uintptr_t)osMutexCreate(&mutex->osMutex); - if (NULLPTR == mutex->mutexID) - { - free(mutex); - mutex = NULL; - status = PAL_ERR_GENERIC_FAILURE; - } - else - { - *mutexID = (palMutexID_t)mutex; - } - } - return status; + palStatus_t status = PAL_SUCCESS; + palMutex_t* mutex = NULL; + if(NULL == mutexID) + { + return PAL_ERR_INVALID_ARGUMENT; + } + + mutex = (palMutex_t*)malloc(sizeof(palMutex_t)); + if (NULL == mutex) + { + status = PAL_ERR_NO_MEMORY; + } + + if (PAL_SUCCESS == status) + { + mutex->osMutex.mutex = mutex->internalMutexData; + memset(mutex->osMutex.mutex, 0, sizeof(uint32_t)*PAL_MUTEX_DATA_SIZE); + + mutex->mutexID = (uintptr_t)osMutexCreate(&mutex->osMutex); + if (NULLPTR == mutex->mutexID) + { + free(mutex); + mutex = NULL; + status = PAL_ERR_GENERIC_FAILURE; + } + else + { + *mutexID = (palMutexID_t)mutex; + } + } + return status; } palStatus_t pal_plat_osMutexWait(palMutexID_t mutexID, uint32_t millisec) { - palStatus_t status = PAL_SUCCESS; - osStatus platStatus = osOK; - palMutex_t* mutex = NULL; - - if(NULLPTR == mutexID) - { - return PAL_ERR_INVALID_ARGUMENT; - } + palStatus_t status = PAL_SUCCESS; + osStatus platStatus = osOK; + palMutex_t* mutex = NULL; + + if(NULLPTR == mutexID) + { + return PAL_ERR_INVALID_ARGUMENT; + } - mutex = (palMutex_t*)mutexID; - platStatus = osMutexWait((osMutexId)mutex->mutexID, millisec); - if (osOK == platStatus) - { - status = PAL_SUCCESS; - } - else - { - status = PAL_RTOS_TRANSLATE_CMSIS_ERROR_CODE(platStatus); - } + mutex = (palMutex_t*)mutexID; + platStatus = osMutexWait((osMutexId)mutex->mutexID, millisec); + if (osOK == platStatus) + { + status = PAL_SUCCESS; + } + else + { + status = PAL_RTOS_TRANSLATE_CMSIS_ERROR_CODE(platStatus); + } - return status; + return status; } palStatus_t pal_plat_osMutexRelease(palMutexID_t mutexID) { - palStatus_t status = PAL_SUCCESS; - osStatus platStatus = osOK; - palMutex_t* mutex = NULL; - - if(NULLPTR == mutexID) - { - return PAL_ERR_INVALID_ARGUMENT; - } - - mutex = (palMutex_t*)mutexID; - platStatus = osMutexRelease((osMutexId)mutex->mutexID); - if (osOK == platStatus) - { - status = PAL_SUCCESS; - } - else - { - status = PAL_RTOS_TRANSLATE_CMSIS_ERROR_CODE(platStatus); - } - - return status; + palStatus_t status = PAL_SUCCESS; + osStatus platStatus = osOK; + palMutex_t* mutex = NULL; + + if(NULLPTR == mutexID) + { + return PAL_ERR_INVALID_ARGUMENT; + } + + mutex = (palMutex_t*)mutexID; + platStatus = osMutexRelease((osMutexId)mutex->mutexID); + if (osOK == platStatus) + { + status = PAL_SUCCESS; + } + else + { + status = PAL_RTOS_TRANSLATE_CMSIS_ERROR_CODE(platStatus); + } + + return status; } palStatus_t pal_plat_osMutexDelete(palMutexID_t* mutexID) { - palStatus_t status = PAL_SUCCESS; - osStatus platStatus = osOK; - palMutex_t* mutex = NULL; - - if(NULL == mutexID || NULLPTR == *mutexID) - { - return PAL_ERR_INVALID_ARGUMENT; - } - - mutex = (palMutex_t*)*mutexID; - platStatus = osMutexDelete((osMutexId)mutex->mutexID); - if (osOK == platStatus) - { - free(mutex); - *mutexID = NULLPTR; - status = PAL_SUCCESS; - } - else - { - status = PAL_RTOS_TRANSLATE_CMSIS_ERROR_CODE(platStatus); - } - - return status; + palStatus_t status = PAL_SUCCESS; + osStatus platStatus = osOK; + palMutex_t* mutex = NULL; + + if(NULL == mutexID || NULLPTR == *mutexID) + { + return PAL_ERR_INVALID_ARGUMENT; + } + + mutex = (palMutex_t*)*mutexID; + platStatus = osMutexDelete((osMutexId)mutex->mutexID); + if (osOK == platStatus) + { + free(mutex); + *mutexID = NULLPTR; + status = PAL_SUCCESS; + } + else + { + status = PAL_RTOS_TRANSLATE_CMSIS_ERROR_CODE(platStatus); + } + + return status; } palStatus_t pal_plat_osSemaphoreCreate(uint32_t count, palSemaphoreID_t* semaphoreID) { - palStatus_t status = PAL_SUCCESS; - palSemaphore_t* semaphore = NULL; - if(NULL == semaphoreID) - { - return PAL_ERR_INVALID_ARGUMENT; - } - - semaphore = (palSemaphore_t*)malloc(sizeof(palSemaphore_t)); - if (NULL == semaphore) - { - status = PAL_ERR_NO_MEMORY; - } - - if(PAL_SUCCESS == status) - { - semaphore->osSemaphore.semaphore = semaphore->internalSemaphoreData; - memset(semaphore->osSemaphore.semaphore, 0, sizeof(uint32_t)*PAL_SEMAPHORE_DATA_SIZE); - - semaphore->semaphoreID = (uintptr_t)osSemaphoreCreate(&semaphore->osSemaphore, count); - if (NULLPTR == semaphore->semaphoreID) - { - free(semaphore); - semaphore = NULL; - status = PAL_ERR_GENERIC_FAILURE; - } - else - { - *semaphoreID = (palSemaphoreID_t)semaphore; - } - } - return status; + palStatus_t status = PAL_SUCCESS; + palSemaphore_t* semaphore = NULL; + if(NULL == semaphoreID) + { + return PAL_ERR_INVALID_ARGUMENT; + } + + semaphore = (palSemaphore_t*)malloc(sizeof(palSemaphore_t)); + if (NULL == semaphore) + { + status = PAL_ERR_NO_MEMORY; + } + + if(PAL_SUCCESS == status) + { + semaphore->osSemaphore.semaphore = semaphore->internalSemaphoreData; + memset(semaphore->osSemaphore.semaphore, 0, sizeof(uint32_t)*PAL_SEMAPHORE_DATA_SIZE); + + semaphore->semaphoreID = (uintptr_t)osSemaphoreCreate(&semaphore->osSemaphore, count); + if (NULLPTR == semaphore->semaphoreID) + { + free(semaphore); + semaphore = NULL; + status = PAL_ERR_GENERIC_FAILURE; + } + else + { + *semaphoreID = (palSemaphoreID_t)semaphore; + } + } + return status; } palStatus_t pal_plat_osSemaphoreWait(palSemaphoreID_t semaphoreID, uint32_t millisec, int32_t* countersAvailable) { - palStatus_t status = PAL_SUCCESS; - palSemaphore_t* semaphore = NULL; - if(NULLPTR == semaphoreID || NULL == countersAvailable) - { - return PAL_ERR_INVALID_ARGUMENT; - } - - semaphore = (palSemaphore_t*)semaphoreID; - *countersAvailable = osSemaphoreWait((osSemaphoreId)semaphore->semaphoreID, millisec); - if (0 == *countersAvailable) - { - status = PAL_ERR_RTOS_TIMEOUT; - } - else if (*countersAvailable < 0) - { - *countersAvailable = 0; - status = PAL_ERR_RTOS_PARAMETER; - } - return status; + palStatus_t status = PAL_SUCCESS; + palSemaphore_t* semaphore = NULL; + if(NULLPTR == semaphoreID || NULL == countersAvailable) + { + return PAL_ERR_INVALID_ARGUMENT; + } + + semaphore = (palSemaphore_t*)semaphoreID; + *countersAvailable = osSemaphoreWait((osSemaphoreId)semaphore->semaphoreID, millisec); + if (0 == *countersAvailable) + { + status = PAL_ERR_RTOS_TIMEOUT; + } + else if (*countersAvailable < 0) + { + *countersAvailable = 0; + status = PAL_ERR_RTOS_PARAMETER; + } + return status; } palStatus_t pal_plat_osSemaphoreRelease(palSemaphoreID_t semaphoreID) { - palStatus_t status = PAL_SUCCESS; - osStatus platStatus = osOK; - palSemaphore_t* semaphore = NULL; - - if(NULLPTR == semaphoreID) - { - return PAL_ERR_INVALID_ARGUMENT; - } - - semaphore = (palSemaphore_t*)semaphoreID; - platStatus = osSemaphoreRelease((osSemaphoreId)semaphore->semaphoreID); - if (osOK == platStatus) - { - status = PAL_SUCCESS; - } - else - { - status = PAL_RTOS_TRANSLATE_CMSIS_ERROR_CODE(platStatus); - } - - return status; + palStatus_t status = PAL_SUCCESS; + osStatus platStatus = osOK; + palSemaphore_t* semaphore = NULL; + + if(NULLPTR == semaphoreID) + { + return PAL_ERR_INVALID_ARGUMENT; + } + + semaphore = (palSemaphore_t*)semaphoreID; + platStatus = osSemaphoreRelease((osSemaphoreId)semaphore->semaphoreID); + if (osOK == platStatus) + { + status = PAL_SUCCESS; + } + else + { + status = PAL_RTOS_TRANSLATE_CMSIS_ERROR_CODE(platStatus); + } + + return status; } palStatus_t pal_plat_osSemaphoreDelete(palSemaphoreID_t* semaphoreID) { - palStatus_t status = PAL_SUCCESS; - osStatus platStatus = osOK; - palSemaphore_t* semaphore = NULL; - - if(NULL == semaphoreID || NULLPTR == *semaphoreID) - { - return PAL_ERR_INVALID_ARGUMENT; - } - - semaphore = (palSemaphore_t*)*semaphoreID; - platStatus = osSemaphoreDelete((osSemaphoreId)semaphore->semaphoreID); - if (osOK == platStatus) - { - free(semaphore); - *semaphoreID = NULLPTR; - status = PAL_SUCCESS; - } - else - { - status = PAL_RTOS_TRANSLATE_CMSIS_ERROR_CODE(platStatus); - } - - return status; + palStatus_t status = PAL_SUCCESS; + osStatus platStatus = osOK; + palSemaphore_t* semaphore = NULL; + + if(NULL == semaphoreID || NULLPTR == *semaphoreID) + { + return PAL_ERR_INVALID_ARGUMENT; + } + + semaphore = (palSemaphore_t*)*semaphoreID; + platStatus = osSemaphoreDelete((osSemaphoreId)semaphore->semaphoreID); + if (osOK == platStatus) + { + free(semaphore); + *semaphoreID = NULLPTR; + status = PAL_SUCCESS; + } + else + { + status = PAL_RTOS_TRANSLATE_CMSIS_ERROR_CODE(platStatus); + } + + return status; } palStatus_t pal_plat_osPoolCreate(uint32_t blockSize, uint32_t blockCount, palMemoryPoolID_t* memoryPoolID) { - palStatus_t status = PAL_SUCCESS; - palMemoryPool_t* memoryPool = NULL; - if(NULL == memoryPoolID) - { - return PAL_ERR_INVALID_ARGUMENT; - } - - //! allocate the memory pool structure - memoryPool = (palMemoryPool_t*)malloc(sizeof(palMemoryPool_t)); - if (NULL == memoryPool) - { - status = PAL_ERR_NO_MEMORY; - } - - if(PAL_SUCCESS == status) - { - //! allocate the actual memory allocation for the memory pool blocks, the size of the memory - //! to allocate was taken from CMSIS header (cmsis_os.h) - memoryPool->osPool.pool = (uint32_t*)malloc(PAL_RTOS_MEMORY_POOL_SIZE(blockSize, blockCount)); - if (NULL == memoryPool->osPool.pool) - { - free(memoryPool); - *memoryPoolID = NULLPTR; - status = PAL_ERR_NO_MEMORY; - } - else - { - memset(memoryPool->osPool.pool, 0, PAL_RTOS_MEMORY_POOL_SIZE(blockSize, blockCount)); - memoryPool->osPool.pool_sz = blockCount; ///< number of items (elements) in the pool - memoryPool->osPool.item_sz = blockSize; ///< size of an item - - memoryPool->memoryPoolID = (uintptr_t)osPoolCreate(&memoryPool->osPool); - if (NULLPTR == memoryPool->memoryPoolID) - { - free(memoryPool->osPool.pool); - free(memoryPool); - memoryPool = NULL; - status = PAL_ERR_GENERIC_FAILURE; - } - else - { - *memoryPoolID = (palMemoryPoolID_t)memoryPool; - } - } - } - return status; + palStatus_t status = PAL_SUCCESS; + palMemoryPool_t* memoryPool = NULL; + if(NULL == memoryPoolID) + { + return PAL_ERR_INVALID_ARGUMENT; + } + + //! allocate the memory pool structure + memoryPool = (palMemoryPool_t*)malloc(sizeof(palMemoryPool_t)); + if (NULL == memoryPool) + { + status = PAL_ERR_NO_MEMORY; + } + + if(PAL_SUCCESS == status) + { + //! allocate the actual memory allocation for the memory pool blocks, the size of the memory + //! to allocate was taken from CMSIS header (cmsis_os.h) + memoryPool->osPool.pool = (uint32_t*)malloc(PAL_RTOS_MEMORY_POOL_SIZE(blockSize, blockCount)); + if (NULL == memoryPool->osPool.pool) + { + free(memoryPool); + *memoryPoolID = NULLPTR; + status = PAL_ERR_NO_MEMORY; + } + else + { + memset(memoryPool->osPool.pool, 0, PAL_RTOS_MEMORY_POOL_SIZE(blockSize, blockCount)); + memoryPool->osPool.pool_sz = blockCount; ///< number of items (elements) in the pool + memoryPool->osPool.item_sz = blockSize; ///< size of an item + + memoryPool->memoryPoolID = (uintptr_t)osPoolCreate(&memoryPool->osPool); + if (NULLPTR == memoryPool->memoryPoolID) + { + free(memoryPool->osPool.pool); + free(memoryPool); + memoryPool = NULL; + status = PAL_ERR_GENERIC_FAILURE; + } + else + { + *memoryPoolID = (palMemoryPoolID_t)memoryPool; + } + } + } + return status; } void* pal_plat_osPoolAlloc(palMemoryPoolID_t memoryPoolID) { - void* result = NULL; - palMemoryPool_t* memoryPool = NULL; - - if(NULLPTR == memoryPoolID) - { - return NULL; - } + void* result = NULL; + palMemoryPool_t* memoryPool = NULL; + + if(NULLPTR == memoryPoolID) + { + return NULL; + } - memoryPool = (palMemoryPool_t*)memoryPoolID; - result = osPoolAlloc((osPoolId)memoryPool->memoryPoolID); + memoryPool = (palMemoryPool_t*)memoryPoolID; + result = osPoolAlloc((osPoolId)memoryPool->memoryPoolID); - return result; + return result; } void* pal_plat_osPoolCAlloc(palMemoryPoolID_t memoryPoolID) { - void* result = NULL; - palMemoryPool_t* memoryPool = NULL; - - if(NULLPTR == memoryPoolID) - { - return NULL; - } + void* result = NULL; + palMemoryPool_t* memoryPool = NULL; + + if(NULLPTR == memoryPoolID) + { + return NULL; + } - memoryPool = (palMemoryPool_t*)memoryPoolID; - result = osPoolCAlloc((osPoolId)memoryPool->memoryPoolID); + memoryPool = (palMemoryPool_t*)memoryPoolID; + result = osPoolCAlloc((osPoolId)memoryPool->memoryPoolID); - return result; + return result; } palStatus_t pal_plat_osPoolFree(palMemoryPoolID_t memoryPoolID, void* block) { - palStatus_t status = PAL_SUCCESS; - osStatus platStatus = osOK; - palMemoryPool_t* memoryPool = NULL; - - if(NULLPTR == memoryPoolID || NULL == block) - { - return PAL_ERR_INVALID_ARGUMENT; - } - - memoryPool = (palMemoryPool_t*)memoryPoolID; - platStatus = osPoolFree((osPoolId)memoryPool->memoryPoolID, block); - if (osOK == platStatus) - { - status = PAL_SUCCESS; - } - else - { - status = PAL_RTOS_TRANSLATE_CMSIS_ERROR_CODE(platStatus); - } - - return status; + palStatus_t status = PAL_SUCCESS; + osStatus platStatus = osOK; + palMemoryPool_t* memoryPool = NULL; + + if(NULLPTR == memoryPoolID || NULL == block) + { + return PAL_ERR_INVALID_ARGUMENT; + } + + memoryPool = (palMemoryPool_t*)memoryPoolID; + platStatus = osPoolFree((osPoolId)memoryPool->memoryPoolID, block); + if (osOK == platStatus) + { + status = PAL_SUCCESS; + } + else + { + status = PAL_RTOS_TRANSLATE_CMSIS_ERROR_CODE(platStatus); + } + + return status; } palStatus_t pal_plat_osPoolDestroy(palMemoryPoolID_t* memoryPoolID) { - palStatus_t status = PAL_SUCCESS; - palMemoryPool_t* memoryPool = NULL; - - if(NULL == memoryPoolID || NULLPTR == *memoryPoolID) - { - return PAL_ERR_INVALID_ARGUMENT; - } + palStatus_t status = PAL_SUCCESS; + palMemoryPool_t* memoryPool = NULL; + + if(NULL == memoryPoolID || NULLPTR == *memoryPoolID) + { + return PAL_ERR_INVALID_ARGUMENT; + } - memoryPool = (palMemoryPool_t*)*memoryPoolID; - free(memoryPool->osPool.pool); - free(memoryPool); - *memoryPoolID = NULLPTR; - return status; + memoryPool = (palMemoryPool_t*)*memoryPoolID; + free(memoryPool->osPool.pool); + free(memoryPool); + *memoryPoolID = NULLPTR; + return status; } palStatus_t pal_plat_osMessageQueueCreate(uint32_t messageQSize, palMessageQID_t* messageQID) { - palStatus_t status = PAL_SUCCESS; - palMessageQ_t* messageQ = NULL; - if(NULL == messageQID) - { - return PAL_ERR_INVALID_ARGUMENT; - } - - //! allocate the message queue structure - messageQ = (palMessageQ_t*)malloc(sizeof(palMessageQ_t)); - if (NULL == messageQ) - { - status = PAL_ERR_NO_MEMORY; - } - - if (PAL_SUCCESS == status) - { - //! allocate the actual memory allocation for the message queue blocks, the size of the memory - //! to allocate was taken from CMSIS header (cmsis_os.h) - messageQ->osMessageQ.pool = (uint32_t*)malloc(PAL_RTOS_MESSAGE_Q_SIZE(messageQSize)); - if (NULL == messageQ->osMessageQ.pool) - { - free(messageQ); - messageQ = NULL; - status = PAL_ERR_NO_MEMORY; - } - else - { - memset(messageQ->osMessageQ.pool, 0, PAL_RTOS_MESSAGE_Q_SIZE(messageQSize)); - messageQ->osMessageQ.queue_sz = messageQSize; ///< number of items (elements) in the queue - - messageQ->messageQID = (uintptr_t)osMessageCreate(&(messageQ->osMessageQ), NULL); - if (NULLPTR == messageQ->messageQID) - { - free(messageQ->osMessageQ.pool); - free(messageQ); - messageQ = NULL; - status = PAL_ERR_GENERIC_FAILURE; - } - else - { - *messageQID = (palMessageQID_t)messageQ; - } - } - } - return status; + palStatus_t status = PAL_SUCCESS; + palMessageQ_t* messageQ = NULL; + if(NULL == messageQID) + { + return PAL_ERR_INVALID_ARGUMENT; + } + + //! allocate the message queue structure + messageQ = (palMessageQ_t*)malloc(sizeof(palMessageQ_t)); + if (NULL == messageQ) + { + status = PAL_ERR_NO_MEMORY; + } + + if (PAL_SUCCESS == status) + { + //! allocate the actual memory allocation for the message queue blocks, the size of the memory + //! to allocate was taken from CMSIS header (cmsis_os.h) + messageQ->osMessageQ.pool = (uint32_t*)malloc(PAL_RTOS_MESSAGE_Q_SIZE(messageQSize)); + if (NULL == messageQ->osMessageQ.pool) + { + free(messageQ); + messageQ = NULL; + status = PAL_ERR_NO_MEMORY; + } + else + { + memset(messageQ->osMessageQ.pool, 0, PAL_RTOS_MESSAGE_Q_SIZE(messageQSize)); + messageQ->osMessageQ.queue_sz = messageQSize; ///< number of items (elements) in the queue + + messageQ->messageQID = (uintptr_t)osMessageCreate(&(messageQ->osMessageQ), NULL); + if (NULLPTR == messageQ->messageQID) + { + free(messageQ->osMessageQ.pool); + free(messageQ); + messageQ = NULL; + status = PAL_ERR_GENERIC_FAILURE; + } + else + { + *messageQID = (palMessageQID_t)messageQ; + } + } + } + return status; } palStatus_t pal_plat_osMessagePut(palMessageQID_t messageQID, uint32_t info, uint32_t timeout) { - palStatus_t status = PAL_SUCCESS; - osStatus platStatus = osOK; - palMessageQ_t* messageQ = NULL; - - if(NULLPTR == messageQID) - { - return PAL_ERR_INVALID_ARGUMENT; - } - - messageQ = (palMessageQ_t*)messageQID; - platStatus = osMessagePut((osMessageQId)messageQ->messageQID, info, timeout); - if (osOK == platStatus) - { - status = PAL_SUCCESS; - } - else - { - status = PAL_RTOS_TRANSLATE_CMSIS_ERROR_CODE(platStatus); - } - - return status; -} - -palStatus_t pal_plat_osMessageGet(palMessageQID_t messageQID, uint32_t timeout, uint32_t* messageValue) -{ - palStatus_t status = PAL_SUCCESS; - osEvent event; - palMessageQ_t* messageQ = NULL; - - if (NULLPTR == messageQID) - { - return PAL_ERR_INVALID_ARGUMENT; - } - - messageQ = (palMessageQ_t*)messageQID; - event = osMessageGet((osMessageQId)messageQ->messageQID, timeout); - - if ((messageValue != NULL) && (osEventMessage == event.status)) - { - *messageValue = event.value.v; - status = PAL_SUCCESS; - } - else if (osEventTimeout == event.status) - { - status = PAL_ERR_RTOS_TIMEOUT; - } - else if (osErrorParameter == event.status) - { - status = PAL_ERR_RTOS_PARAMETER; - } - else if (osOK == event.status) - { - status = PAL_ERR_GENERIC_FAILURE; - } - - return status; + palStatus_t status = PAL_SUCCESS; + osStatus platStatus = osOK; + palMessageQ_t* messageQ = NULL; + + if(NULLPTR == messageQID) + { + return PAL_ERR_INVALID_ARGUMENT; + } + + messageQ = (palMessageQ_t*)messageQID; + platStatus = osMessagePut((osMessageQId)messageQ->messageQID, info, timeout); + if (osOK == platStatus) + { + status = PAL_SUCCESS; + } + else + { + status = PAL_RTOS_TRANSLATE_CMSIS_ERROR_CODE(platStatus); + } + + return status; +} + +palStatus_t pal_plat_osMessageGet(palMessageQID_t messageQID, uint32_t timeout, uint32_t* messageValue) +{ + palStatus_t status = PAL_SUCCESS; + osEvent event; + palMessageQ_t* messageQ = NULL; + + if (NULLPTR == messageQID) + { + return PAL_ERR_INVALID_ARGUMENT; + } + + messageQ = (palMessageQ_t*)messageQID; + event = osMessageGet((osMessageQId)messageQ->messageQID, timeout); + + if ((messageValue != NULL) && (osEventMessage == event.status)) + { + *messageValue = event.value.v; + status = PAL_SUCCESS; + } + else if (osEventTimeout == event.status) + { + status = PAL_ERR_RTOS_TIMEOUT; + } + else if (osErrorParameter == event.status) + { + status = PAL_ERR_RTOS_PARAMETER; + } + else if (osOK == event.status) + { + status = PAL_ERR_GENERIC_FAILURE; + } + + return status; } palStatus_t pal_plat_osMessageQueueDestroy(palMessageQID_t* messageQID) { - palStatus_t status = PAL_SUCCESS; - palMessageQ_t* messageQ = NULL; - - if(NULL == messageQID || NULLPTR == *messageQID) - { - return PAL_ERR_INVALID_ARGUMENT; - } + palStatus_t status = PAL_SUCCESS; + palMessageQ_t* messageQ = NULL; + + if(NULL == messageQID || NULLPTR == *messageQID) + { + return PAL_ERR_INVALID_ARGUMENT; + } - messageQ = (palMessageQ_t*)*messageQID; - free(messageQ->osMessageQ.pool); - free(messageQ); - *messageQID = NULLPTR; - return status; + messageQ = (palMessageQ_t*)*messageQID; + free(messageQ->osMessageQ.pool); + free(messageQ); + *messageQID = NULLPTR; + return status; } int32_t pal_plat_osAtomicIncrement(int32_t* valuePtr, int32_t increment) { - if (increment >= 0) - { - return core_util_atomic_incr_u32((uint32_t*)valuePtr, increment); - } - else - { - return core_util_atomic_decr_u32((uint32_t*)valuePtr, 0 - increment); - } + if (increment >= 0) + { + return core_util_atomic_incr_u32((uint32_t*)valuePtr, increment); + } + else + { + return core_util_atomic_decr_u32((uint32_t*)valuePtr, 0 - increment); + } } diff --git a/Test/BUILD_TEST_mbedOS.mk b/Test/BUILD_TEST_mbedOS.mk index 9633e79..164ba91 100644 --- a/Test/BUILD_TEST_mbedOS.mk +++ b/Test/BUILD_TEST_mbedOS.mk @@ -73,7 +73,7 @@ endif ifeq ($(DEBUG), 1) $(info "DEBUG") - $(TARGET_PLATFORM)_$(PROJECT) : DEBUG_FLAGS += -o debug-info -DDEBUG + $(TARGET_PLATFORM)_$(PROJECT) : DEBUG_FLAGS += -DDEBUG endif ifeq ($(PAL_IGNORE_UNIQUE_THREAD_PRIORITY), 1) @@ -114,7 +114,11 @@ TST_SOURCES:= $(INCLUDE_PATHS) \ $(PAL_ROOT)/Test/$(TYPE)/$(PROJECT)_test_main_$(TARGET_PLATFORM).cpp \ $($(PROJECT)_ADDITIONAL_SOURCES) ifeq ($(findstring HAS_UPDATE,$(TARGET_CONFIGURATION_DEFINES)),HAS_UPDATE) - +TST_SOURCES:= $(TST_SOURCES) \ + $(MORPHEUS_ROOT)/storage-volume-manager \ + $(MORPHEUS_ROOT)/storage-abstraction/ \ + $(MORPHEUS_ROOT)/mbed-client-libservice \ + $(MORPHEUS_ROOT)/mbed-trace/ endif @@ -129,7 +133,7 @@ $(OUT)/$(PROJECT).bin: $(TST_SOURCES) # Always remove the test runner since PAL_TEST argument change requires that it is recompiled $(RM) $(dir $@)obj/$(PROJECT)_test_runner.o # Ignore some mbed libraries in the subsequent build. (The minus ignores the error if the library does not exist) - -$(ECHO) "*" > $(MORPHEUS_ROOT)/storage-volume-manager/test/.mbedignore + -$(ECHO) "*" > $(strip $(MORPHEUS_ROOT))/mbed-os/features/frameworks/unity/.mbedignore # Morpheus build. mbed compile -v -N ../$(notdir $(basename $@)) --build $(dir $@)obj -t GCC_ARM -m K64F $(addprefix --source=, $^) $(MORPHEUS_CC_TESTS_D) $(DEBUG_FLAGS) diff --git a/Test/Common/pal_rtos_test_utils.c b/Test/Common/pal_rtos_test_utils.c index 5c625ac..19ba7f9 100644 --- a/Test/Common/pal_rtos_test_utils.c +++ b/Test/Common/pal_rtos_test_utils.c @@ -25,210 +25,210 @@ timerArgument_t timerArgs; void palThreadFunc1(void const *argument) { - palThreadID_t threadID = 10; - uint32_t* threadStorage = NULL; - threadsArgument_t *tmp = (threadsArgument_t*)argument; + palThreadID_t threadID = 10; + uint32_t* threadStorage = NULL; + threadsArgument_t *tmp = (threadsArgument_t*)argument; #ifdef MUTEX_UNITY_TEST - palStatus_t status = PAL_SUCCESS; - TEST_PRINTF("palThreadFunc1::before mutex\n"); - status = pal_osMutexWait(mutex1, 100); - TEST_PRINTF("palThreadFunc1::after mutex: 0x%08x\n", status); - TEST_PRINTF("palThreadFunc1::after mutex (expected): 0x%08x\n", PAL_ERR_RTOS_TIMEOUT); - TEST_ASSERT_EQUAL(PAL_ERR_RTOS_TIMEOUT, status); - return; // for Mutex scenario, this should end here + palStatus_t status = PAL_SUCCESS; + TEST_PRINTF("palThreadFunc1::before mutex\n"); + status = pal_osMutexWait(mutex1, 100); + TEST_PRINTF("palThreadFunc1::after mutex: 0x%08x\n", status); + TEST_PRINTF("palThreadFunc1::after mutex (expected): 0x%08x\n", PAL_ERR_RTOS_TIMEOUT); + TEST_ASSERT_EQUAL(PAL_ERR_RTOS_TIMEOUT, status); + return; // for Mutex scenario, this should end here #endif //MUTEX_UNITY_TEST - tmp->arg1 = 10; + tmp->arg1 = 10; - threadID = pal_osThreadGetId(); - TEST_PRINTF("palThreadFunc1::Thread ID is %d\n", threadID); + threadID = pal_osThreadGetId(); + TEST_PRINTF("palThreadFunc1::Thread ID is %d\n", threadID); - threadStorage = pal_osThreadGetLocalStore(); - if (threadStorage == g_threadStorage) - { - TEST_PRINTF("Thread storage updated as expected\n"); - } - TEST_ASSERT_EQUAL(threadStorage, g_threadStorage); + threadStorage = pal_osThreadGetLocalStore(); + if (threadStorage == g_threadStorage) + { + TEST_PRINTF("Thread storage updated as expected\n"); + } + TEST_ASSERT_EQUAL(threadStorage, g_threadStorage); #ifdef MUTEX_UNITY_TEST - status = pal_osMutexRelease(mutex1); - TEST_ASSERT_EQUAL(PAL_SUCCESS, status); + status = pal_osMutexRelease(mutex1); + TEST_ASSERT_EQUAL(PAL_SUCCESS, status); #endif //MUTEX_UNITY_TEST - TEST_PRINTF("palThreadFunc1::STAAAAM\n"); + TEST_PRINTF("palThreadFunc1::STAAAAM\n"); } void palThreadFunc2(void const *argument) { - palThreadID_t threadID = 10; - threadsArgument_t *tmp = (threadsArgument_t*)argument; + palThreadID_t threadID = 10; + threadsArgument_t *tmp = (threadsArgument_t*)argument; #ifdef MUTEX_UNITY_TEST - palStatus_t status = PAL_SUCCESS; - TEST_PRINTF("palThreadFunc2::before mutex\n"); - status = pal_osMutexWait(mutex2, 300); - TEST_PRINTF("palThreadFunc2::after mutex: 0x%08x\n", status); - TEST_PRINTF("palThreadFunc2::after mutex (expected): 0x%08x\n", PAL_SUCCESS); - TEST_ASSERT_EQUAL(PAL_SUCCESS, status); + palStatus_t status = PAL_SUCCESS; + TEST_PRINTF("palThreadFunc2::before mutex\n"); + status = pal_osMutexWait(mutex2, 300); + TEST_PRINTF("palThreadFunc2::after mutex: 0x%08x\n", status); + TEST_PRINTF("palThreadFunc2::after mutex (expected): 0x%08x\n", PAL_SUCCESS); + TEST_ASSERT_EQUAL(PAL_SUCCESS, status); #endif //MUTEX_UNITY_TEST - tmp->arg2 = 20; + tmp->arg2 = 20; - threadID = pal_osThreadGetId(); - TEST_PRINTF("palThreadFunc2::Thread ID is %d\n", threadID); + threadID = pal_osThreadGetId(); + TEST_PRINTF("palThreadFunc2::Thread ID is %d\n", threadID); #ifdef MUTEX_UNITY_TEST - status = pal_osMutexRelease(mutex2); - TEST_ASSERT_EQUAL(PAL_SUCCESS, status); + status = pal_osMutexRelease(mutex2); + TEST_ASSERT_EQUAL(PAL_SUCCESS, status); #endif //MUTEX_UNITY_TEST - TEST_PRINTF("palThreadFunc2::STAAAAM\n"); + TEST_PRINTF("palThreadFunc2::STAAAAM\n"); } void palThreadFunc3(void const *argument) { - palThreadID_t threadID = 10; - threadsArgument_t *tmp = (threadsArgument_t*)argument; + palThreadID_t threadID = 10; + threadsArgument_t *tmp = (threadsArgument_t*)argument; #ifdef SEMAPHORE_UNITY_TEST - palStatus_t status = PAL_SUCCESS; - uint32_t semaphoresAvailable = 10; - status = pal_osSemaphoreWait(semaphore1, 200, &semaphoresAvailable); - - if (PAL_SUCCESS == status) - { - TEST_PRINTF("palThreadFunc3::semaphoresAvailable: %d\n", semaphoresAvailable); - TEST_ASSERT_EQUAL(PAL_SUCCESS, status); - } - else if(PAL_ERR_RTOS_TIMEOUT == status) - { - TEST_PRINTF("palThreadFunc3::semaphoresAvailable: %d\n", semaphoresAvailable); - TEST_PRINTF("palThreadFunc3::status: 0x%08x\n", status); - TEST_PRINTF("palThreadFunc3::failed to get Semaphore as expected\n", status); - TEST_ASSERT_EQUAL(PAL_ERR_RTOS_TIMEOUT, status); - return; - } - pal_osDelay(6000); + palStatus_t status = PAL_SUCCESS; + uint32_t semaphoresAvailable = 10; + status = pal_osSemaphoreWait(semaphore1, 200, &semaphoresAvailable); + + if (PAL_SUCCESS == status) + { + TEST_PRINTF("palThreadFunc3::semaphoresAvailable: %d\n", semaphoresAvailable); + TEST_ASSERT_EQUAL(PAL_SUCCESS, status); + } + else if(PAL_ERR_RTOS_TIMEOUT == status) + { + TEST_PRINTF("palThreadFunc3::semaphoresAvailable: %d\n", semaphoresAvailable); + TEST_PRINTF("palThreadFunc3::status: 0x%08x\n", status); + TEST_PRINTF("palThreadFunc3::failed to get Semaphore as expected\n", status); + TEST_ASSERT_EQUAL(PAL_ERR_RTOS_TIMEOUT, status); + return; + } + pal_osDelay(6000); #endif //SEMAPHORE_UNITY_TEST - tmp->arg3 = 30; - threadID = pal_osThreadGetId(); - TEST_PRINTF("palThreadFunc3::Thread ID is %d\n", threadID); + tmp->arg3 = 30; + threadID = pal_osThreadGetId(); + TEST_PRINTF("palThreadFunc3::Thread ID is %d\n", threadID); #ifdef SEMAPHORE_UNITY_TEST - status = pal_osSemaphoreRelease(semaphore1); - TEST_PRINTF("palThreadFunc3::pal_osSemaphoreRelease res: 0x%08x\n", status); - TEST_ASSERT_EQUAL(PAL_SUCCESS, status); + status = pal_osSemaphoreRelease(semaphore1); + TEST_PRINTF("palThreadFunc3::pal_osSemaphoreRelease res: 0x%08x\n", status); + TEST_ASSERT_EQUAL(PAL_SUCCESS, status); #endif //SEMAPHORE_UNITY_TEST - TEST_PRINTF("palThreadFunc3::STAAAAM\n"); + TEST_PRINTF("palThreadFunc3::STAAAAM\n"); } void palThreadFunc4(void const *argument) { - palThreadID_t threadID = 10; - threadsArgument_t *tmp = (threadsArgument_t*)argument; + palThreadID_t threadID = 10; + threadsArgument_t *tmp = (threadsArgument_t*)argument; #ifdef MUTEX_UNITY_TEST - palStatus_t status = PAL_SUCCESS; - TEST_PRINTF("palThreadFunc4::before mutex\n"); - status = pal_osMutexWait(mutex1, 200); - TEST_PRINTF("palThreadFunc4::after mutex: 0x%08x\n", status); - TEST_ASSERT_EQUAL(PAL_SUCCESS, status); - pal_osDelay(3500); //wait 3.5 seconds to make sure that the next thread arrive to this point + palStatus_t status = PAL_SUCCESS; + TEST_PRINTF("palThreadFunc4::before mutex\n"); + status = pal_osMutexWait(mutex1, 200); + TEST_PRINTF("palThreadFunc4::after mutex: 0x%08x\n", status); + TEST_ASSERT_EQUAL(PAL_SUCCESS, status); + pal_osDelay(3500); //wait 3.5 seconds to make sure that the next thread arrive to this point #endif //MUTEX_UNITY_TEST - tmp->arg4 = 40; + tmp->arg4 = 40; - threadID = pal_osThreadGetId(); - TEST_PRINTF("Thread ID is %d\n", threadID); + threadID = pal_osThreadGetId(); + TEST_PRINTF("Thread ID is %d\n", threadID); #ifdef MUTEX_UNITY_TEST - status = pal_osMutexRelease(mutex1); - TEST_PRINTF("palThreadFunc4::after release mutex: 0x%08x\n", status); - TEST_ASSERT_EQUAL(PAL_SUCCESS, status); + status = pal_osMutexRelease(mutex1); + TEST_PRINTF("palThreadFunc4::after release mutex: 0x%08x\n", status); + TEST_ASSERT_EQUAL(PAL_SUCCESS, status); #endif //MUTEX_UNITY_TEST - TEST_PRINTF("palThreadFunc4::STAAAAM\n"); + TEST_PRINTF("palThreadFunc4::STAAAAM\n"); } void palThreadFunc5(void const *argument) { - palThreadID_t threadID = 10; - threadsArgument_t *tmp = (threadsArgument_t*)argument; + palThreadID_t threadID = 10; + threadsArgument_t *tmp = (threadsArgument_t*)argument; #ifdef MUTEX_UNITY_TEST - palStatus_t status = PAL_SUCCESS; - TEST_PRINTF("palThreadFunc5::before mutex\n"); - status = pal_osMutexWait(mutex1, 4500); - TEST_PRINTF("palThreadFunc5::after mutex: 0x%08x\n", status); - TEST_ASSERT_EQUAL(PAL_SUCCESS, status); + palStatus_t status = PAL_SUCCESS; + TEST_PRINTF("palThreadFunc5::before mutex\n"); + status = pal_osMutexWait(mutex1, 4500); + TEST_PRINTF("palThreadFunc5::after mutex: 0x%08x\n", status); + TEST_ASSERT_EQUAL(PAL_SUCCESS, status); #endif //MUTEX_UNITY_TEST - tmp->arg5 = 50; + tmp->arg5 = 50; - threadID = pal_osThreadGetId(); - TEST_PRINTF("Thread ID is %d\n", threadID); + threadID = pal_osThreadGetId(); + TEST_PRINTF("Thread ID is %d\n", threadID); #ifdef MUTEX_UNITY_TEST - status = pal_osMutexRelease(mutex1); - TEST_PRINTF("palThreadFunc5::after release mutex: 0x%08x\n", status); - TEST_ASSERT_EQUAL(PAL_SUCCESS, status); + status = pal_osMutexRelease(mutex1); + TEST_PRINTF("palThreadFunc5::after release mutex: 0x%08x\n", status); + TEST_ASSERT_EQUAL(PAL_SUCCESS, status); #endif //MUTEX_UNITY_TEST - TEST_PRINTF("palThreadFunc5::STAAAAM\n"); + TEST_PRINTF("palThreadFunc5::STAAAAM\n"); } void palThreadFunc6(void const *argument) { - palThreadID_t threadID = 10; - threadsArgument_t *tmp = (threadsArgument_t*)argument; + palThreadID_t threadID = 10; + threadsArgument_t *tmp = (threadsArgument_t*)argument; #ifdef SEMAPHORE_UNITY_TEST - palStatus_t status = PAL_SUCCESS; - uint32_t semaphoresAvailable = 10; - status = pal_osSemaphoreWait(123456, 200, &semaphoresAvailable); //MUST fail, since there is no semaphore with ID=3 - TEST_PRINTF("palThreadFunc6::semaphoresAvailable: %d\n", semaphoresAvailable); - TEST_ASSERT_EQUAL(PAL_ERR_RTOS_PARAMETER, status); - return; + palStatus_t status = PAL_SUCCESS; + uint32_t semaphoresAvailable = 10; + status = pal_osSemaphoreWait(123456, 200, &semaphoresAvailable); //MUST fail, since there is no semaphore with ID=3 + TEST_PRINTF("palThreadFunc6::semaphoresAvailable: %d\n", semaphoresAvailable); + TEST_ASSERT_EQUAL(PAL_ERR_RTOS_PARAMETER, status); + return; #endif //SEMAPHORE_UNITY_TEST - tmp->arg6 = 60; + tmp->arg6 = 60; - threadID = pal_osThreadGetId(); - TEST_PRINTF("Thread ID is %d\n", threadID); + threadID = pal_osThreadGetId(); + TEST_PRINTF("Thread ID is %d\n", threadID); #ifdef SEMAPHORE_UNITY_TEST - status = pal_osSemaphoreRelease(123456); - TEST_PRINTF("palThreadFunc6::pal_osSemaphoreRelease res: 0x%08x\n", status); - TEST_ASSERT_EQUAL(PAL_ERR_RTOS_PARAMETER, status); + status = pal_osSemaphoreRelease(123456); + TEST_PRINTF("palThreadFunc6::pal_osSemaphoreRelease res: 0x%08x\n", status); + TEST_ASSERT_EQUAL(PAL_ERR_RTOS_PARAMETER, status); #endif //SEMAPHORE_UNITY_TEST - TEST_PRINTF("palThreadFunc6::STAAAAM\n"); + TEST_PRINTF("palThreadFunc6::STAAAAM\n"); } void palTimerFunc1(void const *argument) { - g_timerArgs.ticksInFunc1 = pal_osKernelSysTick(); - TEST_PRINTF("ticks in palTimerFunc1: 0 - %d\n", g_timerArgs.ticksInFunc1); - TEST_PRINTF("Once Timer function was called\n"); + g_timerArgs.ticksInFunc1 = pal_osKernelSysTick(); + TEST_PRINTF("ticks in palTimerFunc1: 0 - %d\n", g_timerArgs.ticksInFunc1); + TEST_PRINTF("Once Timer function was called\n"); } void palTimerFunc2(void const *argument) { - g_timerArgs.ticksInFunc2 = pal_osKernelSysTick(); - TEST_PRINTF("ticks in palTimerFunc2: 0 - %d\n", g_timerArgs.ticksInFunc2); - TEST_PRINTF("Periodic Timer function was called\n"); + g_timerArgs.ticksInFunc2 = pal_osKernelSysTick(); + TEST_PRINTF("ticks in palTimerFunc2: 0 - %d\n", g_timerArgs.ticksInFunc2); + TEST_PRINTF("Periodic Timer function was called\n"); } void palThreadFuncCustom1(void const *argument) { - TEST_PRINTF("palThreadFuncCustom1 was called\n"); + TEST_PRINTF("palThreadFuncCustom1 was called\n"); } void palThreadFuncCustom2(void const *argument) { - TEST_PRINTF("palThreadFuncCustom2 was called\n"); + TEST_PRINTF("palThreadFuncCustom2 was called\n"); } void palThreadFuncCustom3(void const *argument) { - TEST_PRINTF("palThreadFuncCustom3 was called\n"); + TEST_PRINTF("palThreadFuncCustom3 was called\n"); } void palThreadFuncCustom4(void const *argument) { - TEST_PRINTF("palThreadFuncCustom4 was called\n"); + TEST_PRINTF("palThreadFuncCustom4 was called\n"); } void palRunThreads() @@ -241,32 +241,32 @@ void palRunThreads() palThreadID_t threadID5 = NULLPTR; palThreadID_t threadID6 = NULLPTR; - uint32_t *stack1 = malloc(1024*sizeof(uint32_t)); - uint32_t *stack2 = malloc(1024*sizeof(uint32_t)); - uint32_t *stack3 = malloc(1024*sizeof(uint32_t)); - uint32_t *stack4 = malloc(1024*sizeof(uint32_t)); - uint32_t *stack5 = malloc(1024*sizeof(uint32_t)); - uint32_t *stack6 = malloc(1024*sizeof(uint32_t)); + uint32_t *stack1 = malloc(THREAD_STACK_SIZE); + uint32_t *stack2 = malloc(THREAD_STACK_SIZE); + uint32_t *stack3 = malloc(THREAD_STACK_SIZE); + uint32_t *stack4 = malloc(THREAD_STACK_SIZE); + uint32_t *stack5 = malloc(THREAD_STACK_SIZE); + uint32_t *stack6 = malloc(THREAD_STACK_SIZE); status = pal_init(NULL); TEST_ASSERT_EQUAL(PAL_SUCCESS, status); - status = pal_osThreadCreate(palThreadFunc1, &g_threadsArg, PAL_osPriorityIdle, 1024, stack1, (palThreadLocalStore_t *)g_threadStorage, &threadID1); + status = pal_osThreadCreate(palThreadFunc1, &g_threadsArg, PAL_osPriorityIdle, THREAD_STACK_SIZE, stack1, (palThreadLocalStore_t *)g_threadStorage, &threadID1); TEST_ASSERT_EQUAL(PAL_SUCCESS, status); - status = pal_osThreadCreate(palThreadFunc2, &g_threadsArg, PAL_osPriorityLow, 1024, stack2, NULL, &threadID2); + status = pal_osThreadCreate(palThreadFunc2, &g_threadsArg, PAL_osPriorityLow, THREAD_STACK_SIZE, stack2, NULL, &threadID2); TEST_ASSERT_EQUAL(PAL_SUCCESS, status); - status = pal_osThreadCreate(palThreadFunc3, &g_threadsArg, PAL_osPriorityNormal, 1024, stack3, NULL, &threadID3); + status = pal_osThreadCreate(palThreadFunc3, &g_threadsArg, PAL_osPriorityNormal, THREAD_STACK_SIZE, stack3, NULL, &threadID3); TEST_ASSERT_EQUAL(PAL_SUCCESS, status); - status = pal_osThreadCreate(palThreadFunc4, &g_threadsArg, PAL_osPriorityBelowNormal, 1024, stack4, NULL, &threadID4); + status = pal_osThreadCreate(palThreadFunc4, &g_threadsArg, PAL_osPriorityBelowNormal, THREAD_STACK_SIZE, stack4, NULL, &threadID4); TEST_ASSERT_EQUAL(PAL_SUCCESS, status); - status = pal_osThreadCreate(palThreadFunc5, &g_threadsArg, PAL_osPriorityAboveNormal, 1024, stack5, NULL, &threadID5); + status = pal_osThreadCreate(palThreadFunc5, &g_threadsArg, PAL_osPriorityAboveNormal, THREAD_STACK_SIZE, stack5, NULL, &threadID5); TEST_ASSERT_EQUAL(PAL_SUCCESS, status); - status = pal_osThreadCreate(palThreadFunc6, &g_threadsArg, PAL_osPriorityHigh, 1024, stack6, NULL, &threadID6); + status = pal_osThreadCreate(palThreadFunc6, &g_threadsArg, PAL_osPriorityHigh, THREAD_STACK_SIZE, stack6, NULL, &threadID6); TEST_ASSERT_EQUAL(PAL_SUCCESS, status); diff --git a/Test/Common/pal_rtos_test_utils.h b/Test/Common/pal_rtos_test_utils.h index 9a4f259..6395518 100644 --- a/Test/Common/pal_rtos_test_utils.h +++ b/Test/Common/pal_rtos_test_utils.h @@ -21,15 +21,16 @@ #include "pal_rtos.h" #include "pal_test_utils.h" +#define THREAD_STACK_SIZE 1024*sizeof(uint32_t) typedef struct threadsArgument{ - uint32_t arg1; - uint32_t arg2; - uint32_t arg3; - uint32_t arg4; - uint32_t arg5; - uint32_t arg6; - uint32_t arg7; + uint32_t arg1; + uint32_t arg2; + uint32_t arg3; + uint32_t arg4; + uint32_t arg5; + uint32_t arg6; + uint32_t arg7; }threadsArgument_t; @@ -46,9 +47,9 @@ void palThreadFunc6(void const *argument); typedef struct timerArgument{ - uint32_t ticksBeforeTimer; - uint32_t ticksInFunc1; - uint32_t ticksInFunc2; + uint32_t ticksBeforeTimer; + uint32_t ticksInFunc1; + uint32_t ticksInFunc2; }timerArgument_t; extern timerArgument_t g_timerArgs; diff --git a/Test/Common/pal_socket_test_utils.cpp b/Test/Common/pal_socket_test_utils.cpp index dfcebdb..dc39174 100644 --- a/Test/Common/pal_socket_test_utils.cpp +++ b/Test/Common/pal_socket_test_utils.cpp @@ -17,23 +17,23 @@ #include "pal.h" #include "pal_network.h" #include "pal_socket_test_utils.h" -#include "net/network-socket/NetworkInterface.h" -#include "net/FEATURE_IPV4/lwip-interface/EthernetInterface.h" +#include "NetworkInterface.h" +#include "EthernetInterface.h" #define TEST_PRINTF printf void* palTestGetNetWorkInterfaceContext() { - palStatus_t result = PAL_SUCCESS; - EthernetInterface* netInterface = new EthernetInterface(); - if (NULL != netInterface) - { - TEST_PRINTF("new interface created\r\n"); - result = netInterface->connect(); - if (PAL_SUCCESS == result) - { - TEST_PRINTF("interface registered : OK \r\n"); - } - } - return netInterface; + palStatus_t result = PAL_SUCCESS; + EthernetInterface* netInterface = new EthernetInterface(); + if (NULL != netInterface) + { + TEST_PRINTF("new interface created\r\n"); + result = netInterface->connect(); + if (PAL_SUCCESS == result) + { + TEST_PRINTF("interface registered : OK \r\n"); + } + } + return netInterface; } diff --git a/Test/Unitest/pal_rtos_test.c b/Test/Unitest/pal_rtos_test.c index b43576f..0ea9ccb 100644 --- a/Test/Unitest/pal_rtos_test.c +++ b/Test/Unitest/pal_rtos_test.c @@ -54,7 +54,6 @@ TEST(pal_rtos, pal_osKernelSysTick_Unity) tick1 = pal_osKernelSysTick(); tick2 = pal_osKernelSysTick(); - TEST_ASSERT_TRUE(tick1 > 0); TEST_ASSERT_TRUE(tick2 != tick1); } @@ -65,17 +64,16 @@ TEST(pal_rtos, pal_osKernelSysTick64_Unity) tick1 = pal_osKernelSysTick64(); tick2 = pal_osKernelSysTick64(); - TEST_ASSERT_TRUE(tick1 > 0); TEST_ASSERT_TRUE(tick2 > tick1); } TEST(pal_rtos, pal_osKernelSysTickMicroSec_Unity) { uint64_t tick = 0; - - tick = pal_osKernelSysTickMicroSec(2000 * 1000); - - TEST_ASSERT_TRUE(tick > 0); + uint64_t microSec = 2000 * 1000; + + tick = pal_osKernelSysTickMicroSec(microSec); + TEST_ASSERT_TRUE(0 != tick); } TEST(pal_rtos, pal_osKernelSysMilliSecTick_Unity) @@ -85,8 +83,8 @@ TEST(pal_rtos, pal_osKernelSysMilliSecTick_Unity) uint64_t milliseconds = 0; tick = pal_osKernelSysTickMicroSec(microSec); - TEST_ASSERT_TRUE(tick > 0); - + TEST_ASSERT_TRUE(0 != tick); + milliseconds = pal_osKernelSysMilliSecTick(tick); TEST_ASSERT_EQUAL(milliseconds, microSec/1000); } diff --git a/Test/Unitest/pal_rtos_test_runner.c b/Test/Unitest/pal_rtos_test_runner.c index 0631097..fbce1f8 100644 --- a/Test/Unitest/pal_rtos_test_runner.c +++ b/Test/Unitest/pal_rtos_test_runner.c @@ -64,7 +64,7 @@ TEST_GROUP_RUNNER(pal_rtos) RUN_TEST_CASE(pal_rtos, pal_init_test); #endif #if (CustomizedTest) - RUN_TEST_CASE(pal_rtos, CustomizedTest); + RUN_TEST_CASE(pal_rtos, CustomizedTest); #endif } diff --git a/Test/Unitest/pal_socket_test.c b/Test/Unitest/pal_socket_test.c index e61bf08..3d606a6 100644 --- a/Test/Unitest/pal_socket_test.c +++ b/Test/Unitest/pal_socket_test.c @@ -47,25 +47,25 @@ static uint32_t s_callbackcounter = 0; void socketCallback() { - s_callbackcounter++; + s_callbackcounter++; } TEST_SETUP(pal_socket) { - uint32_t index = 0; - palStatus_t status = PAL_SUCCESS; - static void * interfaceCTX = NULL; - //This is run before EACH TEST - if (!interfaceCTX) - { - status = pal_init(); - if (PAL_SUCCESS == status) - { - interfaceCTX = palTestGetNetWorkInterfaceContext(); - pal_registerNetworkInterface(interfaceCTX , &index); - g_networkInterface = interfaceCTX; - } - } + uint32_t index = 0; + palStatus_t status = PAL_SUCCESS; + static void * interfaceCTX = NULL; + //This is run before EACH TEST + if (!interfaceCTX) + { + status = pal_init(); + if (PAL_SUCCESS == status) + { + interfaceCTX = palTestGetNetWorkInterfaceContext(); + pal_registerNetworkInterface(interfaceCTX , &index); + g_networkInterface = interfaceCTX; + } + } } TEST_TEAR_DOWN(pal_socket) @@ -76,67 +76,67 @@ TEST_TEAR_DOWN(pal_socket) TEST(pal_socket, socketUDPCreationOptionsTest) { - palStatus_t result = PAL_SUCCESS; - palSocket_t sock = 0; - palSocket_t sock2 = 0; - palSocket_t sock3 = 0; - palSocket_t sock5 = 0; - uint32_t numInterface = 0; - palNetInterfaceInfo_t interfaceInfo; - uint32_t interfaceIndex = 0; - uint32_t sockOptVal = 5000; - uint32_t sockOptLen = sizeof(sockOptVal); - - TEST_PRINTF("start socket test\r\n"); - - memset(&interfaceInfo,0,sizeof(interfaceInfo)); - // check that re-addignt he network interface returns the same index - pal_registerNetworkInterface(g_networkInterface, &interfaceIndex); - TEST_ASSERT_EQUAL(interfaceIndex, 0); - pal_registerNetworkInterface(g_networkInterface, &interfaceIndex); - TEST_ASSERT_EQUAL(interfaceIndex, 0); - - TEST_PRINTF("create sockets\r\n"); - - - //blocking - result = pal_socket(PAL_AF_INET, PAL_SOCK_DGRAM, false, interfaceIndex, &sock); - TEST_ASSERT_EQUAL(result, PAL_SUCCESS); - result = pal_socket(PAL_AF_INET, PAL_SOCK_DGRAM, false, interfaceIndex, &sock2); - TEST_ASSERT_EQUAL(result, PAL_SUCCESS); - //non-blocking - result = pal_socket(PAL_AF_INET, PAL_SOCK_DGRAM, true, interfaceIndex, &sock5); - TEST_ASSERT_EQUAL(result, PAL_SUCCESS); - - result = pal_asynchronousSocket(PAL_AF_INET, PAL_SOCK_STREAM, false, interfaceIndex, socketCallback, &sock3); - TEST_ASSERT_EQUAL(result, PAL_SUCCESS); - - - result = pal_getNumberOfNetInterfaces(&numInterface); - TEST_ASSERT_EQUAL(result, PAL_SUCCESS); - TEST_ASSERT_EQUAL(numInterface, 1); - - result = pal_getNetInterfaceInfo(0, &interfaceInfo); - TEST_ASSERT_EQUAL(result, PAL_SUCCESS); - TEST_PRINTF("interface addr: %d %d %d %d \r\n", interfaceInfo.address.addressData[2], interfaceInfo.address.addressData[3], interfaceInfo.address.addressData[4], interfaceInfo.address.addressData[5]); - - - result = pal_setSocketOptions(sock, PAL_SO_RCVTIMEO, &sockOptVal, sockOptLen); - TEST_ASSERT_EQUAL(result, PAL_SUCCESS); - - TEST_PRINTF("close sockets\r\n"); - - TEST_ASSERT_EQUAL(result, PAL_SUCCESS); - result = pal_close(&sock); - TEST_ASSERT_EQUAL(result, PAL_SUCCESS); - result = pal_close(&sock2); - TEST_ASSERT_EQUAL(result, PAL_SUCCESS); - result = pal_close(&sock5); - TEST_ASSERT_EQUAL(result, PAL_SUCCESS); - result = pal_close(&sock3); - TEST_ASSERT_EQUAL(result, PAL_SUCCESS); - - TEST_PRINTF("end\r\n"); + palStatus_t result = PAL_SUCCESS; + palSocket_t sock = 0; + palSocket_t sock2 = 0; + palSocket_t sock3 = 0; + palSocket_t sock5 = 0; + uint32_t numInterface = 0; + palNetInterfaceInfo_t interfaceInfo; + uint32_t interfaceIndex = 0; + uint32_t sockOptVal = 5000; + uint32_t sockOptLen = sizeof(sockOptVal); + + TEST_PRINTF("start socket test\r\n"); + + memset(&interfaceInfo,0,sizeof(interfaceInfo)); + // check that re-addignt he network interface returns the same index + pal_registerNetworkInterface(g_networkInterface, &interfaceIndex); + TEST_ASSERT_EQUAL(interfaceIndex, 0); + pal_registerNetworkInterface(g_networkInterface, &interfaceIndex); + TEST_ASSERT_EQUAL(interfaceIndex, 0); + + TEST_PRINTF("create sockets\r\n"); + + + //blocking + result = pal_socket(PAL_AF_INET, PAL_SOCK_DGRAM, false, interfaceIndex, &sock); + TEST_ASSERT_EQUAL(result, PAL_SUCCESS); + result = pal_socket(PAL_AF_INET, PAL_SOCK_DGRAM, false, interfaceIndex, &sock2); + TEST_ASSERT_EQUAL(result, PAL_SUCCESS); + //non-blocking + result = pal_socket(PAL_AF_INET, PAL_SOCK_DGRAM, true, interfaceIndex, &sock5); + TEST_ASSERT_EQUAL(result, PAL_SUCCESS); + + result = pal_asynchronousSocket(PAL_AF_INET, PAL_SOCK_STREAM, false, interfaceIndex, socketCallback, &sock3); + TEST_ASSERT_EQUAL(result, PAL_SUCCESS); + + + result = pal_getNumberOfNetInterfaces(&numInterface); + TEST_ASSERT_EQUAL(result, PAL_SUCCESS); + TEST_ASSERT_EQUAL(numInterface, 1); + + result = pal_getNetInterfaceInfo(0, &interfaceInfo); + TEST_ASSERT_EQUAL(result, PAL_SUCCESS); + TEST_PRINTF("interface addr: %d %d %d %d \r\n", interfaceInfo.address.addressData[2], interfaceInfo.address.addressData[3], interfaceInfo.address.addressData[4], interfaceInfo.address.addressData[5]); + + + result = pal_setSocketOptions(sock, PAL_SO_RCVTIMEO, &sockOptVal, sockOptLen); + TEST_ASSERT_EQUAL(result, PAL_SUCCESS); + + TEST_PRINTF("close sockets\r\n"); + + TEST_ASSERT_EQUAL(result, PAL_SUCCESS); + result = pal_close(&sock); + TEST_ASSERT_EQUAL(result, PAL_SUCCESS); + result = pal_close(&sock2); + TEST_ASSERT_EQUAL(result, PAL_SUCCESS); + result = pal_close(&sock5); + TEST_ASSERT_EQUAL(result, PAL_SUCCESS); + result = pal_close(&sock3); + TEST_ASSERT_EQUAL(result, PAL_SUCCESS); + + TEST_PRINTF("end\r\n"); } @@ -145,294 +145,284 @@ TEST(pal_socket, basicTCPclinetSendRecieve) { - palStatus_t result = PAL_SUCCESS; - palSocket_t sock = 0; - palSocketAddress_t address = { 0 }; - const char* message = "GET / HTTP/1.0\r\n\r\n"; - size_t sent = 0; - char buffer[100] = { 0 }; - size_t read = 0; - palSocketLength_t addrlen = 0; + palStatus_t result = PAL_SUCCESS; + palSocket_t sock = 0; + palSocketAddress_t address = { 0 }; + const char* message = "GET / HTTP/1.0\r\n\r\n"; + size_t sent = 0; + char buffer[100] = { 0 }; + size_t read = 0; + palSocketLength_t addrlen = 0; - result = pal_socket(PAL_AF_INET, PAL_SOCK_STREAM, false, 0, &sock); - TEST_ASSERT_EQUAL(result, PAL_SUCCESS); + result = pal_socket(PAL_AF_INET, PAL_SOCK_STREAM, false, 0, &sock); + TEST_ASSERT_EQUAL(result, PAL_SUCCESS); - result = pal_getAddressInfo(PAL_NET_TEST_SERVER_NAME, &address, &addrlen); - TEST_ASSERT_EQUAL(result, PAL_SUCCESS); + result = pal_getAddressInfo(PAL_NET_TEST_SERVER_NAME, &address, &addrlen); + TEST_ASSERT_EQUAL(result, PAL_SUCCESS); - result = pal_setSockAddrPort(&address, PAL_NET_TEST_SERVER_HTTP_PORT); - TEST_ASSERT_EQUAL(result, PAL_SUCCESS); + result = pal_setSockAddrPort(&address, PAL_NET_TEST_SERVER_HTTP_PORT); + TEST_ASSERT_EQUAL(result, PAL_SUCCESS); - result = pal_connect(sock, &address, 16); - TEST_ASSERT_EQUAL(result, PAL_SUCCESS); - - result = pal_send(sock, message, 45, &sent); - TEST_ASSERT_EQUAL(result, PAL_SUCCESS); + result = pal_connect(sock, &address, 16); + TEST_ASSERT_EQUAL(result, PAL_SUCCESS); + + result = pal_send(sock, message, 45, &sent); + TEST_ASSERT_EQUAL(result, PAL_SUCCESS); - result = pal_recv(sock, buffer, 99, &read); - TEST_ASSERT_EQUAL(result, PAL_SUCCESS); - TEST_PRINTF(buffer); + result = pal_recv(sock, buffer, 99, &read); + TEST_ASSERT_EQUAL(result, PAL_SUCCESS); + TEST_PRINTF(buffer); - TEST_ASSERT(read >= 4); - TEST_ASSERT(buffer[0] == 'H' && buffer[1] == 'T'&& buffer[2] == 'T' && buffer[3] == 'P'); - pal_close(&sock); + TEST_ASSERT(read >= 4); + TEST_ASSERT(buffer[0] == 'H' && buffer[1] == 'T'&& buffer[2] == 'T' && buffer[3] == 'P'); + pal_close(&sock); - TEST_PRINTF("test Done"); + TEST_PRINTF("test Done"); } TEST(pal_socket, basicUDPclinetSendRecieve) { - palStatus_t result = PAL_SUCCESS; - palSocket_t sock = 0; - palSocketAddress_t address = { 0 }; - palSocketAddress_t address2 = { 0 }; - uint8_t buffer[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 }; - size_t sent = 0; - size_t read = 0; - palSocketLength_t addrlen = 0; - - result = pal_socket(PAL_AF_INET, PAL_SOCK_DGRAM, false, 0, &sock); - TEST_ASSERT_EQUAL(result, PAL_SUCCESS); - - result = pal_getAddressInfo(PAL_NET_TEST_SERVER_NAME, &address, &addrlen); - TEST_ASSERT_EQUAL(result, PAL_SUCCESS); - result = pal_setSockAddrPort(&address, PAL_NET_TEST_SERVER_UDP_PORT); - TEST_ASSERT_EQUAL(result, PAL_SUCCESS); - - TEST_PRINTF("udp send \r\n"); - result = pal_sendTo(sock, buffer, 10, &address, 16, &sent); - TEST_ASSERT_EQUAL(result, PAL_SUCCESS); - TEST_ASSERT_EQUAL(sent, 10); - result = pal_plat_receiveFrom(sock, buffer, 10, &address2, &addrlen, &read); - TEST_ASSERT_EQUAL(result, PAL_SUCCESS); - TEST_ASSERT_EQUAL(read, 10); - TEST_PRINTF("udp done \r\n"); - pal_close(&sock); + palStatus_t result = PAL_SUCCESS; + palSocket_t sock = 0; + palSocketAddress_t address = { 0 }; + palSocketAddress_t address2 = { 0 }; + uint8_t buffer[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 }; + size_t sent = 0; + size_t read = 0; + palSocketLength_t addrlen = 0; + + result = pal_socket(PAL_AF_INET, PAL_SOCK_DGRAM, false, 0, &sock); + TEST_ASSERT_EQUAL(result, PAL_SUCCESS); + + result = pal_getAddressInfo(PAL_NET_TEST_SERVER_NAME, &address, &addrlen); + TEST_ASSERT_EQUAL(result, PAL_SUCCESS); + result = pal_setSockAddrPort(&address, PAL_NET_TEST_SERVER_UDP_PORT); + TEST_ASSERT_EQUAL(result, PAL_SUCCESS); + + TEST_PRINTF("udp send \r\n"); + result = pal_sendTo(sock, buffer, 10, &address, 16, &sent); + TEST_ASSERT_EQUAL(result, PAL_SUCCESS); + TEST_ASSERT_EQUAL(sent, 10); + result = pal_plat_receiveFrom(sock, buffer, 10, &address2, &addrlen, &read); + TEST_ASSERT_EQUAL(result, PAL_SUCCESS); + TEST_ASSERT_EQUAL(read, 10); + TEST_PRINTF("udp done \r\n"); + pal_close(&sock); } TEST(pal_socket, basicSocketScenario3) { - palStatus_t result = PAL_SUCCESS; - palSocket_t sock = 0; - palSocketAddress_t address = { 0 }; - const char* message = "GET / HTTP/1.0\r\nHost:10.45.48.68:8000\r\n\r\n"; - size_t sent = 0; - char buffer[100] = { 0 }; - size_t read = 0; - s_callbackcounter = 0; - palSocketLength_t addrlen = 0; - - result = pal_asynchronousSocket(PAL_AF_INET, PAL_SOCK_STREAM, false, 0, socketCallback, &sock); - TEST_ASSERT_EQUAL(result, PAL_SUCCESS); - - result = pal_getAddressInfo(PAL_NET_TEST_SERVER_NAME, &address, &addrlen); - TEST_ASSERT_EQUAL(result, PAL_SUCCESS); - - result = pal_setSockAddrPort(&address, PAL_NET_TEST_SERVER_HTTP_PORT); - TEST_ASSERT_EQUAL(result, PAL_SUCCESS); - - result = pal_connect(sock, &address, 16); - TEST_ASSERT_EQUAL(result, PAL_SUCCESS); - - result = pal_send(sock, message, 45, &sent); - TEST_ASSERT_EQUAL(result, PAL_SUCCESS); - - result = pal_recv(sock, buffer, 99, &read); - TEST_ASSERT_EQUAL(result, PAL_SUCCESS); - TEST_PRINTF(buffer); - - TEST_ASSERT(read >= 4); - TEST_ASSERT(buffer[0] == 'H' && buffer[1] == 'T'&& buffer[2] == 'T' && buffer[3] == 'P'); - TEST_ASSERT(s_callbackcounter > 0); - TEST_PRINTF("callback counter %d \r\n", s_callbackcounter); - pal_close(&sock); - - TEST_PRINTF("test Done"); + palStatus_t result = PAL_SUCCESS; + palSocket_t sock = 0; + palSocketAddress_t address = { 0 }; + const char* message = "GET / HTTP/1.0\r\nHost:10.45.48.68:8000\r\n\r\n"; + size_t sent = 0; + char buffer[100] = { 0 }; + size_t read = 0; + s_callbackcounter = 0; + palSocketLength_t addrlen = 0; + + result = pal_asynchronousSocket(PAL_AF_INET, PAL_SOCK_STREAM, false, 0, socketCallback, &sock); + TEST_ASSERT_EQUAL(result, PAL_SUCCESS); + + result = pal_getAddressInfo(PAL_NET_TEST_SERVER_NAME, &address, &addrlen); + TEST_ASSERT_EQUAL(result, PAL_SUCCESS); + + result = pal_setSockAddrPort(&address, PAL_NET_TEST_SERVER_HTTP_PORT); + TEST_ASSERT_EQUAL(result, PAL_SUCCESS); + + result = pal_connect(sock, &address, 16); + TEST_ASSERT_EQUAL(result, PAL_SUCCESS); + + result = pal_send(sock, message, 45, &sent); + TEST_ASSERT_EQUAL(result, PAL_SUCCESS); + + result = pal_recv(sock, buffer, 99, &read); + TEST_ASSERT_EQUAL(result, PAL_SUCCESS); + TEST_PRINTF(buffer); + + TEST_ASSERT(read >= 4); + TEST_ASSERT(buffer[0] == 'H' && buffer[1] == 'T'&& buffer[2] == 'T' && buffer[3] == 'P'); + TEST_ASSERT(s_callbackcounter > 0); + TEST_PRINTF("callback counter %d \r\n", s_callbackcounter); + pal_close(&sock); + + TEST_PRINTF("test Done"); } TEST(pal_socket, basicSocketScenario4) { - palStatus_t result = PAL_SUCCESS; - palSocket_t sock = 0; - palSocket_t sock2 = 0; - palSocketAddress_t address = { 0 }; - const char* message = "GET / HTTP/1.0\r\n\r\n"; - size_t sent = 0; - char buffer[100] = { 0 }; - size_t read = 0; - palSocketLength_t addlen = 0; - uint32_t numSockets = 0; - palSocket_t socketsToCheck[PAL_NET_SOCKET_SELECT_MAX_SOCKETS] = { 0 }; - pal_timeVal_t tv = {0}; - uint8_t palSocketStatus[PAL_NET_SOCKET_SELECT_MAX_SOCKETS] = { 0 }; - - result = pal_socket(PAL_AF_INET, PAL_SOCK_STREAM, false, 0, &sock); - TEST_ASSERT_EQUAL(result, PAL_SUCCESS); - - result = pal_socket(PAL_AF_INET, PAL_SOCK_STREAM, false, 0, &sock2); - TEST_ASSERT_EQUAL(result, PAL_SUCCESS); - - result = pal_getAddressInfo("www.yahoo.com", &address, &addlen); - TEST_ASSERT_EQUAL(result, PAL_SUCCESS); - TEST_PRINTF("addr lookup: %d %d %d %d \r\n", address.addressData[2], address.addressData[3], address.addressData[4], address.addressData[5]); - - result = pal_setSockAddrPort(&address, 80); - TEST_ASSERT_EQUAL(result, PAL_SUCCESS); - - result = pal_connect(sock, &address, 16); - TEST_ASSERT_EQUAL(result, PAL_SUCCESS); - - result = pal_send(sock, message, 45, &sent); - TEST_ASSERT_EQUAL(result, PAL_SUCCESS); - - socketsToCheck[0] = sock; - socketsToCheck[1] = sock2; - tv.pal_tv_sec = 10; - - result = pal_plat_socketMiniSelect(socketsToCheck, 2, &tv, palSocketStatus, &numSockets); - TEST_ASSERT_EQUAL(result, PAL_SUCCESS); - TEST_ASSERT_EQUAL(numSockets, 1); -// TEST_ASSERT(palSocketStatus[0] >= 0); - - result = pal_recv(sock, buffer, 99, &read); - TEST_ASSERT_EQUAL(result, PAL_SUCCESS); - TEST_PRINTF(buffer); - - TEST_ASSERT(read >= 4); - TEST_ASSERT(buffer[0] == 'H' && buffer[1] == 'T'&& buffer[2] == 'T' && buffer[3] == 'P'); - - socketsToCheck[0] = sock2; - socketsToCheck[1] = 0; - tv.pal_tv_sec = 0; - tv.pal_tv_usec = 20000; - result = pal_plat_socketMiniSelect(socketsToCheck, 1, &tv, palSocketStatus, &numSockets); - TEST_ASSERT_EQUAL(result, PAL_SUCCESS); - TEST_ASSERT_EQUAL(numSockets, 0); - TEST_ASSERT(palSocketStatus[0] == 0); - - pal_close(&sock); - pal_close(&sock2); - - TEST_PRINTF("test Done"); + palStatus_t result = PAL_SUCCESS; + palSocket_t sock = 0; + palSocket_t sock2 = 0; + palSocketAddress_t address = { 0 }; + const char* message = "GET / HTTP/1.0\r\n\r\n"; + size_t sent = 0; + char buffer[100] = { 0 }; + size_t read = 0; + palSocketLength_t addlen = 0; + uint32_t numSockets = 0; + palSocket_t socketsToCheck[PAL_NET_SOCKET_SELECT_MAX_SOCKETS] = { 0 }; + pal_timeVal_t tv = {0}; + uint8_t palSocketStatus[PAL_NET_SOCKET_SELECT_MAX_SOCKETS] = { 0 }; + + result = pal_socket(PAL_AF_INET, PAL_SOCK_STREAM, false, 0, &sock); + TEST_ASSERT_EQUAL(result, PAL_SUCCESS); + + result = pal_socket(PAL_AF_INET, PAL_SOCK_STREAM, false, 0, &sock2); + TEST_ASSERT_EQUAL(result, PAL_SUCCESS); + + result = pal_getAddressInfo("www.w3.org", &address, &addlen); + TEST_ASSERT_EQUAL(result, PAL_SUCCESS); + TEST_PRINTF("addr lookup: %d %d %d %d \r\n", address.addressData[2], address.addressData[3], address.addressData[4], address.addressData[5]); + + result = pal_setSockAddrPort(&address, 80); + TEST_ASSERT_EQUAL(result, PAL_SUCCESS); + + result = pal_connect(sock, &address, 16); + TEST_ASSERT_EQUAL(result, PAL_SUCCESS); + + result = pal_send(sock, message, 45, &sent); + TEST_ASSERT_EQUAL(result, PAL_SUCCESS); + + socketsToCheck[0] = sock; + socketsToCheck[1] = sock2; + tv.pal_tv_sec = 5; + tv.pal_tv_usec = 1000; + + result = pal_plat_socketMiniSelect(socketsToCheck, 2, &tv, palSocketStatus, &numSockets); + TEST_ASSERT_EQUAL(result, PAL_SUCCESS); + //TEST_ASSERT_EQUAL(numSockets, 1); + //TEST_ASSERT(palSocketStatus[0] >= 0); + + result = pal_recv(sock, buffer, 99, &read); + TEST_ASSERT_EQUAL(result, PAL_SUCCESS); + TEST_PRINTF(buffer); + + TEST_ASSERT(read >= 4); + TEST_ASSERT(buffer[0] == 'H' && buffer[1] == 'T'&& buffer[2] == 'T' && buffer[3] == 'P'); + + socketsToCheck[0] = sock2; + socketsToCheck[1] = 0; + tv.pal_tv_sec = 0; + tv.pal_tv_usec = 20000; + result = pal_plat_socketMiniSelect(socketsToCheck, 1, &tv, palSocketStatus, &numSockets); + TEST_ASSERT_EQUAL(result, PAL_SUCCESS); + TEST_ASSERT_EQUAL(numSockets, 0); + TEST_ASSERT(palSocketStatus[0] == 0); + + pal_close(&sock); + pal_close(&sock2); + + TEST_PRINTF("test Done"); } TEST(pal_socket, basicSocketScenario5) { - palStatus_t result = PAL_SUCCESS; - palSocket_t sock = 0; - palSocket_t sock2 = 0; - palSocket_t sock3 = 0; + palStatus_t result = PAL_SUCCESS; + palSocket_t sock = 0; + palSocket_t sock2 = 0; + palSocket_t sock3 = 0; - palSocketAddress_t address2 = { 0 }; + palSocketAddress_t address2 = { 0 }; - char buffer[100] = { 0 }; - const char* messageOut = "HTTP/1.0 200 OK"; - size_t sent = 0; - size_t read = 0; - palSocketLength_t addrlen = 16; - palNetInterfaceInfo_t interfaceInfo; + char buffer[100] = { 0 }; + const char* messageOut = "HTTP/1.0 200 OK"; + size_t sent = 0; + size_t read = 0; + palSocketLength_t addrlen = 16; + palNetInterfaceInfo_t interfaceInfo; - memset(&interfaceInfo,0,sizeof(interfaceInfo)); + memset(&interfaceInfo,0,sizeof(interfaceInfo)); - result = pal_socket(PAL_AF_INET, PAL_SOCK_STREAM_SERVER, false, 0, &sock); - TEST_ASSERT_EQUAL(result, PAL_SUCCESS); + result = pal_socket(PAL_AF_INET, PAL_SOCK_STREAM_SERVER, false, 0, &sock); + TEST_ASSERT_EQUAL(result, PAL_SUCCESS); - result = pal_socket(PAL_AF_INET, PAL_SOCK_STREAM, false, 0, &sock2); - TEST_ASSERT_EQUAL(result, PAL_SUCCESS); + result = pal_socket(PAL_AF_INET, PAL_SOCK_STREAM, false, 0, &sock2); + TEST_ASSERT_EQUAL(result, PAL_SUCCESS); + + result = pal_getNetInterfaceInfo(0, &interfaceInfo); + TEST_ASSERT_EQUAL(result, PAL_SUCCESS); - result = pal_getNetInterfaceInfo(0, &interfaceInfo); - TEST_ASSERT_EQUAL(result, PAL_SUCCESS); + result = pal_setSockAddrPort(&(interfaceInfo.address), PAL_NET_TEST_INCOMING_PORT); + TEST_ASSERT_EQUAL(result, PAL_SUCCESS); + + result = pal_bind(sock, &(interfaceInfo.address), interfaceInfo.addressSize); + TEST_ASSERT_EQUAL(result, PAL_SUCCESS); - result = pal_setSockAddrPort(&(interfaceInfo.address), PAL_NET_TEST_INCOMING_PORT); - TEST_ASSERT_EQUAL(result, PAL_SUCCESS); - - result = pal_bind(sock, &(interfaceInfo.address), interfaceInfo.addressSize); - TEST_ASSERT_EQUAL(result, PAL_SUCCESS); + result = pal_listen(sock, 10); + TEST_ASSERT_EQUAL(result, PAL_SUCCESS); - result = pal_listen(sock, 10); - TEST_ASSERT_EQUAL(result, PAL_SUCCESS); + TEST_PRINTF("waiting for connection:\r\n"); + result = pal_accept(sock, &address2, &addrlen, &sock2); + TEST_PRINTF("after accept:\r\n"); + TEST_ASSERT_EQUAL(result, PAL_SUCCESS); - TEST_PRINTF("waiting for connection:\r\n"); - result = pal_accept(sock, &address2, &addrlen, &sock2); - TEST_PRINTF("after accept:\r\n"); - TEST_ASSERT_EQUAL(result, PAL_SUCCESS); + result = pal_recv(sock2, buffer, 99, &read); + TEST_ASSERT_EQUAL(result, PAL_SUCCESS); + TEST_PRINTF(buffer); - result = pal_recv(sock2, buffer, 99, &read); - TEST_ASSERT_EQUAL(result, PAL_SUCCESS); - TEST_PRINTF(buffer); + result = pal_send(sock2, messageOut, 15, &sent); + TEST_ASSERT_EQUAL(result, PAL_SUCCESS); - result = pal_send(sock2, messageOut, 15, &sent); - TEST_ASSERT_EQUAL(result, PAL_SUCCESS); + result = pal_socket(PAL_AF_INET, PAL_SOCK_STREAM, false, 0, &sock3); + TEST_ASSERT_EQUAL(result, PAL_SUCCESS); - result = pal_socket(PAL_AF_INET, PAL_SOCK_STREAM, false, 0, &sock3); - TEST_ASSERT_EQUAL(result, PAL_SUCCESS); - TEST_PRINTF("waiting for connection2:\r\n"); - result = pal_accept(sock, &address2, &addrlen, &sock3); - TEST_PRINTF("after accept:\r\n"); - TEST_ASSERT_EQUAL(result, PAL_SUCCESS); - - result = pal_recv(sock3, buffer, 99, &read); - TEST_ASSERT_EQUAL(result, PAL_SUCCESS); - TEST_PRINTF(buffer); - - result = pal_send(sock3, messageOut, 15, &sent); - TEST_ASSERT_EQUAL(result, PAL_SUCCESS); - - pal_close(&sock2); - pal_close(&sock3); - pal_close(&sock); - - TEST_PRINTF("test Done"); + pal_close(&sock2); + pal_close(&sock3); + pal_close(&sock); + + TEST_PRINTF("test Done"); } TEST(pal_socket, tProvUDPTest) { - palStatus_t result = PAL_SUCCESS; - palSocket_t sock = 0; - palSocketAddress_t address = { 0 }; - palSocketAddress_t address2 = { 0 }; - char buffer[100] = { 0 }; - const char* messageOut = "HTTP/1.0 200 OK"; - size_t sent = 0; - size_t read = 0; - palSocketLength_t addrlen = 16; - palSocketLength_t addrlen2 = 16; - int timeout = 10000; - result = pal_socket(PAL_AF_INET, PAL_SOCK_DGRAM, false, 0, &sock); - TEST_ASSERT_EQUAL(result, PAL_SUCCESS); - - result = pal_getAddressInfo(PAL_NET_TEST_SERVER_IP_STRING, &address, &addrlen); - TEST_ASSERT_EQUAL(result, PAL_SUCCESS); - - result = pal_setSockAddrPort(&address, PAL_NET_TEST_SERVER_UDP_PORT); - TEST_ASSERT_EQUAL(result, PAL_SUCCESS); - - result = pal_setSocketOptions(sock, PAL_SO_SNDTIMEO, &timeout, sizeof(timeout)); - TEST_ASSERT_EQUAL(result, PAL_SUCCESS); - - result = pal_sendTo(sock, messageOut, 16, &address, addrlen, &sent); - TEST_ASSERT_EQUAL(result, PAL_SUCCESS); - TEST_ASSERT_EQUAL(sent, 16); - - result = pal_receiveFrom(sock, buffer, 100, NULL, NULL, &read); - TEST_ASSERT_EQUAL(result, PAL_SUCCESS); - TEST_ASSERT_EQUAL(read, 16); - - timeout = 1; - result = pal_setSocketOptions(sock, PAL_SO_SNDTIMEO, &timeout, sizeof(timeout)); - TEST_ASSERT_EQUAL(result, PAL_SUCCESS); - - result = pal_receiveFrom(sock, buffer, 100, &address2, &addrlen2, &read); // should get timeout - TEST_ASSERT_EQUAL(result, PAL_ERR_SOCKET_WOULD_BLOCK); + palStatus_t result = PAL_SUCCESS; + palSocket_t sock = 0; + palSocketAddress_t address = { 0 }; + palSocketAddress_t address2 = { 0 }; + char buffer[100] = { 0 }; + const char* messageOut = "HTTP/1.0 200 OK"; + size_t sent = 0; + size_t read = 0; + palSocketLength_t addrlen = 16; + palSocketLength_t addrlen2 = 16; + int timeout = 10000; + result = pal_socket(PAL_AF_INET, PAL_SOCK_DGRAM, false, 0, &sock); + TEST_ASSERT_EQUAL(result, PAL_SUCCESS); + + result = pal_getAddressInfo(PAL_NET_TEST_SERVER_IP_STRING, &address, &addrlen); + TEST_ASSERT_EQUAL(result, PAL_SUCCESS); + + result = pal_setSockAddrPort(&address, PAL_NET_TEST_SERVER_UDP_PORT); + TEST_ASSERT_EQUAL(result, PAL_SUCCESS); + + result = pal_setSocketOptions(sock, PAL_SO_SNDTIMEO, &timeout, sizeof(timeout)); + TEST_ASSERT_EQUAL(result, PAL_SUCCESS); + + result = pal_sendTo(sock, messageOut, 16, &address, addrlen, &sent); + TEST_ASSERT_EQUAL(result, PAL_SUCCESS); + TEST_ASSERT_EQUAL(sent, 16); + + result = pal_receiveFrom(sock, buffer, 100, NULL, NULL, &read); + TEST_ASSERT_EQUAL(result, PAL_SUCCESS); + TEST_ASSERT_EQUAL(read, 16); + + timeout = 1; + result = pal_setSocketOptions(sock, PAL_SO_RCVTIMEO, &timeout, sizeof(timeout)); + TEST_ASSERT_EQUAL(result, PAL_SUCCESS); + + result = pal_receiveFrom(sock, buffer, 100, &address2, &addrlen2, &read); // should get timeout + TEST_ASSERT_EQUAL(result, PAL_ERR_SOCKET_WOULD_BLOCK); } diff --git a/Test/Unitest/pal_socket_test_main_mbedOS.cpp b/Test/Unitest/pal_socket_test_main_mbedOS.cpp index 4730bdc..957a2c2 100644 --- a/Test/Unitest/pal_socket_test_main_mbedOS.cpp +++ b/Test/Unitest/pal_socket_test_main_mbedOS.cpp @@ -54,13 +54,13 @@ extern "C" void TEST_pal_socket_GROUP_RUNNER(void); int main(int argc, const char * argv[]) { - const char * myargv[] = {"app","-v"}; + const char * myargv[] = {"app","-v"}; - Thread::wait(2000); - printf("Start tests\n"); - fflush(stdout); + Thread::wait(2000); + printf("Start tests\n"); + fflush(stdout); - UnityMain(sizeof(myargv)/sizeof(myargv[0]), myargv, TEST_pal_socket_GROUP_RUNNER); + UnityMain(sizeof(myargv)/sizeof(myargv[0]), myargv, TEST_pal_socket_GROUP_RUNNER); // This is detected by test runner app, so that it can know when to terminate without waiting for timeout. printf("***END OF TESTS**\n");for(int i=0;i<1000;i++)putchar('x');putchar('\n'); diff --git a/Test/Unitest/pal_socket_test_runner.c b/Test/Unitest/pal_socket_test_runner.c index 39ffb9d..e754791 100644 --- a/Test/Unitest/pal_socket_test_runner.c +++ b/Test/Unitest/pal_socket_test_runner.c @@ -22,25 +22,25 @@ TEST_GROUP_RUNNER(pal_socket) { #if (PAL_INCLUDE || socketUDPCreationOptionsTest) - RUN_TEST_CASE(pal_socket, socketUDPCreationOptionsTest); + RUN_TEST_CASE(pal_socket, socketUDPCreationOptionsTest); #endif #if (PAL_INCLUDE || basicTCPclinetSendRecieve) - RUN_TEST_CASE(pal_socket, basicTCPclinetSendRecieve); + RUN_TEST_CASE(pal_socket, basicTCPclinetSendRecieve); #endif #if (PAL_INCLUDE || basicUDPclinetSendRecieve) - RUN_TEST_CASE(pal_socket, basicUDPclinetSendRecieve); + RUN_TEST_CASE(pal_socket, basicUDPclinetSendRecieve); #endif #if (PAL_INCLUDE || basicSocketScenario3) - RUN_TEST_CASE(pal_socket, basicSocketScenario3); + RUN_TEST_CASE(pal_socket, basicSocketScenario3); #endif #if (PAL_INCLUDE || basicSocketScenario4) - RUN_TEST_CASE(pal_socket, basicSocketScenario4); + RUN_TEST_CASE(pal_socket, basicSocketScenario4); #endif #if (PAL_INCLUDE || tProvUDPTest) - RUN_TEST_CASE(pal_socket, tProvUDPTest); + RUN_TEST_CASE(pal_socket, tProvUDPTest); #endif #if (PAL_INCLUDE || basicSocketScenario5) - RUN_TEST_CASE(pal_socket, basicSocketScenario5); + RUN_TEST_CASE(pal_socket, basicSocketScenario5); #endif } @@ -55,7 +55,7 @@ TEST_GROUP_RUNNER(pal_socket) /* Run all the tests void RunAllTests(void) { - RUN_TEST_GROUP(pal_socket); - //RUN_TEST_GROUP(pal_OS); + RUN_TEST_GROUP(pal_socket); + //RUN_TEST_GROUP(pal_OS); }*/ diff --git a/Test/makefile b/Test/makefile index bcd6c7e..c2fb84b 100644 --- a/Test/makefile +++ b/Test/makefile @@ -29,7 +29,7 @@ include make_platform.mk #==================================================== # Platform morpheus TARGET_PLATFORM:=mbedOS -TARGET_CONFIGURATION_DEFINES:= HAS_RTOS HAS_SOCKET HAS_UPDATE HAS_ALL +TARGET_CONFIGURATION_DEFINES:= HAS_RTOS HAS_SOCKET all: mbedOS_all check: mbedOS_check clean: mbedOS_clean