Subversion Repositories Kolibri OS

Rev

Rev 8403 | Go to most recent revision | Blame | Last modification | View Log | Download | RSS feed

  1. #ifndef kolibrisys_h
  2. #define kolibrisys_h
  3. /*
  4. #ifdef GNUC
  5. #define stdcall __stdcall
  6. #define cdecl __cdecl
  7. #else
  8. #define stdcall  ((__stdcall))
  9. #define cdecl    ((__cdecl))
  10. #endif
  11. */
  12. //#ifdef GNUC
  13. //#define stdcall __stdcall
  14. //#else
  15. #define cdecl   __attribute__ ((cdecl))
  16. #define stdcall __attribute__ ((stdcall))
  17. //#endif
  18. typedef void* func_ptr;
  19. typedef unsigned int dword;
  20. typedef unsigned char byte;
  21. typedef unsigned short word;
  22.  
  23. typedef unsigned int fpos_t;
  24. typedef unsigned int size_t;
  25. #pragma pack(push,1)
  26. struct process_table_entry{
  27.   int cpu_usage;             //+0
  28.   int window_pos_info;       //+4
  29.   short int reserved1;       //+8
  30.   char name[12];             //+10
  31.   int memstart;              //+22
  32.   int memused;               //+26
  33.   int pid;                   //+30
  34.   int winx_start;            //+34
  35.   int winy_start;            //+38
  36.   int winx_size;             //+42
  37.   int winy_size;             //+46
  38.   short int slot_info;       //+50
  39.   short int reserved2;       //+52
  40.   int clientx;               //+54
  41.   int clienty;               //+58
  42.   int clientwidth;           //+62
  43.   int clientheight;          //+66
  44.   unsigned char window_state;//+70
  45.   char reserved3[1024-71];   //+71
  46. };
  47. #pragma pack(pop)
  48.  
  49. //-----------------------------------------------------------------------------------
  50. //------------------------KolibriOS system acces to files----------------------------
  51. //-----------------------------------------------------------------------------------
  52. extern dword stdcall _ksys_get_filesize(char *filename);
  53. extern dword stdcall _ksys_readfile(char *filename,dword pos,dword blocksize,void *data, int *preadbytes);
  54. extern dword stdcall _ksys_rewritefile(char *filename,dword blocksize,void *data);
  55. extern dword stdcall _ksys_appendtofile(char *filename,dword pos,dword blocksize,void *data);
  56. //-----------------------------------------------------------------------------------
  57.  
  58. //----------------------Run program---------------------------------------------------
  59. extern void stdcall _ksys_run_program(char* filename,char* parameters);
  60. //------------------------------------------------------------------------------------
  61.  
  62. //--------------------Debug output---------------------------------------------------
  63. extern void stdcall _ksys_debug_out(int c);
  64. extern void stdcall debug_out_str(char* str);
  65. //-----------------------------------------------------------------------------------
  66.  
  67. //--------------------------Mouse state----------------------------------------------
  68. extern int   stdcall _ksys_GetMouseXY(void);
  69. extern int   stdcall _ksys_GetMouseButtonsState(void);
  70. //-----------------------------------------------------------------------------------
  71.  
  72. //--------------------------get skin height------------------------------------------
  73. extern int   stdcall _ksys_get_skin_height(void);
  74. //-----------------------------------------------------------------------------------
  75.  
  76. //----------------------------background---------------------------------------------
  77. extern void stdcall _ksys_set_background_size(int xsize,int ysize);
  78. extern void stdcall _ksys_write_background_mem(int pos,int color);
  79. extern void stdcall _ksys_draw_background(void);
  80. extern void stdcall _ksys_set_background_draw_type(int type);
  81. extern void stdcall _ksys_background_blockmove(void* src,int bgr_pos, int count);
  82. //-----------------------------------------------------------------------------------
  83.  
  84. //----------------------------functionf for draw window,lines.bar,etc.---------------
  85. extern void stdcall _ksys_draw_window(int xcoord,int ycoord, int xsize,
  86.                                int ysize,int workcolor,int type,
  87.                                int captioncolor,int windowtype,int bordercolor);
  88. extern void stdcall _ksys_window_redraw(int status);
  89. extern int  stdcall _ksys_putpixel(int x,int y,int color);
  90. extern void stdcall _ksys_draw_bar(int x, int y, int xsize, int ysize, int color);
  91. extern void stdcall _ksys_line(int x1,int y1,int x2,int y2,int color);
  92. extern void stdcall _ksys_putimage(int x, int y, int xsize, int ysize, void* image);
  93. //-----------------------------------------------------------------------------------
  94.  
  95. //--------------------------write text(system fonts 6x9)-----------------------------
  96. extern void stdcall _ksys_write_text(int x,int y,int color,char* text,int len);
  97. //-----------------------------------------------------------------------------------
  98.  
  99. //------------------  get screen size  and bytes per pixel---------------------------
  100. extern int  stdcall _ksys_get_screen_size(int* x,int* y);
  101. extern void stdcall _ksys_dga_get_resolution(int* xres, int* yres, int* bpp, int* bpscan);
  102. //-----------------------------------------------------------------------------------
  103.  
  104. //-------------------------------craete thread---------------------------------------
  105. extern void* stdcall  _ksys_start_thread(void (* func_ptr)(void),int stack_size,int* pid);
  106. //-----------------------------------------------------------------------------------
  107.  
  108. //------------------system button(Old function. Better use libGUI functions.)--------
  109. extern void stdcall _ksys_make_button(int x, int y, int xsize, int ysize, int id, int color);
  110. extern int  stdcall _ksys_get_button_id(void); //get state of system button
  111. //------------------------------------------------------------------------------------
  112.  
  113. //----------------------system clock(in 1/100 sec.) and date--------------------------
  114. extern int  stdcall _ksys_get_system_clock(void);
  115. extern int  stdcall _ksys_get_date(void);
  116. //------------------------------------------------------------------------------------
  117.  
  118. //-------------------------system delay(in 1/100 sec.)-------------------------------
  119. extern void stdcall _ksys_delay(int m);
  120. //-----------------------------------------------------------------------------------
  121.  
  122. //------------------------system events----------------------------------------------
  123. extern int  stdcall _ksys_wait_for_event_infinite(void);
  124. extern int  stdcall _ksys_check_for_event(void);
  125. extern int  stdcall _ksys_wait_for_event(int time);
  126. extern void stdcall _ksys_set_wanted_events(int ev);
  127. //-----------------------------------------------------------------------------------
  128.  
  129. //----------------------------system exit program------------------------------------
  130. extern void stdcall _ksys_exit(void);
  131. //-----------------------------------------------------------------------------------
  132.  
  133. //-----------------------------system IPC send message-------------------------------
  134. extern void stdcall _ksys_send_message(int pid, void* msg, int size);
  135. //-----------------------------------------------------------------------------------
  136.  
  137. //---------------------------system work with IRQ from user mode---------------------
  138. extern void stdcall _ksys_define_receive_area(void* area, int size);
  139. extern int  stdcall _ksys_get_irq_owner(int irq);
  140. extern int  stdcall _ksys_get_data_read_by_irq(int irq, int* size, void* data);
  141. extern int  stdcall _ksys_send_data_to_device(int port, unsigned char val);
  142. extern int  stdcall _ksys_receive_data_from_device(int port,unsigned char* data);
  143. extern void stdcall _ksys_program_irq(void* intrtable, int irq);
  144. extern void stdcall _ksys_reserve_irq(int irq);
  145. extern void stdcall _ksys_free_irq(int irq);
  146. //----------------------------------------------------------------------------------
  147.  
  148. //----------------------------system reserve diapason of ports----------------------
  149. extern int  stdcall _ksys_reserve_port_area(int start,int end);
  150. extern int  stdcall _ksys_free_port_area(int start,int end);
  151. //----------------------------------------------------------------------------------
  152.  
  153. //-------------functions get key and set keyboard mode------------------------------
  154. extern int  stdcall _ksys_get_key(void);
  155. extern void stdcall _ksys_set_keyboard_mode(int mode);
  156. //----------------------------------------------------------------------------------
  157.  
  158. //--------------simple work with MPU401 sound device---------------------------------
  159. extern void stdcall _ksys_midi_reset(void);
  160. extern void stdcall _ksys_midi_send(int data);
  161. //-----------------------------------------------------------------------------------
  162.  
  163. //--------------------------acces to PCI BUS from user mode---------------------------
  164. extern int  stdcall _ksys_get_pci_version(void);
  165. extern int  stdcall _ksys_get_last_pci_bus(void);
  166. extern int  stdcall _ksys_get_pci_access_mechanism(void);
  167. extern int  stdcall _ksys_pci_read_config_byte(int bus,int dev,int fn,int reg);
  168. extern int  stdcall _ksys_pci_read_config_word(int bus,int dev,int fn,int reg);
  169. extern int  stdcall _ksys_pci_read_config_dword(int bus,int dev,int fn,int reg);
  170. extern int  stdcall _ksys_pci_write_config_byte(int bus,int dev,int fn,int reg,int value);
  171. extern int  stdcall _ksys_pci_write_config_word(int bus,int dev,int fn,int reg,int value);
  172. extern int  stdcall _ksys_pci_write_config_dword(int bus,int dev,int fn,int reg,int value);
  173. //--------------------------------------------------------------------------------------
  174.  
  175. //------------------------Working with processes--------------------------------------
  176. extern int  stdcall _ksys_get_process_table(struct process_table_entry *proctab,int pid); //if pid=-1 than get info about him.
  177. extern int  stdcall _ksys_kill_process(int pid); // if it returns -1 then an error.
  178. //---------------------------------------------------------------------------------
  179.  
  180. //-----------------Old functions for work with sound(Sound Blaster only).---------
  181. extern void stdcall _ksys_sound_load_block(void* blockptr);
  182. extern void stdcall _ksys_sound_play_block(void);
  183. extern void stdcall _ksys_sound_set_channels(int channels);
  184. extern void stdcall _ksys_sound_set_data_size(int size);
  185. extern void stdcall _ksys_sound_set_frequency(int frequency);
  186. //--------------------------------------------------------------------------------
  187.  
  188. //------------------------------system speaker(integrated speaker)----------------
  189. extern void stdcall _ksys_sound_speaker_play(void* data);
  190. //--------------------------------------------------------------------------------
  191.  
  192. //------------------function for work with Dinamic Link Librarys(DLL)--------------
  193. extern dword* stdcall _ksys_cofflib_load(char* name);
  194. extern func_ptr stdcall _ksys_cofflib_getproc(void* exp,char* sz_name);
  195. //---------------------------------------------------------------------------------
  196.  
  197. #endif
  198.