-- Architecture independent functions and types
--
-- Use Put_Message to write custom messages to the log file and the
-- output when executing with '-o debug'.
with Interfaces.C;
with Interfaces.C.Strings;
with Ada.Exceptions;
with Ada.Text_IO;
with Fuse.System;
generic
with package System is new Fuse.System (<>);
Log_Level : Fuse.Log_Level_Type;
Log_File_Name : String;
package Fuse.General is
-- Log, Errors
procedure Put_Message
(Message : String;
Level : Fuse.Log_Level_Type := 3);
function Error_Code
(Error : System.Error_Type) return Interfaces.C.Int;
function Handle_Exception
(Exc : Ada.Exceptions.Exception_Occurrence) return Interfaces.C.Int;
-- Context
function fuse_get_context return System.Context_Access;
pragma import (C, fuse_get_context);
function Get_Context return System.Context_Type;
function Get_User_Data return System.User_Data_Type;
-- Fill Dir
type Dir_Buffer_Type is private;
type Fill_Dir_Access is access procedure
(Buffer : Dir_Buffer_Type;
Name : String;
St_Buf : System.Stat_Access;
Offset : Natural);
generic
with function Fill_Dir_C
(Buf : General.Dir_Buffer_Type;
Name : Interfaces.C.Strings.chars_ptr;
Stbuf : System.Stat_Access;
Off : System.Off_T)
return Interfaces.C.int;
Buffer : Dir_Buffer_Type;
procedure Fill_Dir
(Name : String;
St_Buf : System.Stat_Access;
Offset : Natural);
private
-- Log
Log_File : Ada.Text_IO.File_Type;
procedure Write_Log
(Message : String);
procedure Open_Log_File;
-- Fill Dir
type Void is null record;
pragma Convention (C, Void);
type Void_Ptr is access all Void;
pragma Convention (C, Void_Ptr);
type Dir_Buffer_Type is new Void_Ptr;
end Fuse.General;
-- vim: ts=3 sw=3 et