Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 


Quelle  sclp_rw.h   Sprache: C

 
/* SPDX-License-Identifier: GPL-2.0 */
/*
 * interface to the SCLP-read/write driver
 *
 * Copyright IBM Corporation 1999, 2009
 *
 * Author(s): Martin Peschke <mpeschke@de.ibm.com>
 *       Martin Schwidefsky <schwidefsky@de.ibm.com>
 */


#ifndef __SCLP_RW_H__
#define __SCLP_RW_H__

#include <linux/list.h>

struct mto {
 u16 length;
 u16 type;
 u16 line_type_flags;
 u8  alarm_control;
 u8  _reserved[3];
} __attribute__((packed));

struct go {
 u16 length;
 u16 type;
 u32 domid;
 u8  hhmmss_time[8];
 u8  th_time[3];
 u8  reserved_0;
 u8  dddyyyy_date[7];
 u8  _reserved_1;
 u16 general_msg_flags;
 u8  _reserved_2[10];
 u8  originating_system_name[8];
 u8  job_guest_name[8];
} __attribute__((packed));

struct mdb_header {
 u16 length;
 u16 type;
 u32 tag;
 u32 revision_code;
} __attribute__((packed));

struct mdb {
 struct mdb_header header;
 struct go go;
 struct mto mto;
} __attribute__((packed));

struct msg_buf {
 struct evbuf_header header;
 struct mdb mdb;
} __attribute__((packed));

/* The number of empty mto buffers that can be contained in a single sccb. */
#define NR_EMPTY_MSG_PER_SCCB ((PAGE_SIZE - sizeof(struct sclp_buffer) - \
   sizeof(struct sccb_header)) / sizeof(struct msg_buf))

/*
 * data structure for information about list of SCCBs (only for writing),
 * will be located at the end of a SCCBs page
 */

struct sclp_buffer {
 struct list_head list;  /* list_head for sccb_info chain */
 struct sclp_req request;
 void *sccb;
 struct msg_buf *current_msg;
 char *current_line;
 int current_length;
 int retry_count;
 /* output format settings */
 unsigned short columns;
 unsigned short htab;
 /* statistics about this buffer */
 unsigned int char_sum;  /* # chars in sccb */
 unsigned int messages;  /* # messages in sccb */
 /* Callback that is called after reaching final status. */
 void (*callback)(struct sclp_buffer *, int);
};

int sclp_rw_init(void);
struct sclp_buffer *sclp_make_buffer(void *, unsigned shortunsigned short);
void *sclp_unmake_buffer(struct sclp_buffer *);
int sclp_buffer_space(struct sclp_buffer *);
int sclp_write(struct sclp_buffer *buffer, const unsigned char *, int);
int sclp_emit_buffer(struct sclp_buffer *,void (*)(struct sclp_buffer *,int));
unsigned int sclp_chars_in_buffer(struct sclp_buffer *);

#endif /* __SCLP_RW_H__ */

Messung V0.5
C=96 H=92 G=93

¤ Dauer der Verarbeitung: 0.3 Sekunden  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....
    

Besucherstatistik

Besucherstatistik

Monitoring

Montastic status badge