made RawQueue options type-safe
diff --git a/aos/linux_code/logging/linux_logging.cc b/aos/linux_code/logging/linux_logging.cc
index cdb052a..2bd5bce 100644
--- a/aos/linux_code/logging/linux_logging.cc
+++ b/aos/linux_code/logging/linux_logging.cc
@@ -77,7 +77,7 @@
   AddImplementation(new LinuxQueueLogImplementation());
 }
 
-const LogMessage *ReadNext(int flags, int *index) {
+const LogMessage *ReadNext(Options<RawQueue> flags, int *index) {
   return static_cast<const LogMessage *>(queue->ReadMessageIndex(flags, index));
 }
 
@@ -85,7 +85,7 @@
   return ReadNext(RawQueue::kBlock);
 }
 
-const LogMessage *ReadNext(int flags) {
+const LogMessage *ReadNext(Options<RawQueue> flags) {
   const LogMessage *r = NULL;
   do {
     r = static_cast<const LogMessage *>(queue->ReadMessage(flags));
diff --git a/aos/linux_code/logging/linux_logging.h b/aos/linux_code/logging/linux_logging.h
index 3dc8763..63eeaf1 100644
--- a/aos/linux_code/logging/linux_logging.h
+++ b/aos/linux_code/logging/linux_logging.h
@@ -2,8 +2,12 @@
 #define AOS_LINUX_CODE_LOGGING_LOGGING_H_
 
 #include "aos/common/logging/logging_impl.h"
+#include "aos/common/util/options.h"
 
 namespace aos {
+
+class RawQueue;
+
 namespace logging {
 namespace linux_code {
 
@@ -16,8 +20,8 @@
 // Fairly simple wrappers around the raw queue calls.
 
 // This one never returns NULL if flags contains BLOCK.
-const LogMessage *ReadNext(int flags);
-const LogMessage *ReadNext(int flags, int *index);
+const LogMessage *ReadNext(Options<RawQueue> flags);
+const LogMessage *ReadNext(Options<RawQueue> flags, int *index);
 const LogMessage *ReadNext();
 LogMessage *Get();
 void Free(const LogMessage *msg);