📄 irqextras390.h
字号:
/* * include/asm-s390/irqextras390.h * * S390 version * Copyright (C) 1999 IBM Deutschland Entwicklung GmbH, IBM Corporation * Author(s): Denis Joseph Barrow (djbarrow@de.ibm.com,barrow_dj@yahoo.com) */#ifndef __irqextras390_h#define __irqextras390_h/* irqextras390.h by D.J. Barrow if you are a bitfield fan & are paranoid that ansi dosen't give hard definitions about the size of an int or long you might prefer these definitions as an alternative.*/#include <linux/types.h>typedef struct { unsigned key:4; unsigned s:1; unsigned l:1; unsigned cc:2; unsigned f:1; unsigned p:1; unsigned i:1; unsigned a:1; unsigned u:1; unsigned z:1; unsigned e:1; unsigned n:1; unsigned zero:1; unsigned fc_start:1; unsigned fc_halt:1; unsigned fc_clear:1; unsigned ac_resume_pending:1; unsigned ac_start_pending:1; unsigned ac_halt_pending:1; unsigned ac_clear_pending:1; unsigned ac_subchannel_active:1; unsigned ac_device_active:1; unsigned ac_suspended:1; unsigned sc_alert:1; unsigned sc_intermediate:1; unsigned sc_primary:1; unsigned sc_seconary:1; unsigned sc_status_pending:1; __u32 ccw_address; unsigned dev_status_attention:1; unsigned dev_status_modifier:1; unsigned dev_status_control_unit_end:1; unsigned dev_status_busy:1; unsigned dev_status_channel_end:1; unsigned dev_status_device_end:1; unsigned dev_status_unit_check:1; unsigned dev_status_unit_exception:1; unsigned sch_status_program_cont_int:1; unsigned sch_status_incorrect_length:1; unsigned sch_status_program_check:1; unsigned sch_status_protection_check:1; unsigned sch_status_channel_data_check:1; unsigned sch_status_channel_control_check:1; unsigned sch_status_interface_control_check:1; unsigned sch_status_chaining_check:1; __u16 byte_count;} scsw_bits_t __attribute__((packed));typedef struct{ __u32 flags; __u32 ccw_address; __u8 dev_status; __u8 sch_status; __u16 byte_count;} scsw_words_t __attribute__((packed));typedef struct{ __u8 cmd_code; unsigned cd:1; unsigned cc:1; unsigned sli:1; unsigned skip:1; unsigned pci:1; unsigned ida:1; unsigned s:1; unsigned res1:1; __u16 count; void *ccw_data_address;} ccw1_bits_t __attribute__((packed,aligned(8)));typedef struct{ __u32 interruption_parm; unsigned key:4; unsigned s:1; unsigned res1:3; unsigned f:1; unsigned p:1; unsigned i:1; unsigned a:1; unsigned u:1; __u8 lpm; unsigned l:1; unsigned res2:7; ccw1_bits_t *ccw_program_address;} orb_bits_t __attribute__((packed));void fixchannelprogram(orb_bits_t *orbptr);void fixccws(ccw1_bits_t *ccwptr);enum{ ccw_write=0x1, ccw_read=0x2, ccw_read_backward=0xc, ccw_control=0x3, ccw_sense=0x4, ccw_sense_id=0xe4, ccw_transfer_in_channel0=0x8, ccw_transfer_in_channel1=0x8, ccw_set_x_mode=0xc3, // according to uli's lan notes ccw_nop=0x3 // according to uli's notes again // n.b. ccw_control clashes with this // so I presume its a special case of // control};#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -