|
@@ -120,7 +120,7 @@ struct iucv_message {
|
|
|
u32 reply_size;
|
|
|
u8 rmmsg[8];
|
|
|
u8 flags;
|
|
|
-};
|
|
|
+} __packed;
|
|
|
|
|
|
/*
|
|
|
* struct iucv_handler
|
|
@@ -459,3 +459,37 @@ int __iucv_message_send(struct iucv_path *path, struct iucv_message *msg,
|
|
|
int iucv_message_send2way(struct iucv_path *path, struct iucv_message *msg,
|
|
|
u8 flags, u32 srccls, void *buffer, size_t size,
|
|
|
void *answer, size_t asize, size_t *residual);
|
|
|
+
|
|
|
+struct iucv_interface {
|
|
|
+ int (*message_receive)(struct iucv_path *path, struct iucv_message *msg,
|
|
|
+ u8 flags, void *buffer, size_t size, size_t *residual);
|
|
|
+ int (*__message_receive)(struct iucv_path *path,
|
|
|
+ struct iucv_message *msg, u8 flags, void *buffer, size_t size,
|
|
|
+ size_t *residual);
|
|
|
+ int (*message_reply)(struct iucv_path *path, struct iucv_message *msg,
|
|
|
+ u8 flags, void *reply, size_t size);
|
|
|
+ int (*message_reject)(struct iucv_path *path, struct iucv_message *msg);
|
|
|
+ int (*message_send)(struct iucv_path *path, struct iucv_message *msg,
|
|
|
+ u8 flags, u32 srccls, void *buffer, size_t size);
|
|
|
+ int (*__message_send)(struct iucv_path *path, struct iucv_message *msg,
|
|
|
+ u8 flags, u32 srccls, void *buffer, size_t size);
|
|
|
+ int (*message_send2way)(struct iucv_path *path,
|
|
|
+ struct iucv_message *msg, u8 flags, u32 srccls, void *buffer,
|
|
|
+ size_t size, void *answer, size_t asize, size_t *residual);
|
|
|
+ int (*message_purge)(struct iucv_path *path, struct iucv_message *msg,
|
|
|
+ u32 srccls);
|
|
|
+ int (*path_accept)(struct iucv_path *path, struct iucv_handler *handler,
|
|
|
+ u8 userdata[16], void *private);
|
|
|
+ int (*path_connect)(struct iucv_path *path,
|
|
|
+ struct iucv_handler *handler,
|
|
|
+ u8 userid[8], u8 system[8], u8 userdata[16], void *private);
|
|
|
+ int (*path_quiesce)(struct iucv_path *path, u8 userdata[16]);
|
|
|
+ int (*path_resume)(struct iucv_path *path, u8 userdata[16]);
|
|
|
+ int (*path_sever)(struct iucv_path *path, u8 userdata[16]);
|
|
|
+ int (*iucv_register)(struct iucv_handler *handler, int smp);
|
|
|
+ void (*iucv_unregister)(struct iucv_handler *handler, int smp);
|
|
|
+ struct bus_type *bus;
|
|
|
+ struct device *root;
|
|
|
+};
|
|
|
+
|
|
|
+extern struct iucv_interface iucv_if;
|