arm,kern: Use GuestABI to call printk from the kernel.
[gem5.git] / src / kern / linux / printk.hh
index 8a18a00dd30f3230db37ea158f5a2bf41aca4add..cb7bc9ad84bef82f5970af40f5363de76dc6bfb7 100644 (file)
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-#ifndef __PRINTK_HH__
-#define __PRINTK_HH__
+#ifndef __KERN_LINUX_PRINTK_HH__
+#define __KERN_LINUX_PRINTK_HH__
 
-#include <sstream>
+#include <string>
 
-class Arguments;
+#include "base/types.hh"
+#include "sim/guest_abi.hh"
 
-void Printk(std::stringstream &out, Arguments args);
+namespace Linux
+{
 
-#endif // __PRINTK_HH__
+using PrintkVarArgs =
+    GuestABI::VarArgs<Addr, int32_t, uint32_t, int64_t, uint64_t>;
+int printk(std::string &out, ThreadContext *tc, Addr format_ptr,
+           PrintkVarArgs args);
+
+} // namespace Linux
+
+#endif // __KERN_LINUX_PRINTK_HH__