Exemplo n.º 1
0
        public static int linux_sys_binder_write_read_async(int helper_pid, uint handle, sys_binder_write_desc desc)
        {
            SetMR(0, (int)Type.EXPRESSOS_OP_BINDER_WRITE_READ);
            SetMR(1, helper_pid);
            SetMR(2, handle);
            SetMR(3, RelativeBufferPos(desc.write_buffer));
            SetMR(4, desc.buffer_size);
            SetMR(5, desc.bwr_write_size);
            SetMR(6, desc.patch_table_entries);
            SetMR(7, desc.patch_table_offset);

            var tag = new Msgtag((int)IPCTag.EXPRESSOS_IPC, 8, 0, 0);
            var res = l4_ipc_send(ArchGlobals.LinuxServerTid, tag, Timeout.Never);

            return(l4_stub_ipc_error(res) != 0 ? -1 : 0);
        }
Exemplo n.º 2
0
 internal BinderCompletion(Thread current, UserPtr userBwrBuf, sys_binder_write_desc desc, ByteBufferRef buf)
     : base(current, Kind.BinderCompletionKind, buf)
 {
     this.userBwrBuf = userBwrBuf;
     this.desc       = desc;
 }
Exemplo n.º 3
0
 internal BinderCompletion(Thread current, UserPtr userBwrBuf, sys_binder_write_desc desc, ByteBufferRef buf)
     : base(current, Kind.BinderCompletionKind, buf)
 {
     this.userBwrBuf = userBwrBuf;
     this.desc = desc;
 }
Exemplo n.º 4
0
        public static int linux_sys_binder_write_read_async(int helper_pid, uint handle, sys_binder_write_desc desc)
        {
            SetMR(0, (int)Type.EXPRESSOS_OP_BINDER_WRITE_READ);
            SetMR(1, helper_pid);
            SetMR(2, handle);
            SetMR(3, RelativeBufferPos(desc.write_buffer));
            SetMR(4, desc.buffer_size);
            SetMR(5, desc.bwr_write_size);
            SetMR(6, desc.patch_table_entries);
            SetMR(7, desc.patch_table_offset);

            var tag = new Msgtag((int)IPCTag.EXPRESSOS_IPC, 8, 0, 0);
            var res = l4_ipc_send(ArchGlobals.LinuxServerTid, tag, Timeout.Never);
            return l4_stub_ipc_error(res) != 0 ? -1 : 0;
        }