+int prop_setvres(int xsz, int ysz)
+{
+ uint32_t *pb = propbuf;
+
+ *pb++ = 0;
+ *pb++ = 0;
+ *pb++ = PROP_TAG_VIRTRES | PROP_TAG_SET;
+ *pb++ = 8; /* data size */
+ *pb++ = PROP_CODE_REQ;
+ *pb++ = xsz;
+ *pb++ = ysz;
+ *pb++ = PROP_TAG_END;
+ propbuf[0] = (char*)pb - (char*)propbuf;
+
+ return send_prop(propbuf);
+}
+
+void *prop_allocbuf(void)
+{
+ uint32_t *pb = propbuf;
+ uint32_t *data;
+
+ *pb++ = 0;
+ *pb++ = 0;
+ *pb++ = PROP_TAG_ALLOCBUF;
+ *pb++ = 8; /* data size */
+ *pb++ = PROP_CODE_REQ;
+ data = pb;
+ *pb++ = 16; /* alignment */
+ *pb++ = 0;
+ *pb++ = PROP_TAG_END;
+ propbuf[0] = (char*)pb - (char*)propbuf;
+
+ if(send_prop(propbuf) == -1) {
+ return 0;
+ }
+
+ return (void*)bus2phys(*data);