Commit 7ed601b782cbcaf0cddff6c5725712e47972f26d

Authored by bellard
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
... ...