1#ifndef _LINUX_TTY_LDISC_H
2#define _LINUX_TTY_LDISC_H
77#define init_ldsem(sem) \
79 static struct lock_class_key __key; \
81 __init_ldsem((sem), #sem, &__key); \
113#ifdef CONFIG_DEBUG_LOCK_ALLOC
119# define ldsem_down_read_nested(sem, subclass, timeout) \
120 ldsem_down_read(sem, timeout)
121# define ldsem_down_write_nested(sem, subclass, timeout) \
122 ldsem_down_write(sem, timeout)
137 size_t nr,
void** cookie,
unsigned long offset);
139 const u8* buf,
size_t nr);
153 const u8* fp,
size_t count);
157 const u8* fp,
size_t count);
159 const u8* fp,
size_t count);
169#define MODULE_ALIAS_LDISC(ldisc) \
170 MODULE_ALIAS("tty-ldisc-" __stringify(ldisc))
int64_t ssize_t
Definition stddef.h:38
uint64_t size_t
Definition stdint.h:104
size_t size_t offset
Definition drm_bridge.h:1299
struct drm_crtc struct drm_plane struct drm_plane const struct drm_crtc_funcs const char * name
Definition drm_crtc.h:1242
unsigned int __poll_t
Definition fs.h:50
uint8_t u8
Definition kernel.h:14
int spinlock_t
Definition kernel.h:44
Definition tty_ldisc.h:57
spinlock_t wait_lock
Definition tty_ldisc.h:59
struct list_head write_wait
Definition tty_ldisc.h:62
struct list_head read_wait
Definition tty_ldisc.h:61
atomic_long_t count
Definition tty_ldisc.h:58
unsigned int wait_readers
Definition tty_ldisc.h:60
Definition tty_ldisc.h:126
ssize_t(* write)(struct tty_struct *tty, struct file *file, const u8 *buf, size_t nr)
Definition tty_ldisc.h:138
void(* dcd_change)(struct tty_struct *tty, bool active)
Definition tty_ldisc.h:155
void(* receive_buf)(struct tty_struct *tty, const u8 *cp, const u8 *fp, size_t count)
Definition tty_ldisc.h:152
int(* compat_ioctl)(struct tty_struct *tty, unsigned int cmd, unsigned long arg)
Definition tty_ldisc.h:142
int num
Definition tty_ldisc.h:128
void(* hangup)(struct tty_struct *tty)
Definition tty_ldisc.h:147
void(* write_wakeup)(struct tty_struct *tty)
Definition tty_ldisc.h:154
void(* set_termios)(struct tty_struct *tty, const struct ktermios *old)
Definition tty_ldisc.h:144
int(* ioctl)(struct tty_struct *tty, unsigned int cmd, unsigned long arg)
Definition tty_ldisc.h:140
int(* open)(struct tty_struct *tty)
Definition tty_ldisc.h:133
void(* close)(struct tty_struct *tty)
Definition tty_ldisc.h:134
__poll_t(* poll)(struct tty_struct *tty, struct file *file, struct poll_table_struct *wait)
Definition tty_ldisc.h:145
size_t(* receive_buf2)(struct tty_struct *tty, const u8 *cp, const u8 *fp, size_t count)
Definition tty_ldisc.h:156
void(* flush_buffer)(struct tty_struct *tty)
Definition tty_ldisc.h:135
void(* lookahead_buf)(struct tty_struct *tty, const u8 *cp, const u8 *fp, size_t count)
Definition tty_ldisc.h:158
ssize_t(* read)(struct tty_struct *tty, struct file *file, u8 *buf, size_t nr, void **cookie, unsigned long offset)
Definition tty_ldisc.h:136
char * name
Definition tty_ldisc.h:127
struct module * owner
Definition tty_ldisc.h:161
Definition tty_ldisc.h:164
const struct tty_ldisc_ops * ops
Definition tty_ldisc.h:165
struct tty_struct * tty
Definition tty_ldisc.h:166
int ldsem_down_read_trylock(struct ld_semaphore *sem)
void tty_unregister_ldisc(const struct tty_ldisc_ops *ldisc)
void ldsem_up_read(struct ld_semaphore *sem)
int ldsem_down_read(struct ld_semaphore *sem, long timeout)
int ldsem_down_write_trylock(struct ld_semaphore *sem)
#define ldsem_down_write_nested(sem, subclass, timeout)
Definition tty_ldisc.h:121
int tty_register_ldisc(const struct tty_ldisc_ops *new_ldisc)
void tty_ldisc_deref(struct tty_ldisc *)
void tty_ldisc_flush(struct tty_struct *tty)
struct tty_ldisc * tty_ldisc_ref(struct tty_struct *)
void ldsem_up_write(struct ld_semaphore *sem)
int ldsem_down_write_failed(struct ld_semaphore *sem)
struct tty_ldisc * tty_ldisc_ref_wait(struct tty_struct *)
const struct seq_operations tty_ldiscs_seq_ops
int ldsem_down_write(struct ld_semaphore *sem, long timeout)
int ldsem_down_read_failed(struct ld_semaphore *sem)
int tty_set_ldisc(struct tty_struct *tty, int disc)
#define ldsem_down_read_nested(sem, subclass, timeout)
Definition tty_ldisc.h:119
void __init_ldsem(struct ld_semaphore *sem, const char *name, struct lock_class_key *key)