mirror of
https://github.com/ibm-s390-linux/s390-tools.git
synced 2026-08-05 02:14:52 +00:00
GitHub-ID: https://github.com/ibm-s390-linux/s390-tools/pull/137 Signed-off-by: Dan Horák <dan@danny.cz> Signed-off-by: Jan Höppner <hoeppner@linux.ibm.com>
77 lines
2.3 KiB
C
77 lines
2.3 KiB
C
/*
|
|
* iucvtty / iucvconn - IUCV Terminal Applications
|
|
*
|
|
* Definition of common functions
|
|
*
|
|
* Copyright IBM Corp. 2008, 2017
|
|
*
|
|
* s390-tools is free software; you can redistribute it and/or modify
|
|
* it under the terms of the MIT license. See LICENSE for details.
|
|
*/
|
|
#ifndef __FUNCTIONS_H_
|
|
#define __FUNCTIONS_H_
|
|
|
|
#include <unistd.h>
|
|
|
|
#include "af_iucv.h"
|
|
#include "inttypes.h"
|
|
#include "iucvterm/config.h"
|
|
#include "iucvterm/proto.h"
|
|
|
|
/* Message buffer: message header + 4096 bytes of data */
|
|
#define MSG_BUFFER_SIZE (MSG_DATA_OFFSET + (4096))
|
|
|
|
/* Error macros */
|
|
#define print_error(s) program_error(PRG_COMPONENT, (s))
|
|
#define iucvtty_error(m) \
|
|
do { \
|
|
uint32_t *err = (uint32_t *) (m)->data; \
|
|
iucv_msg_error(PRG_COMPONENT, *err); \
|
|
} while (0);
|
|
|
|
/* Error codes */
|
|
/* Unable to fork new process */
|
|
#define ERR_FORK 105
|
|
/* Cannot execute login program */
|
|
#define ERR_CANNOT_EXEC_LOGIN 106
|
|
/* Cannot set up terminal as a login terminal */
|
|
#define ERR_SETUP_LOGIN_TTY 107
|
|
/* Client (vm guest) is not authorized */
|
|
#define ERR_NOT_AUTHORIZED 110
|
|
|
|
|
|
extern int iucvtty_handle_req(int);
|
|
|
|
extern int iucvtty_socket(struct sockaddr_iucv *,
|
|
const char *, const char *);
|
|
|
|
extern int iucvtty_tx_termenv(int, char *);
|
|
extern int iucvtty_rx_termenv(int, void *, size_t);
|
|
extern int iucvtty_tx_winsize(int, int);
|
|
extern int iucvtty_tx_data(int, int, struct iucvtty_msg *, size_t);
|
|
extern int iucvtty_tx_error(int, uint32_t);
|
|
extern int iucvtty_copy_data(int, struct iucvtty_msg *);
|
|
extern int iucvtty_read_data(int, struct iucvtty_msg *, size_t);
|
|
|
|
extern int iucvtty_read_msg(int, struct iucvtty_msg *, size_t, size_t *);
|
|
extern int iucvtty_write_msg(int, struct iucvtty_msg *);
|
|
extern void iucvtty_skip_msg_residual(int, size_t *);
|
|
|
|
extern ssize_t __write(int, const void*, size_t);
|
|
|
|
extern int strmatch(const char *, const char *);
|
|
extern int is_regex_valid(const char *);
|
|
extern int is_client_allowed(const char *, const struct iucvterm_cfg *);
|
|
extern void userid_cpy(char [9], const char [8]);
|
|
|
|
extern void iucv_msg_error(const char *, uint32_t);
|
|
extern void program_error(const char *, const char *);
|
|
|
|
/* Audit/session log */
|
|
extern int open_session_log(const char *);
|
|
extern ssize_t write_session_log(const void*, size_t);
|
|
extern void write_session_info(const char *, ...);
|
|
extern void close_session_log(void);
|
|
|
|
#endif /* __FUNCTIONS_H_ */
|