Commit 7ed601b782cbcaf0cddff6c5725712e47972f26d
1 parent
d1f2367b
more syscalls
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@59 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
1 changed file
with
210 additions
and
0 deletions
syscall-i386.h
... | ... | @@ -237,6 +237,36 @@ |
237 | 237 | #define TARGET_NR_removexattr 235 |
238 | 238 | #define TARGET_NR_lremovexattr 236 |
239 | 239 | #define TARGET_NR_fremovexattr 237 |
240 | +#define TARGET_NR_tkill 238 | |
241 | +#define TARGET_NR_sendfile64 239 | |
242 | +#define TARGET_NR_futex 240 | |
243 | +#define TARGET_NR_sched_setaffinity 241 | |
244 | +#define TARGET_NR_sched_getaffinity 242 | |
245 | +#define TARGET_NR_set_thread_area 243 | |
246 | +#define TARGET_NR_get_thread_area 244 | |
247 | +#define TARGET_NR_io_setup 245 | |
248 | +#define TARGET_NR_io_destroy 246 | |
249 | +#define TARGET_NR_io_getevents 247 | |
250 | +#define TARGET_NR_io_submit 248 | |
251 | +#define TARGET_NR_io_cancel 249 | |
252 | +#define TARGET_NR_fadvise64 250 | |
253 | + | |
254 | +#define TARGET_NR_exit_group 252 | |
255 | +#define TARGET_NR_lookup_dcookie 253 | |
256 | +#define TARGET_NR_epoll_create 254 | |
257 | +#define TARGET_NR_epoll_ctl 255 | |
258 | +#define TARGET_NR_epoll_wait 256 | |
259 | +#define TARGET_NR_remap_file_pages 257 | |
260 | +#define TARGET_NR_set_tid_address 258 | |
261 | +#define TARGET_NR_timer_create 259 | |
262 | +#define TARGET_NR_timer_settime (TARGET_NR_timer_create+1) | |
263 | +#define TARGET_NR_timer_gettime (TARGET_NR_timer_create+2) | |
264 | +#define TARGET_NR_timer_getoverrun (TARGET_NR_timer_create+3) | |
265 | +#define TARGET_NR_timer_delete (TARGET_NR_timer_create+4) | |
266 | +#define TARGET_NR_clock_settime (TARGET_NR_timer_create+5) | |
267 | +#define TARGET_NR_clock_gettime (TARGET_NR_timer_create+6) | |
268 | +#define TARGET_NR_clock_getres (TARGET_NR_timer_create+7) | |
269 | +#define TARGET_NR_clock_nanosleep (TARGET_NR_timer_create+8) | |
240 | 270 | |
241 | 271 | #define TARGET_SIG_BLOCK 0 /* for blocking signals */ |
242 | 272 | #define TARGET_SIG_UNBLOCK 1 /* for unblocking signals */ |
... | ... | @@ -714,6 +744,10 @@ struct target_termios { |
714 | 744 | #define TARGET_LDT_ENTRIES 8192 |
715 | 745 | #define TARGET_LDT_ENTRY_SIZE 8 |
716 | 746 | |
747 | +#define TARGET_GDT_ENTRY_TLS_ENTRIES 3 | |
748 | +#define TARGET_GDT_ENTRY_TLS_MIN 6 | |
749 | +#define TARGET_GDT_ENTRY_TLS_MAX (TARGET_GDT_ENTRY_TLS_MIN + TARGET_GDT_ENTRY_TLS_ENTRIES - 1) | |
750 | + | |
717 | 751 | struct target_modify_ldt_ldt_s { |
718 | 752 | unsigned int entry_number; |
719 | 753 | target_ulong base_addr; |
... | ... | @@ -721,6 +755,182 @@ struct target_modify_ldt_ldt_s { |
721 | 755 | unsigned int flags; |
722 | 756 | }; |
723 | 757 | |
758 | +#define TARGET_VM86_SIGNAL 0 /* return due to signal */ | |
759 | +#define TARGET_VM86_UNKNOWN 1 /* unhandled GP fault - IO-instruction or similar */ | |
760 | +#define TARGET_VM86_INTx 2 /* int3/int x instruction (ARG = x) */ | |
761 | +#define TARGET_VM86_STI 3 /* sti/popf/iret instruction enabled virtual interrupts */ | |
762 | + | |
763 | +/* | |
764 | + * Additional return values when invoking new vm86() | |
765 | + */ | |
766 | +#define TARGET_VM86_PICRETURN 4 /* return due to pending PIC request */ | |
767 | +#define TARGET_VM86_TRAP 6 /* return due to DOS-debugger request */ | |
768 | + | |
769 | +/* | |
770 | + * function codes when invoking new vm86() | |
771 | + */ | |
772 | +#define TARGET_VM86_PLUS_INSTALL_CHECK 0 | |
773 | +#define TARGET_VM86_ENTER 1 | |
774 | +#define TARGET_VM86_ENTER_NO_BYPASS 2 | |
775 | +#define TARGET_VM86_REQUEST_IRQ 3 | |
776 | +#define TARGET_VM86_FREE_IRQ 4 | |
777 | +#define TARGET_VM86_GET_IRQ_BITS 5 | |
778 | +#define TARGET_VM86_GET_AND_RESET_IRQ 6 | |
779 | + | |
780 | +/* | |
781 | + * This is the stack-layout seen by the user space program when we have | |
782 | + * done a translation of "SAVE_ALL" from vm86 mode. The real kernel layout | |
783 | + * is 'kernel_vm86_regs' (see below). | |
784 | + */ | |
785 | + | |
786 | +struct target_vm86_regs { | |
787 | +/* | |
788 | + * normal regs, with special meaning for the segment descriptors.. | |
789 | + */ | |
790 | + target_long ebx; | |
791 | + target_long ecx; | |
792 | + target_long edx; | |
793 | + target_long esi; | |
794 | + target_long edi; | |
795 | + target_long ebp; | |
796 | + target_long eax; | |
797 | + target_long __null_ds; | |
798 | + target_long __null_es; | |
799 | + target_long __null_fs; | |
800 | + target_long __null_gs; | |
801 | + target_long orig_eax; | |
802 | + target_long eip; | |
803 | + unsigned short cs, __csh; | |
804 | + target_long eflags; | |
805 | + target_long esp; | |
806 | + unsigned short ss, __ssh; | |
807 | +/* | |
808 | + * these are specific to v86 mode: | |
809 | + */ | |
810 | + unsigned short es, __esh; | |
811 | + unsigned short ds, __dsh; | |
812 | + unsigned short fs, __fsh; | |
813 | + unsigned short gs, __gsh; | |
814 | +}; | |
815 | + | |
816 | +struct target_revectored_struct { | |
817 | + target_ulong __map[8]; /* 256 bits */ | |
818 | +}; | |
819 | + | |
820 | +struct target_vm86_struct { | |
821 | + struct target_vm86_regs regs; | |
822 | + target_ulong flags; | |
823 | + target_ulong screen_bitmap; | |
824 | + target_ulong cpu_type; | |
825 | + struct target_revectored_struct int_revectored; | |
826 | + struct target_revectored_struct int21_revectored; | |
827 | +}; | |
828 | + | |
829 | +/* | |
830 | + * flags masks | |
831 | + */ | |
832 | +#define TARGET_VM86_SCREEN_BITMAP 0x0001 | |
833 | + | |
834 | +struct target_vm86plus_info_struct { | |
835 | + target_ulong flags; | |
836 | +#define TARGET_force_return_for_pic (1 << 0) | |
837 | +#define TARGET_vm86dbg_active (1 << 1) /* for debugger */ | |
838 | +#define TARGET_vm86dbg_TFpendig (1 << 2) /* for debugger */ | |
839 | +#define TARGET_is_vm86pus (1 << 31) /* for vm86 internal use */ | |
840 | + unsigned char vm86dbg_intxxtab[32]; /* for debugger */ | |
841 | +}; | |
842 | + | |
843 | +struct target_vm86plus_struct { | |
844 | + struct target_vm86_regs regs; | |
845 | + target_ulong flags; | |
846 | + target_ulong screen_bitmap; | |
847 | + target_ulong cpu_type; | |
848 | + struct target_revectored_struct int_revectored; | |
849 | + struct target_revectored_struct int21_revectored; | |
850 | + struct target_vm86plus_info_struct vm86plus; | |
851 | +}; | |
852 | + | |
853 | +/* ipcs */ | |
854 | + | |
855 | +#define TARGET_SEMOP 1 | |
856 | +#define TARGET_SEMGET 2 | |
857 | +#define TARGET_SEMCTL 3 | |
858 | +#define TARGET_MSGSND 11 | |
859 | +#define TARGET_MSGRCV 12 | |
860 | +#define TARGET_MSGGET 13 | |
861 | +#define TARGET_MSGCTL 14 | |
862 | +#define TARGET_SHMAT 21 | |
863 | +#define TARGET_SHMDT 22 | |
864 | +#define TARGET_SHMGET 23 | |
865 | +#define TARGET_SHMCTL 24 | |
866 | + | |
867 | +struct target_msgbuf { | |
868 | + int mtype; | |
869 | + char mtext[1]; | |
870 | +}; | |
871 | + | |
872 | +struct target_ipc_kludge { | |
873 | + unsigned int msgp; /* Really (struct msgbuf *) */ | |
874 | + int msgtyp; | |
875 | +}; | |
876 | + | |
877 | +struct alpha_msgbuf { | |
878 | + long mtype; | |
879 | + char mtext[4096]; | |
880 | +}; | |
881 | + | |
882 | +struct target_ipc_perm { | |
883 | + int key; | |
884 | + unsigned short uid; | |
885 | + unsigned short gid; | |
886 | + unsigned short cuid; | |
887 | + unsigned short cgid; | |
888 | + unsigned short mode; | |
889 | + unsigned short seq; | |
890 | +}; | |
891 | + | |
892 | +struct target_msqid_ds { | |
893 | + struct target_ipc_perm msg_perm; | |
894 | + unsigned int msg_first; /* really struct target_msg* */ | |
895 | + unsigned int msg_last; /* really struct target_msg* */ | |
896 | + unsigned int msg_stime; /* really target_time_t */ | |
897 | + unsigned int msg_rtime; /* really target_time_t */ | |
898 | + unsigned int msg_ctime; /* really target_time_t */ | |
899 | + unsigned int wwait; /* really struct wait_queue* */ | |
900 | + unsigned int rwait; /* really struct wait_queue* */ | |
901 | + unsigned short msg_cbytes; | |
902 | + unsigned short msg_qnum; | |
903 | + unsigned short msg_qbytes; | |
904 | + unsigned short msg_lspid; | |
905 | + unsigned short msg_lrpid; | |
906 | +}; | |
907 | + | |
908 | +struct target_shmid_ds { | |
909 | + struct target_ipc_perm shm_perm; | |
910 | + int shm_segsz; | |
911 | + unsigned int shm_atime; /* really target_time_t */ | |
912 | + unsigned int shm_dtime; /* really target_time_t */ | |
913 | + unsigned int shm_ctime; /* really target_time_t */ | |
914 | + unsigned short shm_cpid; | |
915 | + unsigned short shm_lpid; | |
916 | + short shm_nattch; | |
917 | + unsigned short shm_npages; | |
918 | + unsigned long *shm_pages; | |
919 | + void *attaches; /* really struct shm_desc * */ | |
920 | +}; | |
921 | + | |
922 | +#define TARGET_IPC_RMID 0 | |
923 | +#define TARGET_IPC_SET 1 | |
924 | +#define TARGET_IPC_STAT 2 | |
925 | + | |
926 | +union target_semun { | |
927 | + int val; | |
928 | + unsigned int buf; /* really struct semid_ds * */ | |
929 | + unsigned int array; /* really unsigned short * */ | |
930 | + unsigned int __buf; /* really struct seminfo * */ | |
931 | + unsigned int __pad; /* really void* */ | |
932 | +}; | |
933 | + | |
724 | 934 | /* soundcard defines (XXX: move them to generic file syscall_defs.h) */ |
725 | 935 | |
726 | 936 | #define TARGET_SNDCTL_COPR_HALT 0xc0144307 | ... | ... |