Ticket #374: patch

File patch, 2.7 KB (added by Eric Norum, on 12/03/06 at 13:31:12)

patch

  • Makefile.am

    RCS file: /usr1/CVS/rtems/cpukit/libnetworking/Makefile.am,v
    retrieving revision 1.28
    diff -u -r1.28 Makefile.am
     
    159159rtems_C_FILES = rtems/sghostname.c rtems/issetugid.c rtems/rtems_glue.c rtems/rtems_syscall.c \
    160160    rtems/rtems_bootp.c rtems/rtems_showmbuf.c rtems/rtems_showroute.c rtems/rtems_showifstat.c \
    161161    rtems/rtems_showipstat.c rtems/rtems_showicmpstat.c rtems/rtems_showtcpstat.c \
    162     rtems/rtems_showudpstat.c rtems/rtems_select.c rtems/mkrootfs.c
     162    rtems/rtems_showudpstat.c rtems/rtems_select.c rtems/mkrootfs.c \
     163    rtems_bsdnet_malloc_starvation.c
    163164OBJS += $(rtems_C_FILES:rtems/%.c=$(ARCH)/%.$(OBJEXT))
    164165
    165166$(ARCH)/%.$(OBJEXT): rtems/%.c
  • rtems/rtems_bsdnet.h

    RCS file: /usr1/CVS/rtems/cpukit/libnetworking/rtems/rtems_bsdnet.h,v
    retrieving revision 1.12
    diff -u -r1.12 rtems_bsdnet.h
     
    182182
    183183int rtems_bsdnet_synchronize_ntp (int interval, rtems_task_priority priority);
    184184
     185/*
     186 * Callback to report BSD malloc starvation.
     187 * The default implementation just prints a message but an application
     188 * can provide its own version.
     189 */
     190void rtems_bsdnet_malloc_starvation(void);
     191
    185192#endif /* _RTEMS_BSDNET_ */
  • rtems/rtems_glue.c

    RCS file: /usr1/CVS/rtems/cpukit/libnetworking/rtems/rtems_glue.c,v
    retrieving revision 1.29
    diff -u -r1.29 rtems_glue.c
     
    117117                        return p;
    118118                rtems_bsdnet_semaphore_release ();
    119119                if (++try >= 30) {
    120                         printf ("rtems_bsdnet_malloc still waiting.\n");
     120                        rtems_bsdnet_malloc_starvation();
    121121                        try = 0;
    122122                }
    123                 while (rtems_bsdnet_seconds_since_boot() == 0)
    124                         rtems_task_wake_after(1);
     123        rtems_task_wake_after (rtems_bsdnet_ticks_per_second);
    125124                rtems_bsdnet_semaphore_obtain ();
    126125        }
    127126}
     
    272271        /*
    273272         * Ensure that `seconds' is greater than 0
    274273         */
    275         rtems_task_wake_after (rtems_bsdnet_ticks_per_second);
     274    while (rtems_bsdnet_seconds_since_boot() == 0)
     275        rtems_task_wake_after(1);
    276276
    277277        /*
    278278         * Set up BSD-style sockets