Changeset 4a8f953 in rtems-libbsd


Ignore:
Timestamp:
May 4, 2017, 12:27:58 PM (3 years ago)
Author:
Kevin Kirspel <kevin-kirspel@…>
Branches:
afaeccc05a556f6aa25ba044a7e49d6aa634a59e, master
Children:
880a17c
Parents:
567cce1
git-author:
Kevin Kirspel <kevin-kirspel@…> (05/04/17 12:27:58)
git-committer:
Sebastian Huber <sebastian.huber@…> (05/11/17 09:15:41)
Message:

Updating FREEBSD for tty support

Location:
freebsd/sys
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • freebsd/sys/fs/devfs/devfs_int.h

    r567cce1 r4a8f953  
    6464        struct devfs_dirent     **cdp_dirents;
    6565        struct devfs_dirent     *cdp_dirent0;
     66#endif /* __rtems__ */
    6667
    6768        TAILQ_ENTRY(cdev_priv)  cdp_dtr_list;
     
    7071
    7172        LIST_HEAD(, cdev_privdata) cdp_fdpriv;
    72 #endif /* __rtems__ */
    7373};
    7474
  • freebsd/sys/fs/devfs/devfs_vnops.c

    r567cce1 r4a8f953  
    6565#include <sys/ttycom.h>
    6666#include <rtems/bsd/sys/unistd.h>
     67#ifndef __rtems__
    6768#include <sys/vnode.h>
    6869
     
    7273
    7374#include <fs/devfs/devfs.h>
     75#endif /* __rtems__ */
    7476#include <fs/devfs/devfs_int.h>
    7577
     78#ifndef __rtems__
    7679#include <security/mac/mac_framework.h>
    7780
     
    7982#include <vm/vm_extern.h>
    8083#include <vm/vm_object.h>
     84#endif /* __rtems__ */
    8185
    8286static MALLOC_DEFINE(M_CDEVPDATA, "DEVFSP", "Metainfo for cdev-fp data");
    8387
     88#ifndef __rtems__
    8489struct mtx      devfs_de_interlock;
    8590MTX_SYSINIT(devfs_de_interlock, &devfs_de_interlock, "devfs interlock", MTX_DEF);
    8691struct sx       clone_drain_lock;
    8792SX_SYSINIT(clone_drain_lock, &clone_drain_lock, "clone events drain lock");
     93#endif /* __rtems__ */
    8894struct mtx      cdevpriv_mtx;
    8995MTX_SYSINIT(cdevpriv_mtx, &cdevpriv_mtx, "cdevpriv lock", MTX_DEF);
    9096
     97#ifndef __rtems__
    9198SYSCTL_DECL(_vfs_devfs);
    9299
     
    133140        return (0);
    134141}
     142#endif /* __rtems__ */
    135143
    136144int
     
    221229}
    222230
     231#ifndef __rtems__
    223232/*
    224233 * On success devfs_populate_vp() returns with dmp->dm_lock held.
     
    19301939CTASSERT(O_NONBLOCK == IO_NDELAY);
    19311940CTASSERT(O_FSYNC == IO_SYNC);
     1941#endif /* __rtems__ */
  • freebsd/sys/kern/kern_conf.c

    r567cce1 r4a8f953  
    6060struct mtx devmtx;
    6161static void destroy_devl(struct cdev *dev);
    62 #ifndef __rtems__
    6362static int destroy_dev_sched_cbl(struct cdev *dev,
    6463    void (*cb)(void *), void *arg);
    6564static void destroy_dev_tq(void *ctx, int pending);
    66 #endif /* __rtems__ */
    6765static int make_dev_credv(int flags, struct cdev **dres, struct cdevsw *devsw,
    6866    int unit, struct ucred *cr, uid_t uid, gid_t gid, int mode, const char *fmt,
     
    165163}
    166164
    167 #ifndef __rtems__
    168165void
    169166dev_rel(struct cdev *dev)
     
    190187                devfs_free(dev);
    191188}
    192 #endif /* __rtems__ */
    193189
    194190struct cdevsw *
     
    972968        return (res);
    973969}
     970#endif /* __rtems__ */
    974971
    975972static void
     
    10511048}
    10521049
     1050#ifndef __rtems__
    10531051int
    10541052make_dev_alias_p(int flags, struct cdev **cdev, struct cdev *pdev,
     
    11571155        dev->si_flags &= ~SI_NAMED;
    11581156
    1159 #ifndef __rtems__
    11601157        /* If we are a child, remove us from the parents list */
    11611158        if (dev->si_flags & SI_CHILD) {
     
    11681165                destroy_devl(LIST_FIRST(&dev->si_children));
    11691166
     1167#ifndef __rtems__
    11701168        /* Remove from clone list */
    11711169        if (dev->si_flags & SI_CLONELIST) {
     
    11961194                notify_destroy(dev);
    11971195        }
    1198 #ifndef __rtems__
    11991196        mtx_lock(&cdevpriv_mtx);
    12001197        while ((p = LIST_FIRST(&cdp->cdp_fdpriv)) != NULL) {
     
    12031200        }
    12041201        mtx_unlock(&cdevpriv_mtx);
    1205 #endif /* __rtems__ */
    12061202        dev_lock();
    12071203
     
    12321228}
    12331229
    1234 #ifndef __rtems__
    12351230static void
    12361231delist_dev_locked(struct cdev *dev)
     
    12711266        dev_unlock();
    12721267}
    1273 #endif /* __rtems__ */
    12741268
    12751269void
     
    12831277}
    12841278
    1285 #ifndef __rtems__
    12861279const char *
    12871280devtoname(struct cdev *dev)
     
    12911284}
    12921285
     1286#ifndef __rtems__
    12931287int
    12941288dev_stdclone(char *name, char **namep, const char *stem, int *unit)
     
    14651459        *cdp = NULL;
    14661460}
     1461#endif /* __rtems__ */
    14671462
    14681463static TAILQ_HEAD(, cdev_priv) dev_ddtr =
     
    15371532}
    15381533
     1534#ifndef __rtems__
    15391535void
    15401536destroy_dev_drain(struct cdevsw *csw)
  • freebsd/sys/kern/subr_taskqueue.c

    r567cce1 r4a8f953  
    5050
    5151static MALLOC_DEFINE(M_TASKQUEUE, "taskqueue", "Task Queues");
    52 #ifndef __rtems__
    5352static void     *taskqueue_giant_ih;
    54 #endif /* __rtems__ */
    5553static void     *taskqueue_ih;
    5654static void      taskqueue_fast_enqueue(void *);
    5755static void      taskqueue_swi_enqueue(void *);
    58 #ifndef __rtems__
    5956static void      taskqueue_swi_giant_enqueue(void *);
    60 #endif /* __rtems__ */
    6157
    6258struct taskqueue_busy {
     
    183179        if (enqueue == taskqueue_fast_enqueue ||
    184180            enqueue == taskqueue_swi_enqueue ||
    185 #ifndef __rtems__
    186181            enqueue == taskqueue_swi_giant_enqueue ||
    187 #endif /* __rtems__ */
    188182            enqueue == taskqueue_thread_enqueue)
    189183                queue->tq_flags |= TQ_FLAGS_UNLOCKED_ENQUEUE;
     
    653647}
    654648
    655 #ifndef __rtems__
    656649static void
    657650taskqueue_swi_giant_enqueue(void *context)
     
    665658        taskqueue_run(taskqueue_swi_giant);
    666659}
    667 #endif /* __rtems__ */
    668660
    669661static int
     
    830822                     INTR_MPSAFE, &taskqueue_ih));
    831823
    832 #ifndef __rtems__
    833824TASKQUEUE_DEFINE(swi_giant, taskqueue_swi_giant_enqueue, NULL,
    834825                 swi_add(NULL, "Giant taskq", taskqueue_swi_giant_run,
    835826                     NULL, SWI_TQ_GIANT, 0, &taskqueue_giant_ih));
    836 #endif /* __rtems__ */
    837827
    838828TASKQUEUE_DEFINE_THREAD(thread);
  • freebsd/sys/kern/tty.c

    r567cce1 r4a8f953  
    236236        funsetown(&tp->t_sigio);
    237237
     238#ifndef __rtems__
    238239        /* Remove console TTY. */
    239240        if (constty == tp)
    240241                constty_clear();
     242#endif /* __rtems__ */
    241243
    242244        /* Drain any output. */
     
    389391        }
    390392
     393#ifndef __rtems__
    391394        /* If revoking, flush output now to avoid draining it later. */
    392395        if (fflag & FREVOKE)
    393396                tty_flush(tp, FWRITE);
     397#endif /* __rtems__ */
    394398
    395399        tp->t_flags &= ~TF_EXCLUDE;
     
    406410}
    407411
     412#ifndef __rtems__
    408413static __inline int
    409414tty_is_ctty(struct tty *tp, struct proc *p)
     
    414419        return (p->p_session == tp->t_session && p->p_flag & P_CONTROLT);
    415420}
     421#endif /* __rtems__ */
    416422
    417423int
    418424tty_wait_background(struct tty *tp, struct thread *td, int sig)
    419425{
     426#ifndef __rtems__
    420427        struct proc *p = td->td_proc;
    421428        struct pgrp *pg;
     
    476483                        return (error);
    477484        }
     485#else /* __rtems__ */
     486        return (0);
     487#endif /* __rtems__ */
    478488}
    479489
     
    780790        .d_kqfilter     = ttydev_kqfilter,
    781791        .d_poll         = ttydev_poll,
     792#ifndef __rtems__
    782793        .d_mmap         = ttydev_mmap,
     794#endif /* __rtems__ */
    783795        .d_name         = "ttydev",
    784796        .d_flags        = D_TTY,
     
    11901202 */
    11911203
     1204#ifndef __rtems__
    11921205static void
    11931206tty_to_xtty(struct tty *tp, struct xtty *xt)
     
    12431256SYSCTL_PROC(_kern, OID_AUTO, ttys, CTLTYPE_OPAQUE|CTLFLAG_RD|CTLFLAG_MPSAFE,
    12441257        0, 0, sysctl_kern_ttys, "S,xtty", "List of TTYs");
     1258#endif /* __rtems__ */
    12451259
    12461260/*
     
    12711285        va_end(ap);
    12721286
     1287#ifndef __rtems__
    12731288        if (cred == NULL) {
    12741289                /* System device. */
     
    12821297                mode = S_IRUSR|S_IWUSR|S_IWGRP;
    12831298        }
     1299#else /* __rtems__ */
     1300        uid = BSD_DEFAULT_UID;
     1301        gid = BSD_DEFAULT_GID;
     1302        mode = S_IRUSR|S_IWUSR|S_IWGRP;
     1303#endif /* __rtems__ */
    12841304
    12851305        flags = flags & TTYMK_CLONING ? MAKEDEV_REF : 0;
     
    13921412        tp->t_flags &= ~TF_STOPPED;
    13931413
     1414#ifndef __rtems__
    13941415        if (tp->t_session != NULL && tp->t_session->s_leader != NULL) {
    13951416                p = tp->t_session->s_leader;
     
    13981419                PROC_UNLOCK(p);
    13991420        }
     1421#endif /* __rtems__ */
    14001422}
    14011423
     
    14111433        tp->t_flags &= ~TF_STOPPED;
    14121434
     1435#ifndef __rtems__
    14131436        if (sig == SIGINFO && !(tp->t_termios.c_lflag & NOKERNINFO))
    14141437                tty_info(tp);
     
    14211444                PGRP_UNLOCK(tp->t_pgrp);
    14221445        }
     1446#endif /* __rtems__ */
    14231447}
    14241448
     
    15171541                return;
    15181542        tp->t_winsize = *wsz;
     1543#ifndef __rtems__
    15191544        tty_signal_pgrp(tp, SIGWINCH);
     1545#endif /* __rtems__ */
    15201546}
    15211547
     
    15761602                return (0);
    15771603        case FIOSETOWN:
     1604#ifndef __rtems__
    15781605                if (tp->t_session != NULL && !tty_is_ctty(tp, td->td_proc))
    15791606                        /* Not allowed to set ownership. */
    15801607                        return (ENOTTY);
     1608#endif /* __rtems__ */
    15811609
    15821610                /* Temporarily unlock the TTY to set ownership. */
     
    15861614                return (error);
    15871615        case FIOGETOWN:
     1616#ifndef __rtems__
    15881617                if (tp->t_session != NULL && !tty_is_ctty(tp, td->td_proc))
    15891618                        /* Not allowed to set ownership. */
    15901619                        return (ENOTTY);
     1620#endif /* __rtems__ */
    15911621
    15921622                /* Get ownership. */
     
    16851715                return (0);
    16861716        case TIOCGPGRP:
     1717#ifndef __rtems__
    16871718                if (!tty_is_ctty(tp, td->td_proc))
    16881719                        return (ENOTTY);
     
    16921723                else
    16931724                        *(int *)data = NO_PID;
     1725#else /* __rtems__ */
     1726                *(int *)data = NO_PID;
     1727#endif /* __rtems__ */
    16941728                return (0);
    16951729        case TIOCGSID:
     1730#ifndef __rtems__
    16961731                if (!tty_is_ctty(tp, td->td_proc))
    16971732                        return (ENOTTY);
     
    16991734                MPASS(tp->t_session);
    17001735                *(int *)data = tp->t_session->s_sid;
     1736#else /* __rtems__ */
     1737                *(int *)data = NO_PID;
     1738#endif /* __rtems__ */
    17011739                return (0);
    17021740        case TIOCSCTTY: {
     1741#ifndef __rtems__
    17031742                struct proc *p = td->td_proc;
    17041743
     
    17491788                p->p_flag |= P_CONTROLT;
    17501789                PROC_UNLOCK(p);
     1790#endif /* __rtems__ */
    17511791
    17521792                return (0);
    17531793        }
    17541794        case TIOCSPGRP: {
     1795#ifndef __rtems__
    17551796                struct pgrp *pg;
    17561797
     
    17851826                /* Wake up the background process groups. */
    17861827                cv_broadcast(&tp->t_bgwait);
     1828#endif /* __rtems__ */
    17871829                return (0);
    17881830        }
     
    18091851                return (error);
    18101852        case TIOCCONS:
     1853#ifndef __rtems__
    18111854                /* Set terminal as console TTY. */
    18121855                if (*(int *)data) {
     
    18311874                        constty_clear();
    18321875                }
     1876#endif /* __rtems__ */
    18331877                return (0);
    18341878        case TIOCGWINSZ:
     
    18561900                return (0);
    18571901        case TIOCSTAT:
     1902#ifndef __rtems__
    18581903                tty_info(tp);
     1904#endif /* __rtems__ */
    18591905                return (0);
    18601906        case TIOCSTI:
     1907#ifndef __rtems__
    18611908                if ((fflag & FREAD) == 0 && priv_check(td, PRIV_TTY_STI))
    18621909                        return (EPERM);
     
    18641911                    priv_check(td, PRIV_TTY_STI))
    18651912                        return (EACCES);
     1913#endif /* __rtems__ */
    18661914                ttydisc_rint(tp, *(char *)data, 0);
    18671915                ttydisc_rint_done(tp);
     
    19421990                 * can successfully store the VSTART character.
    19431991                 */
     1992#ifndef __rtems__
    19441993                if (ttyoutq_write_nofrag(&tp->t_outq,
    19451994                    &tp->t_termios.c_cc[VSTART], 1) == 0)
    19461995                        tp->t_flags &= ~TF_HIWAT_IN;
     1996#else /* __rtems__ */
     1997                if (ttyoutq_write_nofrag(&tp->t_outq,
     1998                    &tp->t_termios.c_cc[VSTART], 1) == 0) {
     1999                        tp->t_flags &= ~TF_HIWAT_IN;
     2000                        ttydevsw_outwakeup(tp);
     2001                }
     2002#endif /* __rtems__ */
    19472003        } else {
    19482004                /* No input flow control. */
     
    19682024}
    19692025
     2026#ifndef __rtems__
    19702027int
    19712028ttyhook_register(struct tty **rtp, struct proc *p, int fd, struct ttyhook *th,
     
    20612118        tty_rel_free(tp);
    20622119}
     2120#endif /* __rtems__ */
    20632121
    20642122/*
     
    21152173        .d_kqfilter     = ttydev_kqfilter,
    21162174        .d_poll         = ttydev_poll,
     2175#ifndef __rtems__
    21172176        .d_mmap         = ttydev_mmap,
     2177#endif /* __rtems__ */
    21182178        .d_name         = "ttyconsdev",
    21192179        .d_flags        = D_TTY,
    21202180};
    21212181
     2182#ifndef __rtems__
    21222183static void
    21232184ttyconsdev_init(void *unused __unused)
     
    21362197        dev_console_filename = name;
    21372198}
     2199#endif /* __rtems__ */
    21382200
    21392201/*
  • freebsd/sys/kern/tty_ttydisc.c

    r567cce1 r4a8f953  
    915915                if (CMP_FLAG(l, ICANON|IEXTEN) == (ICANON|IEXTEN)) {
    916916                        if (CMP_CC(VSTATUS, c)) {
     917#ifndef __rtems__
    917918                                tty_signal_pgrp(tp, SIGINFO);
     919#endif /* __rtems__ */
    918920                                return (0);
    919921                        }
  • freebsd/sys/sys/conf.h

    r567cce1 r4a8f953  
    8585#ifndef __rtems__
    8686        LIST_ENTRY(cdev)        si_clone;
     87#endif /* __rtems__ */
    8788        LIST_HEAD(, cdev)       si_children;
    8889        LIST_ENTRY(cdev)        si_siblings;
    8990        struct cdev *si_parent;
     91#ifndef __rtems__
    9092        struct mount    *si_mountpt;
    9193#endif /* __rtems__ */
  • freebsd/sys/sys/file.h

    r567cce1 r4a8f953  
    200200#else /* __rtems__ */
    201201        rtems_libio_t   f_io;
     202        union {
     203                struct cdev_privdata *fvn_cdevpriv;
     204                                        /* (d) Private data for the cdev. */
     205        } f_vnun;
    202206#endif /* __rtems__ */
    203207};
  • freebsd/sys/sys/proc.h

    r567cce1 r4a8f953  
    302302        u_int           td_profil_ticks; /* (k) Temporary ticks until AST. */
    303303        char            td_name[MAXCOMLEN + 1]; /* (*) Thread name. */
     304#endif /* __rtems__ */
    304305        struct file     *td_fpop;       /* (k) file referencing cdev under op */
     306#ifndef __rtems__
    305307        int             td_dbgflags;    /* (c) Userland debugger flags */
    306308        siginfo_t       td_si;          /* (c) For debugger or core file */
Note: See TracChangeset for help on using the changeset viewer.