Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
iorpc.h
Go to the documentation of this file.
1 /*
2  * Copyright 2012 Tilera Corporation. All Rights Reserved.
3  *
4  * This program is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU General Public License
6  * as published by the Free Software Foundation, version 2.
7  *
8  * This program is distributed in the hope that it will be useful, but
9  * WITHOUT ANY WARRANTY; without even the implied warranty of
10  * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
11  * NON INFRINGEMENT. See the GNU General Public License for
12  * more details.
13  */
14 #ifndef _HV_IORPC_H_
15 #define _HV_IORPC_H_
16 
242 #ifdef __KERNEL__
243 #include <linux/stddef.h>
244 #else
245 #include <stddef.h>
246 #endif
247 
248 #if defined(__HV__)
249 #include <hv/hypervisor.h>
250 #elif defined(__KERNEL__)
251 #include <hv/hypervisor.h>
252 #include <linux/types.h>
253 #else
254 #include <stdint.h>
255 #endif
256 
257 
263 {
266 
270 
273 
276 
279 
282 
285 
288 
291 
294 };
295 
296 
298 #define IORPC_OPCODE(FORMAT, CODE) (((FORMAT) << 16) | (CODE))
299 
303 {
304 #ifndef __BIG_ENDIAN__
307  struct
308  {
312  };
313 
315 #else
316  uint64_t offset;
318  struct
319  {
321  uint16_t format;
322  uint16_t code;
323  };
324 
325  struct
326  {
328  uint32_t opcode;
329  };
330 #endif
331 };
332 
333 
336 {
337  unsigned int lotar_x:4;
338  unsigned int lotar_y:4;
339  unsigned int hfh:1;
340  unsigned int nt_hint:1;
341  unsigned int io_pin:1;
342 };
343 
345 #define IORPC_MEM_BUFFER_FLAG_NT_HINT (1 << 0)
346 
348 #define IORPC_MEM_BUFFER_FLAG_IO_PIN (1 << 1)
349 
350 
358 {
359  struct
360  {
363  unsigned int flags;
364  }
365  user;
367  struct
368  {
369  unsigned long long cpa;
370 #if defined(__KERNEL__) || defined(__HV__)
371  size_t size;
372  HV_PTE pte;
373 #else
374  uint64_t size;
376 #endif
377  unsigned int flags;
378  }
379  kernel;
381  struct
382  {
383  unsigned long long pa;
384  size_t size;
386  }
387  hv;
388 };
389 
390 
395 {
396  struct
397  {
398  int cpu;
399  int event;
400  }
401  user;
403  struct
404  {
405  int x;
406  int y;
407  int ipi;
408  int event;
409  }
410  kernel;
412 };
413 
414 
420 {
421  struct
422  {
423  int fd;
424  }
425  user;
427  struct
428  {
429  int x;
430  int y;
431  int ipi;
432  int event;
433  }
434  kernel;
436 };
437 
438 
444 {
445  struct
446  {
447  int fd;
448  }
449  user;
451  struct
452  {
453  int cookie;
454  }
455  kernel;
457 };
458 
459 
467 
469  GXIO_ERR_MAX = -1101,
470 
471 
472  /********************************************************/
473  /* Generic Error Codes */
474  /********************************************************/
475 
478 
480  GXIO_ERR_INVAL = -1102,
481 
484 
487 
490 
493 
496 
499 
502 
505 
508 
511 
514 
517 
520 
523 
525  GXIO_ERR_BUSY = -1117,
526 
528  GXIO_ERR_IO = -1118,
529 
531  GXIO_ERR_PERM = -1119,
532 
533 
534 
535  /********************************************************/
536  /* Test Device Error Codes */
537  /********************************************************/
538 
541 
544 
545 
546  /********************************************************/
547  /* MPIPE Error Codes */
548  /********************************************************/
549 
550 
553 
556 
559 
562 
565 
568 
571 
574 
577 
580 
583 
586 
589 
592 
595 
598 
601 
604 
607 
610 
613 
616 
619 
622 
625 
628 
629 
630  /********************************************************/
631  /* TRIO Error Codes */
632  /********************************************************/
633 
636 
639 
642 
645 
648 
651 
654 
657 
660 
663 
666 
669 
670 
671  /********************************************************/
672  /* MICA Error Codes */
673  /********************************************************/
674 
677 
680 
683 
686 
687  /********************************************************/
688  /* GPIO Error Codes */
689  /********************************************************/
690 
694 
698 
703 
708 
710  GXIO_ERR_MIN = -1299
711 };
712 
713 
714 #endif /* !_HV_IORPC_H_ */