added a special case for sysbios_Semaphore to be presented as ti.sysbios.knl.Semaphore
diff --git a/src/packages/xdc/rov/Model.xs b/src/packages/xdc/rov/Model.xs
index 1b6ced6..64dc3ed 100644
--- a/src/packages/xdc/rov/Model.xs
+++ b/src/packages/xdc/rov/Model.xs
@@ -206,7 +206,7 @@
 
 /*
  *  ======== initOFReader ========
- *  Creates and initializes the object file reader. 
+ *  Creates and initializes the object file reader.
  *
  *  The StringReader should be initialized first; if anything goes wrong
  *  creating the object file reader, we fall back on the string reader.
@@ -240,7 +240,7 @@
             ofReader.parse(executable);
 
             /*
-             * Close the reader to release the file handle. The reader will 
+             * Close the reader to release the file handle. The reader will
              * reopen the file when a string lookup occurs.
              */
             ofReader.close();
@@ -562,6 +562,8 @@
             ofReader.parse(executable);
 
             var varList = ofReader.getGlobalVariablesByType(".*_Struct$");
+            var semList =
+                ofReader.getGlobalVariablesByType(".*sysbios_Semaphore$");
             ofReader.close(); /* close file handle */
 
             /* Run through the list and add only constructed objects */
@@ -582,6 +584,16 @@
                 }
                 constructInstArr[varObj.name] = varObj;
             }
+            for (var i = 0; i < semList.length; i++) {
+                var varObj = {};
+                varObj.name = semList[i].name;
+                varObj.type = "ti_sysbios_knl_Semaphore_Struct";
+                varObj.offset = 0;
+                if (semList[i].offset != undefined) {
+                    varObj.offset = semList[i].offset;
+                }
+                constructInstArr[varObj.name] = varObj;
+            }
         }
     }
     catch (e) {