Changeset d3d2afdf in rtems


Ignore:
Timestamp:
Oct 25, 2005, 11:17:35 AM (14 years ago)
Author:
Joel Sherrill <joel.sherrill@…>
Branches:
4.10, 4.11, 4.8, 4.9, master
Children:
b259863
Parents:
072e8e5
Message:

2005-10-25 Joel Sherrill <joel@…>

  • sapi/include/confdefs.h, telnetd/pty.c, telnetd/pty.h: Attempt to fix MAX_PTYS and provide a real configuration entry. This should make telnetd some suitable for inclusion in cpukit.
Location:
cpukit
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • cpukit/ChangeLog

    r072e8e5 rd3d2afdf  
     12005-10-25      Joel Sherrill <joel@OARcorp.com>
     2
     3        * sapi/include/confdefs.h, telnetd/pty.c, telnetd/pty.h: Attempt
     4        to fix MAX_PTYS and provide a real configuration entry.  This should
     5        make telnetd some suitable for inclusion in cpukit.
     6
    172005-10-17      Ralf Corsepius <ralf.corsepius@rtems.org>
    28
  • cpukit/sapi/include/confdefs.h

    r072e8e5 rd3d2afdf  
    105105
    106106/*
     107 *  PTYs
     108 */
     109
     110#ifndef CONFIGURE_MAXIMUM_PTYS
     111#define CONFIGURE_MAXIMUM_PTYS 0
     112#endif
     113
     114#ifdef CONFIGURE_INIT
     115int rtems_telnetd_maximum_ptys = CONFIGURE_MAXIMUM_PTYS;
     116#else
     117extern int rtems_telnetd_maximum_ptys;
     118#endif
     119
     120/*
    107121 *  Mount Table Configuration
    108122 */
  • cpukit/telnetd/pty.c

    r072e8e5 rd3d2afdf  
    4646#define IAC_EOR    239
    4747
    48 struct pty_tt;
    49 typedef struct pty_tt pty_t;
    50 
    51 struct pty_tt {
     48typedef struct {
    5249 char                     *devname;
    5350 struct rtems_termios_tty *ttyp;
     
    5855 int                       last_cr;
    5956 int                       iac_mode;   
    60 };
     57} pty_t;
    6158
    6259
    6360int ptys_initted=FALSE;
    64 pty_t ptys[MAX_PTYS];
     61pty_t *ptys;
     62int rtems_telnetd_maximum_ptys;
    6563
    6664/* This procedure returns the devname for a pty slot free.
     
    7270        int ndx;
    7371        if (!ptys_initted) return NULL;
    74         for (ndx=0;ndx<MAX_PTYS;ndx++) {
     72        for (ndx=0;ndx<rtems_telnetd_maximum_ptys;ndx++) {
    7573                if (ptys[ndx].socket<0) {
    7674                        ptys[ndx].socket=socket;
     
    206204static int
    207205ptySetAttributes(int minor,const struct termios *t) {
    208         if (minor<MAX_PTYS) {   
     206        if (minor<rtems_telnetd_maximum_ptys) {
    209207         ptys[minor].c_cflag=t->c_cflag;       
    210208        } else {
     
    218216        rtems_libio_open_close_args_t * args = arg;
    219217        struct termios t;
    220         if (minor<MAX_PTYS) {   
     218        if (minor<rtems_telnetd_maximum_ptys) {
    221219         if (ptys[minor].socket<0) return -1;           
    222220         ptys[minor].opened=TRUE;
     
    231229static int
    232230ptyShutdown(int major,int minor,void * arg) {
    233         if (minor<MAX_PTYS) {   
     231        if (minor<rtems_telnetd_maximum_ptys) {
    234232         ptys[minor].opened=FALSE;
    235233         if (ptys[minor].socket>=0) close(ptys[minor].socket);
     
    247245ptyPollWrite(int minor, const char * buf,int len) {
    248246        int count;
    249         if (minor<MAX_PTYS) {   
     247        if (minor<rtems_telnetd_maximum_ptys) {
    250248         if (ptys[minor].socket<0) return -1;           
    251249         count=write(ptys[minor].socket,buf,len);
     
    259257ptyPollRead(int minor) {
    260258        int result;
    261         if (minor<MAX_PTYS) {   
     259        if (minor<rtems_telnetd_maximum_ptys) {
    262260         if (ptys[minor].socket<0) return -1;           
    263261         result=read_pty(minor);
     
    284282void init_ptys(void) {
    285283        int ndx;
    286         for (ndx=0;ndx<MAX_PTYS;ndx++) {
     284        ptys = malloc( sizeof(pty_t) * rtems_telnetd_maximum_ptys );
     285        for (ndx=0;ndx<rtems_telnetd_maximum_ptys;ndx++) {
    287286                ptys[ndx].devname=malloc(strlen("/dev/ptyXX")+1);
    288287                sprintf(ptys[ndx].devname,"/dev/pty%X",ndx);
     
    316315{
    317316  int ndx;     
    318   rtems_status_code status ;
     317  rtems_status_code status;
    319318
    320319  /*
     
    327326   * Register the devices
    328327   */
    329   for (ndx=0;ndx<MAX_PTYS;ndx++) {
     328  for (ndx=0;ndx<rtems_telnetd_maximum_ptys;ndx++) {
    330329   status = rtems_io_register_name(ptys[ndx].devname, major, ndx);
    331330   if (status != RTEMS_SUCCESSFUL)
     
    334333   chown(ptys[ndx].devname,2,0); /* tty,root*/
    335334  };
    336   printk("Device: /dev/pty%X../dev/pty%X (%d)pseudo-terminals registered.\n",0,MAX_PTYS-1,MAX_PTYS);
     335  printk("Device: /dev/pty%X../dev/pty%X (%d)pseudo-terminals registered.\n",
     336      0,rtems_telnetd_maximum_ptys-1,rtems_telnetd_maximum_ptys);
    337337
    338338  return RTEMS_SUCCESSFUL;
  • cpukit/telnetd/pty.h

    r072e8e5 rd3d2afdf  
    2020
    2121#include <rtems.h>     
    22 
    23 #ifndef MAX_PTYS       
    24 #define MAX_PTYS        16
    25 #endif
    2622
    2723char * get_pty(int socket);
Note: See TracChangeset for help on using the changeset viewer.