XenevaOS
Loading...
Searching...
No Matches
Public Attributes | List of all members
tty_struct Struct Reference

#include <tty.h>

Collaboration diagram for tty_struct:
Collaboration graph
[legend]

Public Attributes

struct kref kref
 
int index
 
struct device * dev
 
struct tty_driver * driver
 
struct tty_port * port
 
const struct tty_operations * ops
 
struct tty_ldisc * ldisc
 
struct ld_semaphore ldisc_sem
 
struct mutex atomic_write_lock
 
struct mutex legacy_mutex
 
struct mutex throttle_mutex
 
struct rw_semaphore termios_rwsem
 
struct mutex winsize_mutex
 
struct ktermios termios termios_locked
 
char name [64]
 
unsigned long flags
 
int count
 
unsigned int receive_room
 
struct winsize winsize
 
struct { 
 
   spinlock_t   lock 
 
   bool   stopped 
 
   bool   tco_stopped 
 
} flow 
 
struct { 
 
   struct pid *   pgrp 
 
   struct pid *   session 
 
   spinlock_t   lock 
 
   unsigned char   pktstatus 
 
   bool   packet 
 
} ctrl 
 
bool hw_stopped
 
bool closing
 
int flow_change
 
struct tty_struct * link
 
struct fasync_struct * fasync
 
wait_queue_head_t write_wait
 
wait_queue_head_t read_wait
 
struct work_struct hangup_work
 
void * disc_data
 
void * driver_data
 
spinlock_t files_lock
 
int write_cnt
 
u8 * write_buf
 
struct list_head tty_files
 
struct work_struct SAK_work
 

Detailed Description

struct tty_struct - state associated with a tty while open

The field comments are mainline's, abridged where the comment only restated the field name. What is worth knowing before touching this struct: count is openers, kref is references, and they are not the same number – count reaching zero cancels work and drops a kref, but the tty is freed by whoever held the last kref, which may be a different path entirely.

Member Data Documentation

◆ atomic_write_lock

struct mutex tty_struct::atomic_write_lock

◆ closing

bool tty_struct::closing

◆ count

int tty_struct::count

◆ [struct]

struct { ... } tty_struct::ctrl

◆ dev

struct device* tty_struct::dev

◆ disc_data

void* tty_struct::disc_data

◆ driver

struct tty_driver* tty_struct::driver

◆ driver_data

void* tty_struct::driver_data

◆ fasync

struct fasync_struct* tty_struct::fasync

◆ files_lock

spinlock_t tty_struct::files_lock

◆ flags

unsigned long tty_struct::flags

◆ [struct]

struct { ... } tty_struct::flow

◆ flow_change

int tty_struct::flow_change

◆ hangup_work

struct work_struct tty_struct::hangup_work

◆ hw_stopped

bool tty_struct::hw_stopped

◆ index

int tty_struct::index

◆ kref

struct kref tty_struct::kref

◆ ldisc

struct tty_ldisc* tty_struct::ldisc

◆ ldisc_sem

struct ld_semaphore tty_struct::ldisc_sem

◆ legacy_mutex

struct mutex tty_struct::legacy_mutex

◆ link

struct tty_struct* tty_struct::link

◆ lock

spinlock_t tty_struct::lock

◆ name

char tty_struct::name[64]

◆ ops

const struct tty_operations* tty_struct::ops

◆ packet

bool tty_struct::packet

◆ pgrp

struct pid* tty_struct::pgrp

◆ pktstatus

unsigned char tty_struct::pktstatus

◆ port

struct tty_port* tty_struct::port

◆ read_wait

wait_queue_head_t tty_struct::read_wait

◆ receive_room

unsigned int tty_struct::receive_room

◆ SAK_work

struct work_struct tty_struct::SAK_work

◆ session

struct pid* tty_struct::session

◆ stopped

bool tty_struct::stopped

◆ tco_stopped

bool tty_struct::tco_stopped

◆ termios_locked

struct ktermios termios tty_struct::termios_locked

◆ termios_rwsem

struct rw_semaphore tty_struct::termios_rwsem

◆ throttle_mutex

struct mutex tty_struct::throttle_mutex

◆ tty_files

struct list_head tty_struct::tty_files

◆ winsize

struct winsize tty_struct::winsize

◆ winsize_mutex

struct mutex tty_struct::winsize_mutex

◆ write_buf

u8* tty_struct::write_buf

◆ write_cnt

int tty_struct::write_cnt

◆ write_wait

wait_queue_head_t tty_struct::write_wait

The documentation for this struct was generated from the following file: