Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | Download | RSS feed

  1. static inline
  2. int start_app(char *app_name, char *args){
  3. #pragma pack(push, 1)
  4.     struct file_op_t
  5.     {
  6.         uint32_t    fn;
  7.         uint32_t    flags;
  8.         char*       args;
  9.         uint32_t    res1, res2;
  10.         char        zero;
  11.         char*       app_name  __attribute__((packed));
  12.     } file_op;
  13.     memset(&file_op, 0, sizeof(file_op));
  14.     file_op.fn = 7;
  15.     file_op.args = args;
  16.     file_op.app_name = app_name;
  17.     #pragma pack(pop)
  18.     register int val;
  19.     asm volatile ("int $0x40":"=a"(val):"a"(70), "b"(&file_op));
  20.  
  21.     return val;
  22. }
  23.