Lines Matching refs:frame
139 vmt_probe_cmd(struct vm_backdoor *frame, uint16_t cmd) in vmt_probe_cmd() argument
141 memset(frame, 0, sizeof(*frame)); in vmt_probe_cmd()
143 frame->eax = VM_MAGIC; in vmt_probe_cmd()
144 frame->ebx = ~VM_MAGIC & VM_REG_WORD_MASK; in vmt_probe_cmd()
145 frame->ecx = VM_REG_CMD(0xffff, cmd); in vmt_probe_cmd()
146 frame->edx = VM_REG_CMD(0, VM_PORT_CMD); in vmt_probe_cmd()
148 vm_cmd(frame); in vmt_probe_cmd()
154 struct vm_backdoor frame; in vmt_probe() local
156 vmt_probe_cmd(&frame, VM_CMD_GET_VERSION); in vmt_probe()
157 if (__SHIFTOUT(frame.eax, VM_REG_WORD_MASK) == 0xffffffff || in vmt_probe()
158 __SHIFTOUT(frame.ebx, VM_REG_WORD_MASK) != VM_MAGIC) in vmt_probe()
161 vmt_probe_cmd(&frame, VM_CMD_GET_SPEED); in vmt_probe()
162 if (__SHIFTOUT(frame.eax, VM_REG_WORD_MASK) == VM_MAGIC) in vmt_probe()
172 struct vm_backdoor frame; in vmt_common_attach() local
179 vmt_probe_cmd(&frame, VM_CMD_GET_VERSION); in vmt_common_attach()
180 if (__SHIFTOUT(frame.eax, VM_REG_WORD_MASK) == 0xffffffff || in vmt_common_attach()
181 __SHIFTOUT(frame.ebx, VM_REG_WORD_MASK) != VM_MAGIC) { in vmt_common_attach()
191 vmt_probe_cmd(&frame, VM_CMD_GET_BIOS_UUID); in vmt_common_attach()
193 bswap32(__SHIFTOUT(frame.eax, VM_REG_WORD_MASK)); in vmt_common_attach()
194 u = bswap32(__SHIFTOUT(frame.ebx, VM_REG_WORD_MASK)); in vmt_common_attach()
197 u = bswap32(__SHIFTOUT(frame.ecx, VM_REG_WORD_MASK)); in vmt_common_attach()
202 u = bswap32(__SHIFTOUT(frame.edx, VM_REG_WORD_MASK)); in vmt_common_attach()
467 struct vm_backdoor frame; in vmt_sync_guest_clock() local
470 memset(&frame, 0, sizeof(frame)); in vmt_sync_guest_clock()
471 frame.eax = VM_MAGIC; in vmt_sync_guest_clock()
472 frame.ecx = VM_CMD_GET_TIME_FULL; in vmt_sync_guest_clock()
473 frame.edx = VM_REG_CMD(0, VM_PORT_CMD); in vmt_sync_guest_clock()
474 vm_cmd(&frame); in vmt_sync_guest_clock()
476 if (__SHIFTOUT(frame.eax, VM_REG_WORD_MASK) != 0xffffffff) { in vmt_sync_guest_clock()
478 __SHIFTOUT(frame.esi, VM_REG_WORD_MASK) << 32)) | in vmt_sync_guest_clock()
479 __SHIFTOUT(frame.edx, VM_REG_WORD_MASK); in vmt_sync_guest_clock()
480 ts.tv_nsec = __SHIFTOUT(frame.ebx, VM_REG_WORD_MASK) * 1000; in vmt_sync_guest_clock()
863 vm_cmd(struct vm_backdoor *frame) in vm_cmd() argument
865 BACKDOOR_OP(BACKDOOR_OP_CMD, frame); in vm_cmd()
869 vm_ins(struct vm_backdoor *frame) in vm_ins() argument
871 BACKDOOR_OP(BACKDOOR_OP_IN, frame); in vm_ins()
875 vm_outs(struct vm_backdoor *frame) in vm_outs() argument
877 BACKDOOR_OP(BACKDOOR_OP_OUT, frame); in vm_outs()
883 struct vm_backdoor frame; in vm_rpc_open() local
885 memset(&frame, 0, sizeof(frame)); in vm_rpc_open()
886 frame.eax = VM_MAGIC; in vm_rpc_open()
887 frame.ebx = proto | VM_RPC_FLAG_COOKIE; in vm_rpc_open()
888 frame.ecx = VM_REG_CMD_RPC(VM_RPC_OPEN); in vm_rpc_open()
889 frame.edx = VM_REG_PORT_CMD(0); in vm_rpc_open()
891 vm_cmd(&frame); in vm_rpc_open()
893 if (__SHIFTOUT(frame.ecx, VM_REG_HIGH_MASK) != 1 || in vm_rpc_open()
894 __SHIFTOUT(frame.edx, VM_REG_LOW_MASK) != 0) { in vm_rpc_open()
898 frame.eax, frame.ecx, frame.edx); in vm_rpc_open()
902 rpc->channel = __SHIFTOUT(frame.edx, VM_REG_HIGH_MASK); in vm_rpc_open()
903 rpc->cookie1 = __SHIFTOUT(frame.esi, VM_REG_WORD_MASK); in vm_rpc_open()
904 rpc->cookie2 = __SHIFTOUT(frame.edi, VM_REG_WORD_MASK); in vm_rpc_open()
912 struct vm_backdoor frame; in vm_rpc_close() local
914 memset(&frame, 0, sizeof(frame)); in vm_rpc_close()
915 frame.eax = VM_MAGIC; in vm_rpc_close()
916 frame.ebx = 0; in vm_rpc_close()
917 frame.ecx = VM_REG_CMD_RPC(VM_RPC_CLOSE); in vm_rpc_close()
918 frame.edx = VM_REG_PORT_CMD(rpc->channel); in vm_rpc_close()
919 frame.edi = rpc->cookie2; in vm_rpc_close()
920 frame.esi = rpc->cookie1; in vm_rpc_close()
922 vm_cmd(&frame); in vm_rpc_close()
924 if (__SHIFTOUT(frame.ecx, VM_REG_HIGH_MASK) == 0 || in vm_rpc_close()
925 __SHIFTOUT(frame.ecx, VM_REG_LOW_MASK) != 0) { in vm_rpc_close()
928 frame.eax, frame.ecx); in vm_rpc_close()
942 struct vm_backdoor frame; in vm_rpc_send() local
945 memset(&frame, 0, sizeof(frame)); in vm_rpc_send()
946 frame.eax = VM_MAGIC; in vm_rpc_send()
947 frame.ebx = length; in vm_rpc_send()
948 frame.ecx = VM_REG_CMD_RPC(VM_RPC_SET_LENGTH); in vm_rpc_send()
949 frame.edx = VM_REG_PORT_CMD(rpc->channel); in vm_rpc_send()
950 frame.esi = rpc->cookie1; in vm_rpc_send()
951 frame.edi = rpc->cookie2; in vm_rpc_send()
953 vm_cmd(&frame); in vm_rpc_send()
955 if ((__SHIFTOUT(frame.ecx, VM_REG_HIGH_MASK) & VM_RPC_REPLY_SUCCESS) == in vm_rpc_send()
959 frame.eax, frame.ecx); in vm_rpc_send()
967 memset(&frame, 0, sizeof(frame)); in vm_rpc_send()
968 frame.eax = VM_MAGIC; in vm_rpc_send()
969 frame.ebx = VM_RPC_ENH_DATA; in vm_rpc_send()
970 frame.ecx = length; in vm_rpc_send()
971 frame.edx = VM_REG_PORT_RPC(rpc->channel); in vm_rpc_send()
972 frame.ebp = rpc->cookie1; in vm_rpc_send()
973 frame.edi = rpc->cookie2; in vm_rpc_send()
974 frame.esi = (register_t)buf; in vm_rpc_send()
976 vm_outs(&frame); in vm_rpc_send()
978 if (__SHIFTOUT(frame.ebx, VM_REG_WORD_MASK) != VM_RPC_ENH_DATA) { in vm_rpc_send()
981 frame.ebx); in vm_rpc_send()
998 struct vm_backdoor frame; in vm_rpc_get_data() local
1001 memset(&frame, 0, sizeof(frame)); in vm_rpc_get_data()
1002 frame.eax = VM_MAGIC; in vm_rpc_get_data()
1003 frame.ebx = VM_RPC_ENH_DATA; in vm_rpc_get_data()
1004 frame.ecx = length; in vm_rpc_get_data()
1005 frame.edx = VM_REG_PORT_RPC(rpc->channel); in vm_rpc_get_data()
1006 frame.esi = rpc->cookie1; in vm_rpc_get_data()
1007 frame.edi = (register_t)data; in vm_rpc_get_data()
1008 frame.ebp = rpc->cookie2; in vm_rpc_get_data()
1010 vm_ins(&frame); in vm_rpc_get_data()
1015 if (__SHIFTOUT(frame.ebx, VM_REG_WORD_MASK) != VM_RPC_ENH_DATA) { in vm_rpc_get_data()
1017 frame.ebx); in vm_rpc_get_data()
1022 memset(&frame, 0, sizeof(frame)); in vm_rpc_get_data()
1023 frame.eax = VM_MAGIC; in vm_rpc_get_data()
1024 frame.ebx = dataid; in vm_rpc_get_data()
1025 frame.ecx = VM_REG_CMD_RPC(VM_RPC_GET_END); in vm_rpc_get_data()
1026 frame.edx = VM_REG_PORT_CMD(rpc->channel); in vm_rpc_get_data()
1027 frame.esi = rpc->cookie1; in vm_rpc_get_data()
1028 frame.edi = rpc->cookie2; in vm_rpc_get_data()
1030 vm_cmd(&frame); in vm_rpc_get_data()
1032 if (__SHIFTOUT(frame.ecx, VM_REG_HIGH_MASK) == 0) { in vm_rpc_get_data()
1035 frame.eax, frame.ecx); in vm_rpc_get_data()
1045 struct vm_backdoor frame; in vm_rpc_get_length() local
1047 memset(&frame, 0, sizeof(frame)); in vm_rpc_get_length()
1048 frame.eax = VM_MAGIC; in vm_rpc_get_length()
1049 frame.ebx = 0; in vm_rpc_get_length()
1050 frame.ecx = VM_REG_CMD_RPC(VM_RPC_GET_LENGTH); in vm_rpc_get_length()
1051 frame.edx = VM_REG_PORT_CMD(rpc->channel); in vm_rpc_get_length()
1052 frame.esi = rpc->cookie1; in vm_rpc_get_length()
1053 frame.edi = rpc->cookie2; in vm_rpc_get_length()
1055 vm_cmd(&frame); in vm_rpc_get_length()
1057 if ((__SHIFTOUT(frame.ecx, VM_REG_HIGH_MASK) & VM_RPC_REPLY_SUCCESS) == in vm_rpc_get_length()
1061 frame.eax, frame.ecx); in vm_rpc_get_length()
1064 if ((__SHIFTOUT(frame.ecx, VM_REG_HIGH_MASK) & VM_RPC_REPLY_DORECV) == in vm_rpc_get_length()
1069 *length = __SHIFTOUT(frame.ebx, VM_REG_WORD_MASK); in vm_rpc_get_length()
1070 *dataid = __SHIFTOUT(frame.edx, VM_REG_HIGH_MASK); in vm_rpc_get_length()
1150 struct vm_backdoor frame;
1152 memset(&frame, 0, sizeof(frame));
1154 frame.eax = VM_MAGIC;
1155 frame.ecx = VM_CMD_GET_VERSION;
1156 frame.edx = VM_PORT_CMD;
1159 printf("eax %#"PRIxREGISTER"\n", frame.eax);
1160 printf("ebx %#"PRIxREGISTER"\n", frame.ebx);
1161 printf("ecx %#"PRIxREGISTER"\n", frame.ecx);
1162 printf("edx %#"PRIxREGISTER"\n", frame.edx)
1163 printf("ebp %#"PRIxREGISTER"\n", frame.ebp);
1164 printf("edi %#"PRIxREGISTER"\n", frame.edi);
1165 printf("esi %#"PRIxREGISTER"\n", frame.esi);
1167 vm_cmd(&frame);
1170 printf("eax %#"PRIxREGISTER"\n", frame.eax);
1171 printf("ebx %#"PRIxREGISTER"\n", frame.ebx);
1172 printf("ecx %#"PRIxREGISTER"\n", frame.ecx);
1173 printf("edx %#"PRIxREGISTER"\n", frame.edx);
1174 printf("ebp %#"PRIxREGISTER"\n", frame.ebp);
1175 printf("edi %#"PRIxREGISTER"\n", frame.edi);
1176 printf("esi %#"PRIxREGISTER"\n", frame.esi);