| /* |
| * Copyright (C) 2006 KPIT Cummins |
| * Copyright (C) 2009 Conny Marco Menebröcker |
| * All rights reserved. |
| * |
| * Redistribution and use in source and binary forms is permitted |
| * provided that the above copyright notice and following paragraph are |
| * duplicated in all such forms. |
| * |
| * This file is distributed WITHOUT ANY WARRANTY; without even the implied |
| * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
| */ |
| int trap0(int file, unsigned long ptr,int len) |
| { |
| asm volatile("TRAP #3"); |
| return len; |
| } |
| |
| |
| int trap1(int file, unsigned long ptr,int len) |
| { |
| asm volatile("TRAP #4"); |
| |
| } |
| |
| int trap_lseek(int file, unsigned long ptr,int len) |
| { |
| asm volatile("TRAP #8"); |
| |
| } |
| |
| |
| |
| volatile int opensys(char *name,int flags,int perms) |
| { |
| #ifndef __xc16xL__ |
| asm volatile("push r11\n" |
| "mov r11,r10 \n" |
| " mov r10,r9 \n" |
| " mov r9,#0x300 \n" |
| ); |
| |
| #endif |
| |
| asm volatile("trap #5"); |
| #ifndef __xc16xL__ |
| asm volatile("pop r11"); |
| #endif |
| } |
| |
| volatile int creatsys(char *name,int perms) |
| { |
| #ifndef __xc16xL__ |
| asm volatile("push r10\n" |
| " mov r10,r9 \n" |
| " mov r9,#0x300 \n" |
| ); |
| |
| #endif |
| |
| asm volatile("trap #7"); |
| #ifndef __xc16xL__ |
| asm volatile("pop r10"); |
| #endif |
| } |
| |
| |