Thread (5 messages) flat view 5 messages, 5 authors, 2006-08-21

Re: [2.6.19 PATCH 2/7] ehea: pHYP interface

From: Alexey Dobriyan <hidden>
Date: 2006-08-18 15:06:12
Also in: linuxppc-dev, lkml

On Fri, Aug 18, 2006 at 01:30:21PM +0200, Jan-Bernd Themann wrote:
quoted hunk ↗ jump to hunk
--- linux-2.6.18-rc4-orig/drivers/net/ehea/ehea_phyp.c
+++ kernel/drivers/net/ehea/ehea_phyp.c
+	hret = ehea_hcall_9arg_9ret(H_QUERY_HEA_QP,
+				    hcp_adapter_handle,	        /* R4 */
+				    qp_category,	        /* R5 */
+				    qp_handle,	                /* R6 */
+				    sel_mask,	                /* R7 */
+				    virt_to_abs(cb_addr),	/* R8 */
+				    0, 0, 0, 0,	                /* R9-R12 */
+				    &dummy,                     /* R4 */
+				    &dummy,                     /* R5 */
+				    &dummy,	                /* R6 */
+				    &dummy,	                /* R7 */
+				    &dummy,	                /* R8 */
+				    &dummy,	                /* R9 */
+				    &dummy,	                /* R10 */
+				    &dummy,	                /* R11 */
+				    &dummy);	                /* R12 */
I asked SO to recount arguments and we've come to a conclusion that
there're in fact 19 args not 18 as the name suggests. 19 args is
I-N-S-A-N-E.
+u64 ehea_h_register_rpage_eq(const u64 hcp_adapter_handle,
+			     const u64 eq_handle,
+			     const u8 pagesize,
+			     const u8 queue_type,
+			     const u64 log_pageaddr, const u64 count)
+{
+	u64 hret = H_ADAPTER_PARM;
+
+	if (count != 1)
+		return H_PARAMETER;
+
+	hret = ehea_h_register_rpage(hcp_adapter_handle, pagesize, queue_type,
+				     eq_handle, log_pageaddr, count);
+	return hret;
Just

	return ehea_h_register_rpage(...);
+u64 ehea_h_register_rpage_cq(const u64 hcp_adapter_handle,
+			     const u64 cq_handle,
+			     const u8 pagesize,
+			     const u8 queue_type,
+			     const u64 log_pageaddr,
+			     const u64 count, const struct h_epa epa)
+{
+	u64 hret = H_ADAPTER_PARM;
+
+	if (count != 1)
+		return H_PARAMETER;
+
+	hret = ehea_h_register_rpage(hcp_adapter_handle, pagesize, queue_type,
+				     cq_handle, log_pageaddr, count);
+	return hret;
Ditto.
+u64 ehea_h_register_rpage_qp(const u64 hcp_adapter_handle,
+			     const u64 qp_handle,
+			     const u8 pagesize,
+			     const u8 queue_type,
+			     const u64 log_pageaddr,
+			     const u64 count, struct h_epa epa)
+{
+	u64 hret = H_ADAPTER_PARM;
+
+	if (count != 1)
+		return H_PARAMETER;
+
+	hret = ehea_h_register_rpage(hcp_adapter_handle, pagesize, queue_type,
+				     qp_handle, log_pageaddr, count);
+	return hret;
+}
Ditto.
+static inline int hcp_epas_ctor(struct h_epas *epas, u64 paddr_kernel,
+				u64 paddr_user)
+{
+	epas->kernel.fw_handle = (u64) ioremap(paddr_kernel, PAGE_SIZE);
+	epas->user.fw_handle = paddr_user;
+	return 0;
+}
+
+static inline int hcp_epas_dtor(struct h_epas *epas)
+{
+
+	if (epas->kernel.fw_handle)
+		iounmap((void *)epas->kernel.fw_handle);
+	epas->user.fw_handle = epas->kernel.fw_handle = 0;
+	return 0;
+}
Always returns 0;
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help