X-Git-Url: http://git.annexia.org/?p=libguestfs.git;a=blobdiff_plain;f=src%2Fguestfs_protocol.x;h=df3e936830516326b322e69bb2a89fc49a6718cc;hp=6569d27648e64fec5824b4d0a3ce0e3f2b13a89b;hb=843514eef9dc6d04d71e031ba9ddb16e2beb9a04;hpb=55bf8fd622e9f84364b505db6591ace3ec2b5447 diff --git a/src/guestfs_protocol.x b/src/guestfs_protocol.x index 6569d27..df3e936 100644 --- a/src/guestfs_protocol.x +++ b/src/guestfs_protocol.x @@ -19,6 +19,38 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ +typedef string str<>; + +/* guestfs_cat */ + +struct guestfs_cat_args { + string path<>; +}; + +struct guestfs_cat_ret { + string content<>; +}; + +/* guestfs_ll */ + +struct guestfs_ll_args { + string directory<>; +}; + +struct guestfs_ll_ret { + string listing<>; +}; + +/* guestfs_ls */ + +struct guestfs_ls_args { + string directory<>; +}; + +struct guestfs_ls_ret { + str listing<>; +}; + /* guestfs_mount */ struct guestfs_mount_args { @@ -34,3 +66,42 @@ struct guestfs_touch_args { string path<>; }; +enum guestfs_procedure { + GUESTFS_PROC_CAT = 4, + GUESTFS_PROC_LL = 5, + GUESTFS_PROC_LS = 6, + GUESTFS_PROC_MOUNT = 1, + GUESTFS_PROC_SYNC = 2, + GUESTFS_PROC_TOUCH = 3, + GUESTFS_PROC_dummy +}; + +const GUESTFS_MESSAGE_MAX = 4194304; + +const GUESTFS_PROGRAM = 0x2000F5F5; +const GUESTFS_PROTOCOL_VERSION = 1; + +enum guestfs_message_direction { + GUESTFS_DIRECTION_CALL = 0, /* client -> daemon */ + GUESTFS_DIRECTION_REPLY = 1 /* daemon -> client */ +}; + +enum guestfs_message_status { + GUESTFS_STATUS_OK = 0, + GUESTFS_STATUS_ERROR = 1 +}; + +const GUESTFS_ERROR_LEN = 256; + +struct guestfs_message_error { + string error; /* error message */ +}; + +struct guestfs_message_header { + unsigned prog; /* GUESTFS_PROGRAM */ + unsigned vers; /* GUESTFS_PROTOCOL_VERSION */ + guestfs_procedure proc; /* GUESTFS_PROC_x */ + guestfs_message_direction direction; + unsigned serial; /* message serial number */ + guestfs_message_status status; +};