X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?a=blobdiff_plain;f=palacios%2Finclude%2Fdevices%2Fserial.h;h=78ff076daec4939f7bcc2c7df0e78fa7dc846815;hb=436f64eff4b2b60c18f485095f2e962f32b71014;hp=6de595ae0ab46eec1f8703938c818234cc54de80;hpb=101b1bdfedbf377765d7c74641e9bcf356ebed18;p=palacios.git diff --git a/palacios/include/devices/serial.h b/palacios/include/devices/serial.h index 6de595a..78ff076 100644 --- a/palacios/include/devices/serial.h +++ b/palacios/include/devices/serial.h @@ -1,4 +1,4 @@ -/* +/* * This file is part of the Palacios Virtual Machine Monitor developed * by the V3VEE Project with funding from the United States National * Science Foundation and the Department of Energy. @@ -17,20 +17,28 @@ * redistribute, and modify it as specified in the file "V3VEE_LICENSE". */ - #ifndef __DEVICES_SERIAL_H__ #define __DEVICES_SERIAL_H__ #ifdef __V3VEE__ +/* Really need to find clean way to allow a backend stream device to be attachable + to different kinds of frontend devices that can act as a stream */ +struct v3_stream_ops { + /* called by serial device to the backend stream device */ + int (*read)(char *buf, uint_t len, void *private_data); + int (*write)(char *buf, uint_t len, void *private_data); -#include - -struct vm_device * create_serial(); + /* called by backend device to frontend serial device */ + int (*input)(char *buf, uint_t len, void *front_data); + void *front_data; +}; +int v3_stream_register_serial(struct vm_device * serial_dev, struct v3_stream_ops * ops, void * private_data); #endif // ! __V3VEE__ + #endif