diff options
author | Kazu Hirata <kazu@codesourcery.com> | 2006-09-01 05:41:06 +0000 |
---|---|---|
committer | Kazu Hirata <kazu@codesourcery.com> | 2006-09-01 05:41:06 +0000 |
commit | c023e783e91748c9f1a8d6d19d98130c55389a3c (patch) | |
tree | af939ae3f785a4bca156931a8e7736d6ade7ba8b /libgloss/m68k/bdm-gdb.c | |
parent | 1202770601a3d1eff4901fcccf70ad9943e38dc0 (diff) | |
download | cygnal-c023e783e91748c9f1a8d6d19d98130c55389a3c.tar.gz cygnal-c023e783e91748c9f1a8d6d19d98130c55389a3c.tar.bz2 cygnal-c023e783e91748c9f1a8d6d19d98130c55389a3c.zip |
libgloss/
Merge from newlib-csl-20060320-branch:
2006-08-31 Nathan Sidwell <nathan@codesourcery.com>
* m68k/bdm-crt1.c: Call hardware_init_hook before copying
initialized data.
* m68k/Makefile.in (CF_BDM_SCRIPTS): Rename to CF_RAM_SCRIPTS.
(CF_SCRIPTS): Update.
(%-bdm.ld): Rename to %-ram.ld.
2006-08-25 Nathan Sidwell <nathan@codesourcery.com>
* m68k/Makefile.in (DBUG_BSP, DBUG_OBJS): Remove.
(BDM_CRT0): New.
(BDM_OBJS): Add bdm-crt1.o.
(BDM_OTHER_OBJS): Remove print.o putnum.o
(CF_BOARDS): New.
(CF_BDM_SCRIPTS): Generated name of ram scripts.
(CF_ROM_SCRIPTS): Generated name of rom scripts.
(CF_SCRIPTS): Adjust.
(all): Add BDM_CRT0.
(bdm-crt0.o, bdm-crt1.o): New targets.
(bdm-isv.o): Remove.
(m5208evb, m5213evb, m52235evb, m5235evb, m5273c3, m5282evb,
m5329evb, m5485evb): New.
(%-bdm.ld, %-rom.ld): New. Replace individual linker script rules.
(install): Remove DBUG installs.
* m68k/bdm-crt0.S: New.
* m68k/bdm-crt1.c: New.
* m68k/bdm-exit.c: Call __reset.
* m68k/bdm-isv.c: Remove.
* m68k/cf.sc: Adjust to produce either rom or ram images.
* m68k/dbug-exit.S, m68k/dbug-inbyte.S, m68k/dbug-outbyte.S: Remove.
2006-07-24 Nathan Sidwell <nathan@codesourcery.com>
Bug 844
* m68k/cf.sc: Set entry point to _start.
* m68k/crt0.X (_start): New name for entrypoint
(start): Weak alias for start.
2006-06-09 Nathan Sidwell <nathan@codesourcery.com>
* m68k/bdm-system.c (_system): Support system(NULL).
2006-06-08 Nathan Sidwell <nathan@codesourcery.com>
* m68k/bdm-system.c (_system): Properly encode non failure exit
code.
2006-06-05 Nathan Sidwell <nathan@codesourcery.com>
* m68k/Makefile.in (BDM_SYSOBJS): Remove bdm-inbyte.o.
Add bdm-time.o.
* m68k/bdm-close.c: Add copyright notice.
* m68k/bdm-fstat.c: Add copyright notice.
* m68k/bdm-gettimeofday.c: Add copyright notice.
* m68k/bdm-inbyte.c: Remove.
* m68k/bdm-isatty.c: Add copyright notice.
* m68k/bdm-lseek.c: Add copyright notice. Fix &/| thinko.
* m68k/bdm-open.c: Add copyright notice.
* m68k/bdm-read.c: Add copyright notice.
* m68k/bdm-rename.c: Add copyright notice.
* m68k/bdm-stat.c: Add copyright notice.
* m68k/bdm-system.c: Add copyright notice.
* m68k/bdm-time.c: New.
* m68k/bdm-unlink.c: Add copyright notice.
* m68k/bdm-write.c: Add copyright notice.
2006-05-25 Nathan Sidwell <nathan@codesourcery.com>
* m68k/Makefile.in (m52235-dbug.ld, m52235-bdm.ld): New
scripts.
2006-05-24 Nathan Sidwell <nathan@codesourcery.com>
* m68k/Makefile.in (BDM_SYSOBJS): Remove bdm-outbyte.o.
* m68k/bdm-outbyte.c: Delete.
* m68k/bdm-semihost.h (BDM_OUTBYTE): Mark as obsolete.
2006-05-22 Sandra Loosemore <sandra@codesourcery.com>
* m68k/bdm-semihost.h: Add new constants for additional
semihosting functions. Add new BDM_TRAP macro to encapsulate
inline asm.
* m68k/bdm-exit.c (_exit): Use new BDM_TRAP macro.
* m68k/bdm-outbyte.c (outbyte): Ditto.
* m68k/bdm-isrs.c, m68k/bdm-isv.c: Former BDM_TRAP
now called BDM_TRAPNUM.
* m68k/bdm-gdb.h, m68k/bdm-gdb.c: New files
containing declarations and conversion functions for GDB's fileio
protocol.
* m68k/bdm-close.c: New file to define corresponding function.
* m68k/bdm-fstat.c: Ditto.
* m68k/bdm-gettimeofday.c: Ditto.
* m68k/bdm-isatty.c: Ditto.
* m68k/bdm-lseek.c: Ditto.
* m68k/bdm-open.c: Ditto.
* m68k/bdm-read.c: Ditto.
* m68k/bdm-rename.c: Ditto.
* m68k/bdm-stat.c: Ditto.
* m68k/bdm-system.c: Ditto.
* m68k/bdm-unlink.c: Ditto.
* m68k/bdm-write.c Ditto.
* m68k/Makefile.in: Add dependencies for new files.
2006-03-29 Nathan Sidwell <nathan@codesourcery.com>
* m68k/bdm-isv.c (software_init_hook): Fix trap numbering.
* m68k/Makefile.in (CF_SCRIPTS): Add m5329 board.
Reorder.
(*-dbug.ld, *-bdm.ld): Add appropriate IO definition.
(m5329evb-dbug.ld, m5329evb-bdm.ld): New.
* cf.sc (GROUP): Revert previous change. Add IO library.
* m68k/Makefile.in (BDM_BSP, BDM_OBJS, BDM_ISRS): New.
(CF_SCRIPTS): Rename dbug scripts. Add bdm scripts. Add m5485
scripts.
(all): Add new targets.
(BDM_BSP): New target.
(bdm-isv.o, bdm-exit.o, bdm-outbyte.o, bdm-semihost.o): New
targets.
(BDM_ISRS): New targets.
(m5208evb.ld, m5213evb.ld, m5235evb.ld, m5272c3.ld, m5282evb.ld):
Rename and adjust.
(m5485evb-dbug): New.
(m5208evb-bdm.ld, m5213evb-bdm.ld, m5235evb-bdm.ld,
m5272c3-bdm.ld, m5282evb-bdm.ld, m5485evb-bdm.ld): New.
(install): Add BDM_BSP.
* m68k/bdm-exit.c: New
* m68k/bdm-inbyte.c: New
* m68k/bdm-outbyte.c: New
* m68k/bdm-semihost.c: New
* m68k/bdm-semihost.h: New
* m68k/bdm-isrs.c: New.
* m68k/bdm-isv.c: New.
* dbug-cf.sc: Renamed to ...
* cf.sc: ... here. Add bdm flexibility. Remove GROUP
2006-05-22 Sandra Loosemore <sandra@codesourcery.com>
* m68k/bdm-semihost.h: Add new constants for additional
semihosting functions. Add new BDM_TRAP macro to encapsulate
inline asm.
* m68k/bdm-exit.c (_exit): Use new BDM_TRAP macro.
* m68k/bdm-outbyte.c (outbyte): Ditto.
* m68k/bdm-isrs.c, m68k/bdm-isv.c: Former BDM_TRAP
now called BDM_TRAPNUM.
* m68k/bdm-gdb.h, m68k/bdm-gdb.c: New files
containing declarations and conversion functions for GDB's fileio
protocol.
* m68k/bdm-close.c: New file to define corresponding function.
* m68k/bdm-fstat.c: Ditto.
* m68k/bdm-gettimeofday.c: Ditto.
* m68k/bdm-isatty.c: Ditto.
* m68k/bdm-lseek.c: Ditto.
* m68k/bdm-open.c: Ditto.
* m68k/bdm-read.c: Ditto.
* m68k/bdm-rename.c: Ditto.
* m68k/bdm-stat.c: Ditto.
* m68k/bdm-system.c: Ditto.
* m68k/bdm-unlink.c: Ditto.
* m68k/bdm-write.c Ditto.
* m68k/Makefile.in: Add dependencies for new files.
newlib/
Merge from newlib-csl-20060320-branch:
2006-05-22 Sandra Loosemore <sandra@codesourcery.com>
* configure.host: Tell it we have _rename and _system when
building m68k-unknown-elf.
Diffstat (limited to 'libgloss/m68k/bdm-gdb.c')
-rw-r--r-- | libgloss/m68k/bdm-gdb.c | 140 |
1 files changed, 140 insertions, 0 deletions
diff --git a/libgloss/m68k/bdm-gdb.c b/libgloss/m68k/bdm-gdb.c new file mode 100644 index 000000000..7ad1ea1ef --- /dev/null +++ b/libgloss/m68k/bdm-gdb.c @@ -0,0 +1,140 @@ +/* + * bdm support for GDB's remote fileio protocol + * + * Copyright (c) 2006 CodeSourcery Inc + * + * The authors hereby grant permission to use, copy, modify, distribute, + * and license this software and its documentation for any purpose, provided + * that existing copyright notices are retained in all copies and that this + * notice is included verbatim in any distributions. No written agreement, + * license, or royalty fee is required for any of the authorized uses. + * Modifications to this software may be copyrighted by their authors + * and need not follow the licensing terms described here, provided that + * the new terms are clearly indicated on the first page of each file where + * they apply. + */ + +#include "bdm-gdb.h" +#include <fcntl.h> +#include <unistd.h> +#include <errno.h> + +gdb_mode_t +convert_to_gdb_mode_t (mode_t m) +{ + gdb_mode_t result = 0; + if (m & S_IFREG) + result |= GDB_S_IFREG; + if (m & S_IFDIR) + result |= GDB_S_IFDIR; + if (m & S_IRUSR) + result |= GDB_S_IRUSR; + if (m & S_IWUSR) + result |= GDB_S_IWUSR; + if (m & S_IXUSR) + result |= GDB_S_IXUSR; + if (m & S_IRGRP) + result |= GDB_S_IRGRP; + if (m & S_IWGRP) + result |= GDB_S_IWGRP; + if (m & S_IXGRP) + result |= GDB_S_IXGRP; + if (m & S_IROTH) + result |= GDB_S_IROTH; + if (m & S_IWOTH) + result |= GDB_S_IWOTH; + if (m & S_IXOTH) + result |= GDB_S_IXOTH; + return result; +} + +int32_t +convert_to_gdb_open_flags (int f) +{ + int32_t result = 0; + if (f & O_RDONLY) + result |= GDB_O_RDONLY; + if (f & O_WRONLY) + result |= GDB_O_WRONLY; + if (f & O_RDWR) + result |= GDB_O_RDWR; + if (f & O_APPEND) + result |= GDB_O_APPEND; + if (f & O_CREAT) + result |= GDB_O_CREAT; + if (f & O_TRUNC) + result |= GDB_O_TRUNC; + if (f & O_EXCL) + result |= GDB_O_EXCL; + return result; +} + +int32_t +convert_to_gdb_lseek_flags (int f) +{ + if (f == SEEK_CUR) + return GDB_SEEK_CUR; + else if (f == SEEK_END) + return GDB_SEEK_END; + else + return GDB_SEEK_SET; +} + +void +convert_from_gdb_stat (const struct gdb_stat *gs, + struct stat *s) +{ + s->st_dev = gs->st_dev; + s->st_ino = gs->st_ino; + s->st_mode = gs->st_mode; + s->st_nlink = gs->st_nlink; + s->st_uid = gs->st_uid; + s->st_gid = gs->st_gid; + s->st_rdev = gs->st_rdev; + s->st_size = gs->st_size; + s->st_blksize = gs->st_blksize; + s->st_blocks = gs->st_blocks; + s->st_atime = gs->st_atime; + s->st_mtime = gs->st_mtime; + s->st_ctime = gs->st_ctime; +} + +void +convert_from_gdb_timeval (const struct gdb_timeval *gt, + struct timeval *t) +{ + t->tv_sec = gt->tv_sec; + t->tv_usec = gt->tv_usec; +} + +int +convert_from_gdb_errno (int32_t err) +{ + switch (err) + { + case 0: return 0; + case GDB_EPERM: return EPERM; + case GDB_ENOENT: return ENOENT; + case GDB_EINTR: return EINTR; + case GDB_EBADF: return EBADF; + case GDB_EACCES: return EACCES; + case GDB_EFAULT: return EFAULT; + case GDB_EBUSY: return EBUSY; + case GDB_EEXIST: return EEXIST; + case GDB_ENODEV: return ENODEV; + case GDB_ENOTDIR: return ENOTDIR; + case GDB_EISDIR: return EISDIR; + case GDB_EINVAL: return EINVAL; + case GDB_ENFILE: return ENFILE; + case GDB_EMFILE: return EMFILE; + case GDB_EFBIG: return EFBIG; + case GDB_ENOSPC: return ENOSPC; + case GDB_ESPIPE: return ESPIPE; + case GDB_EROFS: return EROFS; + case GDB_ENAMETOOLONG: return ENAMETOOLONG; + case GDB_EUNKNOWN: + default: + return EIO; + } +} + |