]> git.proxmox.com Git - mirror_edk2.git/blobdiff - NetworkPkg/Ip6Dxe/Ip6Mld.c
NetworkPkg: Apply uncrustify changes
[mirror_edk2.git] / NetworkPkg / Ip6Dxe / Ip6Mld.c
index ba12089dee25f4750a9f13ff56ae355b25fc952e..e6b2b653e29570de84914eeb5c531f7c57b5b582 100644 (file)
 **/\r
 IP6_MLD_GROUP *\r
 Ip6CreateMldEntry (\r
-  IN OUT IP6_SERVICE        *IpSb,\r
-  IN EFI_IPv6_ADDRESS       *MulticastAddr,\r
-  IN UINT32                 DelayTimer\r
+  IN OUT IP6_SERVICE   *IpSb,\r
+  IN EFI_IPv6_ADDRESS  *MulticastAddr,\r
+  IN UINT32            DelayTimer\r
   )\r
 {\r
-  IP6_MLD_GROUP             *Entry;\r
+  IP6_MLD_GROUP  *Entry;\r
 \r
   NET_CHECK_SIGNATURE (IpSb, IP6_SERVICE_SIGNATURE);\r
   ASSERT (MulticastAddr != NULL && IP6_IS_MULTICAST (MulticastAddr));\r
@@ -54,12 +54,12 @@ Ip6CreateMldEntry (
 **/\r
 IP6_MLD_GROUP *\r
 Ip6FindMldEntry (\r
-  IN IP6_SERVICE            *IpSb,\r
-  IN EFI_IPv6_ADDRESS       *MulticastAddr\r
+  IN IP6_SERVICE       *IpSb,\r
+  IN EFI_IPv6_ADDRESS  *MulticastAddr\r
   )\r
 {\r
-  LIST_ENTRY                *Entry;\r
-  IP6_MLD_GROUP             *Group;\r
+  LIST_ENTRY     *Entry;\r
+  IP6_MLD_GROUP  *Group;\r
 \r
   NET_CHECK_SIGNATURE (IpSb, IP6_SERVICE_SIGNATURE);\r
   ASSERT (MulticastAddr != NULL && IP6_IS_MULTICAST (MulticastAddr));\r
@@ -88,13 +88,13 @@ Ip6FindMldEntry (
 **/\r
 INTN\r
 Ip6FindMac (\r
-  IN IP6_MLD_SERVICE_DATA   *MldCtrl,\r
-  IN EFI_MAC_ADDRESS        *Mac\r
+  IN IP6_MLD_SERVICE_DATA  *MldCtrl,\r
+  IN EFI_MAC_ADDRESS       *Mac\r
   )\r
 {\r
-  LIST_ENTRY                *Entry;\r
-  IP6_MLD_GROUP             *Group;\r
-  INTN                      Count;\r
+  LIST_ENTRY     *Entry;\r
+  IP6_MLD_GROUP  *Group;\r
+  INTN           Count;\r
 \r
   Count = 0;\r
 \r
@@ -125,20 +125,20 @@ Ip6FindMac (
 **/\r
 EFI_STATUS\r
 Ip6SendMldReport (\r
-  IN IP6_SERVICE            *IpSb,\r
-  IN IP6_INTERFACE          *Interface OPTIONAL,\r
-  IN EFI_IPv6_ADDRESS       *MulticastAddr\r
+  IN IP6_SERVICE       *IpSb,\r
+  IN IP6_INTERFACE     *Interface OPTIONAL,\r
+  IN EFI_IPv6_ADDRESS  *MulticastAddr\r
   )\r
 {\r
-  IP6_MLD_HEAD              *MldHead;\r
-  NET_BUF                   *Packet;\r
-  EFI_IP6_HEADER            Head;\r
-  UINT16                    PayloadLen;\r
-  UINTN                     OptionLen;\r
-  UINT8                     *Options;\r
-  EFI_STATUS                Status;\r
-  UINT16                    HeadChecksum;\r
-  UINT16                    PseudoChecksum;\r
+  IP6_MLD_HEAD    *MldHead;\r
+  NET_BUF         *Packet;\r
+  EFI_IP6_HEADER  Head;\r
+  UINT16          PayloadLen;\r
+  UINTN           OptionLen;\r
+  UINT8           *Options;\r
+  EFI_STATUS      Status;\r
+  UINT16          HeadChecksum;\r
+  UINT16          PseudoChecksum;\r
 \r
   NET_CHECK_SIGNATURE (IpSb, IP6_SERVICE_SIGNATURE);\r
   ASSERT (MulticastAddr != NULL && IP6_IS_MULTICAST (MulticastAddr));\r
@@ -149,11 +149,11 @@ Ip6SendMldReport (
   //\r
 \r
   OptionLen = 0;\r
-  Status = Ip6FillHopByHop (NULL, &OptionLen, IP6_ICMP);\r
+  Status    = Ip6FillHopByHop (NULL, &OptionLen, IP6_ICMP);\r
   ASSERT (Status == EFI_BUFFER_TOO_SMALL);\r
 \r
-  PayloadLen = (UINT16) (OptionLen + sizeof (IP6_MLD_HEAD));\r
-  Packet = NetbufAlloc (sizeof (EFI_IP6_HEADER) + (UINT32) PayloadLen);\r
+  PayloadLen = (UINT16)(OptionLen + sizeof (IP6_MLD_HEAD));\r
+  Packet     = NetbufAlloc (sizeof (EFI_IP6_HEADER) + (UINT32)PayloadLen);\r
   if (Packet == NULL) {\r
     return EFI_OUT_OF_RESOURCES;\r
   }\r
@@ -163,11 +163,11 @@ Ip6SendMldReport (
   // RFC3590: Use link-local address as source address if it is available,\r
   // otherwise use the unspecified address.\r
   //\r
-  Head.FlowLabelL     = 0;\r
-  Head.FlowLabelH     = 0;\r
-  Head.PayloadLength  = HTONS (PayloadLen);\r
-  Head.NextHeader     = IP6_HOP_BY_HOP;\r
-  Head.HopLimit       = 1;\r
+  Head.FlowLabelL    = 0;\r
+  Head.FlowLabelH    = 0;\r
+  Head.PayloadLength = HTONS (PayloadLen);\r
+  Head.NextHeader    = IP6_HOP_BY_HOP;\r
+  Head.HopLimit      = 1;\r
   IP6_COPY_ADDRESS (&Head.DestinationAddress, MulticastAddr);\r
 \r
   //\r
@@ -180,7 +180,7 @@ Ip6SendMldReport (
   //\r
   // Fill a IPv6 Router Alert option in a Hop-by-Hop Options Header\r
   //\r
-  Options = NetbufAllocSpace (Packet, (UINT32) OptionLen, FALSE);\r
+  Options = NetbufAllocSpace (Packet, (UINT32)OptionLen, FALSE);\r
   ASSERT (Options != NULL);\r
   Status = Ip6FillHopByHop (Options, &OptionLen, IP6_ICMP);\r
   if (EFI_ERROR (Status)) {\r
@@ -192,14 +192,14 @@ Ip6SendMldReport (
   //\r
   // Fill in MLD message - Report\r
   //\r
-  MldHead = (IP6_MLD_HEAD *) NetbufAllocSpace (Packet, sizeof (IP6_MLD_HEAD), FALSE);\r
+  MldHead = (IP6_MLD_HEAD *)NetbufAllocSpace (Packet, sizeof (IP6_MLD_HEAD), FALSE);\r
   ASSERT (MldHead != NULL);\r
   ZeroMem (MldHead, sizeof (IP6_MLD_HEAD));\r
   MldHead->Head.Type = ICMP_V6_LISTENER_REPORT;\r
   MldHead->Head.Code = 0;\r
   IP6_COPY_ADDRESS (&MldHead->Group, MulticastAddr);\r
 \r
-  HeadChecksum   = NetblockChecksum ((UINT8 *) MldHead, sizeof (IP6_MLD_HEAD));\r
+  HeadChecksum   = NetblockChecksum ((UINT8 *)MldHead, sizeof (IP6_MLD_HEAD));\r
   PseudoChecksum = NetIp6PseudoHeadChecksum (\r
                      &Head.SourceAddress,\r
                      &Head.DestinationAddress,\r
@@ -229,20 +229,20 @@ Ip6SendMldReport (
 **/\r
 EFI_STATUS\r
 Ip6SendMldDone (\r
-  IN IP6_SERVICE            *IpSb,\r
-  IN EFI_IPv6_ADDRESS       *MulticastAddr\r
+  IN IP6_SERVICE       *IpSb,\r
+  IN EFI_IPv6_ADDRESS  *MulticastAddr\r
   )\r
 {\r
-  IP6_MLD_HEAD              *MldHead;\r
-  NET_BUF                   *Packet;\r
-  EFI_IP6_HEADER            Head;\r
-  UINT16                    PayloadLen;\r
-  UINTN                     OptionLen;\r
-  UINT8                     *Options;\r
-  EFI_STATUS                Status;\r
-  EFI_IPv6_ADDRESS          Destination;\r
-  UINT16                    HeadChecksum;\r
-  UINT16                    PseudoChecksum;\r
+  IP6_MLD_HEAD      *MldHead;\r
+  NET_BUF           *Packet;\r
+  EFI_IP6_HEADER    Head;\r
+  UINT16            PayloadLen;\r
+  UINTN             OptionLen;\r
+  UINT8             *Options;\r
+  EFI_STATUS        Status;\r
+  EFI_IPv6_ADDRESS  Destination;\r
+  UINT16            HeadChecksum;\r
+  UINT16            PseudoChecksum;\r
 \r
   NET_CHECK_SIGNATURE (IpSb, IP6_SERVICE_SIGNATURE);\r
   ASSERT (MulticastAddr != NULL && IP6_IS_MULTICAST (MulticastAddr));\r
@@ -253,11 +253,11 @@ Ip6SendMldDone (
   //\r
 \r
   OptionLen = 0;\r
-  Status = Ip6FillHopByHop (NULL, &OptionLen, IP6_ICMP);\r
+  Status    = Ip6FillHopByHop (NULL, &OptionLen, IP6_ICMP);\r
   ASSERT (Status == EFI_BUFFER_TOO_SMALL);\r
 \r
-  PayloadLen = (UINT16) (OptionLen + sizeof (IP6_MLD_HEAD));\r
-  Packet = NetbufAlloc (sizeof (EFI_IP6_HEADER) + (UINT32) PayloadLen);\r
+  PayloadLen = (UINT16)(OptionLen + sizeof (IP6_MLD_HEAD));\r
+  Packet     = NetbufAlloc (sizeof (EFI_IP6_HEADER) + (UINT32)PayloadLen);\r
   if (Packet == NULL) {\r
     return EFI_OUT_OF_RESOURCES;\r
   }\r
@@ -265,11 +265,11 @@ Ip6SendMldDone (
   //\r
   // Create the basic IPv6 header.\r
   //\r
-  Head.FlowLabelL     = 0;\r
-  Head.FlowLabelH     = 0;\r
-  Head.PayloadLength  = HTONS (PayloadLen);\r
-  Head.NextHeader     = IP6_HOP_BY_HOP;\r
-  Head.HopLimit       = 1;\r
+  Head.FlowLabelL    = 0;\r
+  Head.FlowLabelH    = 0;\r
+  Head.PayloadLength = HTONS (PayloadLen);\r
+  Head.NextHeader    = IP6_HOP_BY_HOP;\r
+  Head.HopLimit      = 1;\r
 \r
   //\r
   // If Link-Local address is not ready, we use unspecified address.\r
@@ -284,7 +284,7 @@ Ip6SendMldDone (
   //\r
   // Fill a IPv6 Router Alert option in a Hop-by-Hop Options Header\r
   //\r
-  Options = NetbufAllocSpace (Packet, (UINT32) OptionLen, FALSE);\r
+  Options = NetbufAllocSpace (Packet, (UINT32)OptionLen, FALSE);\r
   ASSERT (Options != NULL);\r
   Status = Ip6FillHopByHop (Options, &OptionLen, IP6_ICMP);\r
   if (EFI_ERROR (Status)) {\r
@@ -296,14 +296,14 @@ Ip6SendMldDone (
   //\r
   // Fill in MLD message - Done\r
   //\r
-  MldHead = (IP6_MLD_HEAD *) NetbufAllocSpace (Packet, sizeof (IP6_MLD_HEAD), FALSE);\r
+  MldHead = (IP6_MLD_HEAD *)NetbufAllocSpace (Packet, sizeof (IP6_MLD_HEAD), FALSE);\r
   ASSERT (MldHead != NULL);\r
   ZeroMem (MldHead, sizeof (IP6_MLD_HEAD));\r
   MldHead->Head.Type = ICMP_V6_LISTENER_DONE;\r
   MldHead->Head.Code = 0;\r
   IP6_COPY_ADDRESS (&MldHead->Group, MulticastAddr);\r
 \r
-  HeadChecksum   = NetblockChecksum ((UINT8 *) MldHead, sizeof (IP6_MLD_HEAD));\r
+  HeadChecksum   = NetblockChecksum ((UINT8 *)MldHead, sizeof (IP6_MLD_HEAD));\r
   PseudoChecksum = NetIp6PseudoHeadChecksum (\r
                      &Head.SourceAddress,\r
                      &Head.DestinationAddress,\r
@@ -332,12 +332,12 @@ Ip6SendMldDone (
 **/\r
 EFI_STATUS\r
 Ip6InitMld (\r
-  IN IP6_SERVICE            *IpSb\r
+  IN IP6_SERVICE  *IpSb\r
   )\r
 {\r
-  EFI_IPv6_ADDRESS          AllNodes;\r
-  IP6_MLD_GROUP             *Group;\r
-  EFI_STATUS                Status;\r
+  EFI_IPv6_ADDRESS  AllNodes;\r
+  IP6_MLD_GROUP     *Group;\r
+  EFI_STATUS        Status;\r
 \r
   //\r
   // Join the link-scope all-nodes multicast address (FF02::1).\r
@@ -347,7 +347,7 @@ Ip6InitMld (
 \r
   Ip6SetToAllNodeMulticast (FALSE, IP6_LINK_LOCAL_SCOPE, &AllNodes);\r
 \r
-  Group = Ip6CreateMldEntry (IpSb, &AllNodes, (UINT32) IP6_INFINIT_LIFETIME);\r
+  Group = Ip6CreateMldEntry (IpSb, &AllNodes, (UINT32)IP6_INFINIT_LIFETIME);\r
   if (Group == NULL) {\r
     return EFI_OUT_OF_RESOURCES;\r
   }\r
@@ -388,11 +388,11 @@ ERROR:
 **/\r
 EFI_STATUS\r
 Ip6CombineGroups (\r
-  IN OUT IP6_PROTOCOL *IpInstance,\r
-  IN EFI_IPv6_ADDRESS *Group\r
+  IN OUT IP6_PROTOCOL  *IpInstance,\r
+  IN EFI_IPv6_ADDRESS  *Group\r
   )\r
 {\r
-  EFI_IPv6_ADDRESS     *GroupList;\r
+  EFI_IPv6_ADDRESS  *GroupList;\r
 \r
   NET_CHECK_SIGNATURE (IpInstance, IP6_PROTOCOL_SIGNATURE);\r
   ASSERT (Group != NULL && IP6_IS_MULTICAST (Group));\r
@@ -437,12 +437,12 @@ Ip6CombineGroups (
 **/\r
 EFI_STATUS\r
 Ip6RemoveGroup (\r
-  IN OUT IP6_PROTOCOL *IpInstance,\r
-  IN EFI_IPv6_ADDRESS *Group\r
+  IN OUT IP6_PROTOCOL  *IpInstance,\r
+  IN EFI_IPv6_ADDRESS  *Group\r
   )\r
 {\r
-  UINT32                    Index;\r
-  UINT32                    Count;\r
+  UINT32  Index;\r
+  UINT32  Count;\r
 \r
   Count = IpInstance->GroupCount;\r
 \r
@@ -481,13 +481,13 @@ Ip6RemoveGroup (
 **/\r
 EFI_STATUS\r
 Ip6JoinGroup (\r
-  IN IP6_SERVICE            *IpSb,\r
-  IN IP6_INTERFACE          *Interface,\r
-  IN EFI_IPv6_ADDRESS       *Address\r
+  IN IP6_SERVICE       *IpSb,\r
+  IN IP6_INTERFACE     *Interface,\r
+  IN EFI_IPv6_ADDRESS  *Address\r
   )\r
 {\r
-  IP6_MLD_GROUP            *Group;\r
-  EFI_STATUS               Status;\r
+  IP6_MLD_GROUP  *Group;\r
+  EFI_STATUS     Status;\r
 \r
   Group = Ip6FindMldEntry (IpSb, Address);\r
   if (Group != NULL) {\r
@@ -545,12 +545,12 @@ ERROR:
 **/\r
 EFI_STATUS\r
 Ip6LeaveGroup (\r
IN IP6_SERVICE            *IpSb,\r
IN EFI_IPv6_ADDRESS       *Address\r
 IN IP6_SERVICE       *IpSb,\r
 IN EFI_IPv6_ADDRESS  *Address\r
   )\r
 {\r
-  IP6_MLD_GROUP            *Group;\r
-  EFI_STATUS               Status;\r
+  IP6_MLD_GROUP  *Group;\r
+  EFI_STATUS     Status;\r
 \r
   Group = Ip6FindMldEntry (IpSb, Address);\r
   if (Group == NULL) {\r
@@ -611,15 +611,15 @@ Ip6LeaveGroup (
 **/\r
 EFI_STATUS\r
 Ip6Groups (\r
-  IN IP6_PROTOCOL           *IpInstance,\r
-  IN BOOLEAN                JoinFlag,\r
-  IN EFI_IPv6_ADDRESS       *GroupAddress       OPTIONAL\r
+  IN IP6_PROTOCOL      *IpInstance,\r
+  IN BOOLEAN           JoinFlag,\r
+  IN EFI_IPv6_ADDRESS  *GroupAddress       OPTIONAL\r
   )\r
 {\r
-  EFI_STATUS                Status;\r
-  IP6_SERVICE               *IpSb;\r
-  UINT32                    Index;\r
-  EFI_IPv6_ADDRESS          *Group;\r
+  EFI_STATUS        Status;\r
+  IP6_SERVICE       *IpSb;\r
+  UINT32            Index;\r
+  EFI_IPv6_ADDRESS  *Group;\r
 \r
   IpSb = IpInstance->Service;\r
 \r
@@ -690,13 +690,13 @@ Ip6Groups (
 **/\r
 EFI_STATUS\r
 Ip6UpdateDelayTimer (\r
-  IN IP6_SERVICE            *IpSb,\r
-  IN UINT16                 MaxRespDelay,\r
-  IN EFI_IPv6_ADDRESS       *MulticastAddr,\r
-  IN OUT IP6_MLD_GROUP      *Group\r
+  IN IP6_SERVICE        *IpSb,\r
+  IN UINT16             MaxRespDelay,\r
+  IN EFI_IPv6_ADDRESS   *MulticastAddr,\r
+  IN OUT IP6_MLD_GROUP  *Group\r
   )\r
 {\r
-  UINT32                    Delay;\r
+  UINT32  Delay;\r
 \r
   //\r
   // If the Query packet specifies a Maximum Response Delay of zero, perform timer\r
@@ -707,14 +707,14 @@ Ip6UpdateDelayTimer (
     return Ip6SendMldReport (IpSb, NULL, MulticastAddr);\r
   }\r
 \r
-  Delay = (UINT32) (MaxRespDelay / 1000);\r
+  Delay = (UINT32)(MaxRespDelay / 1000);\r
 \r
   //\r
   // Sets a delay timer to a random value selected from the range [0, Maximum Response Delay]\r
   // If a timer is already running, resets it if the request Maximum Response Delay\r
   // is less than the remaining value of the running timer.\r
   //\r
-  if (Group->DelayTimer == 0 || Delay < Group->DelayTimer) {\r
+  if ((Group->DelayTimer == 0) || (Delay < Group->DelayTimer)) {\r
     Group->DelayTimer = Delay / 4294967295UL * NET_RANDOM (NetRandomInitSeed ());\r
   }\r
 \r
@@ -736,16 +736,16 @@ Ip6UpdateDelayTimer (
 **/\r
 EFI_STATUS\r
 Ip6ProcessMldQuery (\r
-  IN IP6_SERVICE            *IpSb,\r
-  IN EFI_IP6_HEADER         *Head,\r
-  IN NET_BUF                *Packet\r
+  IN IP6_SERVICE     *IpSb,\r
+  IN EFI_IP6_HEADER  *Head,\r
+  IN NET_BUF         *Packet\r
   )\r
 {\r
-  EFI_IPv6_ADDRESS          AllNodes;\r
-  IP6_MLD_GROUP             *Group;\r
-  IP6_MLD_HEAD              MldPacket;\r
-  LIST_ENTRY                *Entry;\r
-  EFI_STATUS                Status;\r
+  EFI_IPv6_ADDRESS  AllNodes;\r
+  IP6_MLD_GROUP     *Group;\r
+  IP6_MLD_HEAD      MldPacket;\r
+  LIST_ENTRY        *Entry;\r
+  EFI_STATUS        Status;\r
 \r
   Status = EFI_INVALID_PARAMETER;\r
 \r
@@ -756,14 +756,14 @@ Ip6ProcessMldQuery (
     goto Exit;\r
   }\r
 \r
-  if (Head->HopLimit != 1 || !IP6_IS_MULTICAST (&Head->DestinationAddress)) {\r
+  if ((Head->HopLimit != 1) || !IP6_IS_MULTICAST (&Head->DestinationAddress)) {\r
     goto Exit;\r
   }\r
 \r
   //\r
   // The Packet points to MLD report raw data without Hop-By-Hop option.\r
   //\r
-  NetbufCopy (Packet, 0, sizeof (IP6_MLD_HEAD), (UINT8 *) &MldPacket);\r
+  NetbufCopy (Packet, 0, sizeof (IP6_MLD_HEAD), (UINT8 *)&MldPacket);\r
   MldPacket.MaxRespDelay = NTOHS (MldPacket.MaxRespDelay);\r
 \r
   Ip6SetToAllNodeMulticast (FALSE, IP6_LINK_LOCAL_SCOPE, &AllNodes);\r
@@ -774,6 +774,7 @@ Ip6ProcessMldQuery (
     if (!EFI_IP6_EQUAL (&Head->DestinationAddress, &MldPacket.Group)) {\r
       goto Exit;\r
     }\r
+\r
     //\r
     // The node is not listening but it receives the specific query. Just return.\r
     //\r
@@ -824,14 +825,14 @@ Exit:
 **/\r
 EFI_STATUS\r
 Ip6ProcessMldReport (\r
-  IN IP6_SERVICE            *IpSb,\r
-  IN EFI_IP6_HEADER         *Head,\r
-  IN NET_BUF                *Packet\r
+  IN IP6_SERVICE     *IpSb,\r
+  IN EFI_IP6_HEADER  *Head,\r
+  IN NET_BUF         *Packet\r
   )\r
 {\r
-  IP6_MLD_HEAD              MldPacket;\r
-  IP6_MLD_GROUP             *Group;\r
-  EFI_STATUS                Status;\r
+  IP6_MLD_HEAD   MldPacket;\r
+  IP6_MLD_GROUP  *Group;\r
+  EFI_STATUS     Status;\r
 \r
   Status = EFI_INVALID_PARAMETER;\r
 \r
@@ -842,14 +843,14 @@ Ip6ProcessMldReport (
     goto Exit;\r
   }\r
 \r
-  if (Head->HopLimit != 1 || !IP6_IS_MULTICAST (&Head->DestinationAddress)) {\r
+  if ((Head->HopLimit != 1) || !IP6_IS_MULTICAST (&Head->DestinationAddress)) {\r
     goto Exit;\r
   }\r
 \r
   //\r
   // The Packet points to MLD report raw data without Hop-By-Hop option.\r
   //\r
-  NetbufCopy (Packet, 0, sizeof (IP6_MLD_HEAD), (UINT8 *) &MldPacket);\r
+  NetbufCopy (Packet, 0, sizeof (IP6_MLD_HEAD), (UINT8 *)&MldPacket);\r
   if (!EFI_IP6_EQUAL (&Head->DestinationAddress, &MldPacket.Group)) {\r
     goto Exit;\r
   }\r
@@ -883,11 +884,11 @@ Exit:
 **/\r
 VOID\r
 Ip6MldTimerTicking (\r
-  IN IP6_SERVICE            *IpSb\r
+  IN IP6_SERVICE  *IpSb\r
   )\r
 {\r
-  IP6_MLD_GROUP             *Group;\r
-  LIST_ENTRY                *Entry;\r
+  IP6_MLD_GROUP  *Group;\r
+  LIST_ENTRY     *Entry;\r
 \r
   //\r
   // Send solicited report when timer expires\r
@@ -899,4 +900,3 @@ Ip6MldTimerTicking (
     }\r
   }\r
 }\r
-\r