diff --git a/file.hpp b/file.hpp
new file mode 100644
index 0000000..33df65f
--- /dev/null
+++ b/file.hpp
@@ -0,0 +1,72 @@
+#pragma once
+
+#include <unistd.h>
+namespace openpower
+{
+namespace sbe
+{
+namespace internal
+{
+
+/** @class FileDescriptor
+ *  @brief Provide RAII file descriptor
+ */
+class FileDescriptor
+{
+    private:
+        /** @brief File descriptor for the SBE FIFO device */
+        int fd = -1;
+
+    public:
+        FileDescriptor() = delete;
+        FileDescriptor(const FileDescriptor&) = delete;
+        FileDescriptor& operator=(const FileDescriptor&) = delete;
+        FileDescriptor(FileDescriptor&&) = delete;
+        FileDescriptor& operator=(FileDescriptor&&) = delete;
+
+        /** @brief Opens the input file and saves the file descriptor
+         *
+         *  @param[in] devPath - Path of the file
+         *  @para,[in] accessModes - File access modes
+         */
+        FileDescriptor(const char* devPath, int accessModes)
+        {
+            fd = open(devPath, accessModes);
+            if (fd < 0)
+            {
+                //TODO:use elog infrastructure
+                std::ostringstream errMsg;
+                errMsg << "Opening the device with device path:" <<
+                       devPath << " and access modes:" << accessModes <<
+                       ",Failed with errno" << errno;
+                throw std::runtime_error(errMsg.str().c_str());
+            }
+
+        }
+
+        /** @brief Saves File descriptor and uses it to do file operation
+         *
+         *  @param[in] fd - File descriptor
+         */
+        FileDescriptor(int fd) : fd(fd)
+        {
+            // Nothing
+        }
+
+        ~FileDescriptor()
+        {
+            if (fd >= 0)
+            {
+                close(fd);
+            }
+        }
+
+        int operator()()
+        {
+            return fd;
+        }
+};
+
+} // namespace internal
+} // namespace sbe
+} // namespace openpower
