sclp.c (48a7afe314bfc4d7f50e1608632f503dbba7e013) sclp.c (364c85584e030f7cfc25e9d27ca893dee6f4bf8e)
1/*
2 * drivers/s390/char/sclp.c
3 * core function to access sclp interface
4 *
5 * S390 version
6 * Copyright (C) 1999 IBM Deutschland Entwicklung GmbH, IBM Corporation
7 * Author(s): Martin Peschke <mpeschke@de.ibm.com>
8 * Martin Schwidefsky <schwidefsky@de.ibm.com>

--- 79 unchanged lines hidden (view full) ---

88#define SCLP_INIT_RETRY 3
89#define SCLP_MASK_RETRY 3
90
91/* Timeout intervals in seconds.*/
92#define SCLP_BUSY_INTERVAL 10
93#define SCLP_RETRY_INTERVAL 30
94
95static void sclp_process_queue(void);
1/*
2 * drivers/s390/char/sclp.c
3 * core function to access sclp interface
4 *
5 * S390 version
6 * Copyright (C) 1999 IBM Deutschland Entwicklung GmbH, IBM Corporation
7 * Author(s): Martin Peschke <mpeschke@de.ibm.com>
8 * Martin Schwidefsky <schwidefsky@de.ibm.com>

--- 79 unchanged lines hidden (view full) ---

88#define SCLP_INIT_RETRY 3
89#define SCLP_MASK_RETRY 3
90
91/* Timeout intervals in seconds.*/
92#define SCLP_BUSY_INTERVAL 10
93#define SCLP_RETRY_INTERVAL 30
94
95static void sclp_process_queue(void);
96static void __sclp_make_read_req(void);
96static int sclp_init_mask(int calculate);
97static int sclp_init(void);
98
99/* Perform service call. Return 0 on success, non-zero otherwise. */
100int
101sclp_service_call(sclp_cmdw_t command, void *sccb)
102{
103 int cc;

--- 6 unchanged lines hidden (view full) ---

110 : "cc", "memory");
111 if (cc == 3)
112 return -EIO;
113 if (cc == 2)
114 return -EBUSY;
115 return 0;
116}
117
97static int sclp_init_mask(int calculate);
98static int sclp_init(void);
99
100/* Perform service call. Return 0 on success, non-zero otherwise. */
101int
102sclp_service_call(sclp_cmdw_t command, void *sccb)
103{
104 int cc;

--- 6 unchanged lines hidden (view full) ---

111 : "cc", "memory");
112 if (cc == 3)
113 return -EIO;
114 if (cc == 2)
115 return -EBUSY;
116 return 0;
117}
118
118static inline void __sclp_make_read_req(void);
119
120static void
121__sclp_queue_read_req(void)
122{
123 if (sclp_reading_state == sclp_reading_state_idle) {
124 sclp_reading_state = sclp_reading_state_reading;
125 __sclp_make_read_req();
126 /* Add request to head of queue */

--- 186 unchanged lines hidden (view full) ---

313 sccb->response_code == 0x220))
314 sclp_dispatch_evbufs(sccb);
315 spin_lock_irqsave(&sclp_lock, flags);
316 sclp_reading_state = sclp_reading_state_idle;
317 spin_unlock_irqrestore(&sclp_lock, flags);
318}
319
320/* Prepare read event data request. Called while sclp_lock is locked. */
119
120static void
121__sclp_queue_read_req(void)
122{
123 if (sclp_reading_state == sclp_reading_state_idle) {
124 sclp_reading_state = sclp_reading_state_reading;
125 __sclp_make_read_req();
126 /* Add request to head of queue */

--- 186 unchanged lines hidden (view full) ---

313 sccb->response_code == 0x220))
314 sclp_dispatch_evbufs(sccb);
315 spin_lock_irqsave(&sclp_lock, flags);
316 sclp_reading_state = sclp_reading_state_idle;
317 spin_unlock_irqrestore(&sclp_lock, flags);
318}
319
320/* Prepare read event data request. Called while sclp_lock is locked. */
321static inline void
322__sclp_make_read_req(void)
321static void __sclp_make_read_req(void)
323{
324 struct sccb_header *sccb;
325
326 sccb = (struct sccb_header *) sclp_read_sccb;
327 clear_page(sccb);
328 memset(&sclp_read_req, 0, sizeof(struct sclp_req));
329 sclp_read_req.command = SCLP_CMDW_READ_EVENT_DATA;
330 sclp_read_req.status = SCLP_REQ_QUEUED;

--- 610 unchanged lines hidden ---
322{
323 struct sccb_header *sccb;
324
325 sccb = (struct sccb_header *) sclp_read_sccb;
326 clear_page(sccb);
327 memset(&sclp_read_req, 0, sizeof(struct sclp_req));
328 sclp_read_req.command = SCLP_CMDW_READ_EVENT_DATA;
329 sclp_read_req.status = SCLP_REQ_QUEUED;

--- 610 unchanged lines hidden ---