Merge changes from topic 'hidl-dump-sys'

* changes:
  hidl_string: add operator<
  IServiceManager.hal: list must be sorted
diff --git a/base/HidlSupport.cpp b/base/HidlSupport.cpp
index d657793..ef82775 100644
--- a/base/HidlSupport.cpp
+++ b/base/HidlSupport.cpp
@@ -90,6 +90,10 @@
     return *this;
 }
 
+bool hidl_string::operator< (const hidl_string &rhs) const {
+    return strcmp(mBuffer, rhs.mBuffer) < 0;
+}
+
 hidl_string::operator std::string() const {
     return std::string(mBuffer, mSize);
 }
diff --git a/base/include/hidl/HidlSupport.h b/base/include/hidl/HidlSupport.h
index 8d43bfd..e201a1e 100644
--- a/base/include/hidl/HidlSupport.h
+++ b/base/include/hidl/HidlSupport.h
@@ -154,6 +154,8 @@
     // to maintain this hidl_string alive.
     operator const char *() const;
 
+    bool operator< (const hidl_string &rhs) const;
+
     void clear();
 
     // Reference an external char array. Ownership is _not_ transferred.
diff --git a/test_main.cpp b/test_main.cpp
index 1967614..6e9bf25 100644
--- a/test_main.cpp
+++ b/test_main.cpp
@@ -81,6 +81,9 @@
     s.clear(); // should not affect myCString
     EXPECT_STREQ(myCString, "myDString");
 
+    // operator <
+    EXPECT_LT("ab", "bcd");
+
     // casts
     s = "great";
     std::string myString = s;
diff --git a/transport/manager/1.0/IServiceManager.hal b/transport/manager/1.0/IServiceManager.hal
index 0fcf7dc..321ee21 100644
--- a/transport/manager/1.0/IServiceManager.hal
+++ b/transport/manager/1.0/IServiceManager.hal
@@ -70,14 +70,14 @@
         generates (bool success);
 
     /**
-     * List all registered services.
+     * List all registered services. Must be sorted.
      *
      * @return fqInstanceNames List of fully-qualified instance names.
      */
     list() generates (vec<string> fqInstanceNames);
 
     /**
-     * List all instances of a particular service.
+     * List all instances of a particular service. Must be sorted.
      *
      * @param fqName         Fully-qualified interface name.
      *