The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/powerpc/ps3/ps3-hvcall.master

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 /*
    2  * Playstation 3 LV1 hypercall interface
    3  *
    4  * $FreeBSD: releng/11.2/sys/powerpc/ps3/ps3-hvcall.master 228689 2011-12-18 16:53:21Z nwhitehorn $
    5  */
    6 
    7 #include <sys/types.h>
    8 
    9 enum lpar_id {
   10         PS3_LPAR_ID_CURRENT     = 0x00,
   11         PS3_LPAR_ID_PME         = 0x01,
   12 };
   13 
   14 /* Return codes from hypercalls */
   15 #define LV1_SUCCESS                     0
   16 #define LV1_RESOURCE_SHORTAGE           -2
   17 #define LV1_NO_PRIVILEGE                -3
   18 #define LV1_DENIED_BY_POLICY            -4
   19 #define LV1_ACCESS_VIOLATION            -5
   20 #define LV1_NO_ENTRY                    -6
   21 #define LV1_DUPLICATE_ENTRY             -7
   22 #define LV1_TYPE_MISMATCH               -8
   23 #define LV1_BUSY                        -9
   24 #define LV1_EMPTY                       -10
   25 #define LV1_WRONG_STATE                 -11
   26 #define LV1_NO_MATCH                    -13
   27 #define LV1_ALREADY_CONNECTED           -14
   28 #define LV1_UNSUPPORTED_PARAMETER_VALUE -15
   29 #define LV1_CONDITION_NOT_SATISFIED     -16
   30 #define LV1_ILLEGAL_PARAMETER_VALUE     -17
   31 #define LV1_BAD_OPTION                  -18
   32 #define LV1_IMPLEMENTATION_LIMITATION   -19
   33 #define LV1_NOT_IMPLEMENTED             -20
   34 #define LV1_INVALID_CLASS_ID            -21
   35 #define LV1_CONSTRAINT_NOT_SATISFIED    -22
   36 #define LV1_ALIGNMENT_ERROR             -23
   37 #define LV1_HARDWARE_ERROR              -24
   38 #define LV1_INVALID_DATA_FORMAT         -25
   39 #define LV1_INVALID_OPERATION           -26
   40 #define LV1_INTERNAL_ERROR              -32768
   41 
   42 static inline uint64_t
   43 lv1_repository_string(const char *str)
   44 {
   45         uint64_t ret = 0;
   46         strncpy((char *)&ret, str, sizeof(ret));
   47         return (ret);
   48 }
   49 
   50 #       Code    Name                                    Inputs                          Outputs
   51 HVCALL  0       lv1_allocate_memory                     size,log_page_size,zero,flags   base_addr,muid
   52 HVCALL  1       lv1_write_htab_entry                    vas_id,slot,pte_hi,pte_lo
   53 HVCALL  2       lv1_construct_virtual_address_space     log_pteg_count,n_sizes,page_sizes vas_id,hv_pteg_count
   54 HVCALL  4       lv1_get_virtual_address_space_id_of_ppe ppe_id                          vas_id
   55 HVCALL  6       lv1_query_logical_partition_address_region_info lpar_id                 base_addr,size,access_right,max_page_size,flags
   56 HVCALL  7       lv1_select_virtual_address_space        vas_id
   57 HVCALL  9       lv1_pause                               mode
   58 HVCALL  10      lv1_destruct_virtual_address_space      vas_id
   59 HVCALL  11      lv1_configure_irq_state_bitmap          ppe_id,cpu_id,bitmap_addr
   60 HVCALL  12      lv1_connect_irq_plug_ext                ppe_id,cpu_id,virq,outlet,zero
   61 HVCALL  13      lv1_release_memory                      base_addr
   62 HVCALL  15      lv1_put_iopte                           ioas_id,ioif_addr,lpar_addr,io_id,flags
   63 HVCALL  17      lv1_disconnect_irq_plug_ext             ppe_id,cpu_id,virq
   64 HVCALL  18      lv1_construct_event_receive_port        UNUSED                          outlet
   65 HVCALL  19      lv1_destruct_event_receive_port         outlet
   66 HVCALL  24      lv1_send_event_locally                  outlet
   67 HVCALL  27      lv1_end_of_interrupt                    irq
   68 HVCALL  28      lv1_connect_irq_plug                    virq,irq
   69 HVCALL  29      lv1_disconnect_irq_plus                 virq
   70 HVCALL  30      lv1_end_of_interrupt_ext                ppe_id,cpu_id,virq
   71 HVCALL  31      lv1_did_update_interrupt_mask           ppe_id,cpu_id
   72 HVCALL  44      lv1_shutdown_logical_partition          cmd
   73 HVCALL  54      lv1_destruct_logical_spe                spe_id
   74 HVCALL  57      lv1_construct_logical_spe               pshift1,pshift2,pshift3,pshift4,pshift5,vas_id,spe_type priv2_addr,problem_phys,local_store_phys,unused,shadow_addr,spe_id
   75 HVCALL  61      lv1_set_spe_interrupt_mask              spe_id,class,mask
   76 HVCALL  65      lv1_disable_logical_spe                 spe_id,zero
   77 HVCALL  66      lv1_clear_spe_interrupt_status          spe_id,class,stat,zero
   78 HVCALL  67      lv1_get_spe_interrupt_status            spe_id,class                    stat
   79 HVCALL  69      lv1_get_logical_ppe_id                  UNUSED                          ppe_id
   80 HVCALL  74      lv1_get_logical_partition_id            UNUSED                          lpar_id
   81 HVCALL  78      lv1_get_spe_irq_outlet                  spe_id,class                    outlet
   82 HVCALL  79      lv1_set_spe_privilege_state_area_1_register     spe_id,offset,value
   83 HVCALL  91      lv1_get_repository_node_value           lpar_id,n1,n2,n3,n4             v1,v2
   84 HVCALL  95      lv1_read_htab_entries                   vas_id,slot     hi1,hi2,hi3,hi4,rcbits
   85 HVCALL  96      lv1_set_dabr                            dabr,flags
   86 HVCALL  116     lv1_allocate_io_segment                 ioas_id,seg_size,io_pagesize    ioif_addr
   87 HVCALL  117     lv1_release_io_segment                  ioas_id,ioif_addr
   88 HVCALL  120     lv1_construct_io_irq_outlet             interrupt_id                    outlet
   89 HVCALL  121     lv1_destruct_io_irq_outlet              outlet
   90 HVCALL  122     lv1_map_htab                            lpar_id                         htab_addr
   91 HVCALL  123     lv1_unmap_htab                          htab_addr
   92 HVCALL  127     lv1_get_version_info                    UNUSED                          firm_vers
   93 HVCALL  158     lv1_insert_htab_entry                   vas_id,pteg,pte_hi,pte_lo,lockflags,flags       index,evicted_hi,evicted_lo
   94 HVCALL  162     lv1_read_virtual_uart                   port,buffer,bytes               bytes_read
   95 HVCALL  163     lv1_write_virtual_uart                  port,buffer,bytes               bytes_written
   96 HVCALL  164     lv1_set_virtual_uart_param              port,param,value
   97 HVCALL  165     lv1_get_virtual_uart_param              port,param                      value
   98 HVCALL  166     lv1_configure_virtual_uart              lpar_addr                       outlet
   99 HVCALL  170     lv1_open_device                         bus,dev,zero
  100 HVCALL  171     lv1_close_device                        bus,dev
  101 HVCALL  172     lv1_map_device_mmio_region              bus,dev,bus_addr,size,page_size lpar_addr
  102 HVCALL  173     lv1_unmap_device_mmio_region            bus,dev,lpar_addr
  103 HVCALL  174     lv1_allocate_device_dma_region          bus,dev,io_size,io_pagesize,flag        dma_region
  104 HVCALL  175     lv1_free_device_dma_region              bus,dev,dma_region
  105 HVCALL  176     lv1_map_device_dma_region               bus,dev,lpar_addr,dma_region,size,flags
  106 HVCALL  177     lv1_unmap_device_dma_region             bus,dev,dma_region,size
  107 HVCALL  178     lv1_read_pci_config                     ps3bus,bus,dev,func,offset,size result
  108 HVCALL  179     lv1_write_pci_config                    ps3bus,bus,dev,func,offset,size,data
  109 HVCALL  185     lv1_net_add_multicast_address           bus,dev,addr,flags
  110 HVCALL  186     lv1_net_remove_multicast_address        bus,dev,zero,one
  111 HVCALL  187     lv1_net_start_tx_dma                    bus,dev,bus_addr,zero
  112 HVCALL  188     lv1_net_stop_tx_dma                     bus,dev,zero
  113 HVCALL  189     lv1_net_start_rx_dma                    bus,dev,bus_addr,zero
  114 HVCALL  190     lv1_net_stop_rx_dma                     bus,dev,zero
  115 HVCALL  191     lv1_net_set_interrupt_status_indicator  bus,dev,irq_status_addr,zero
  116 HVCALL  193     lv1_net_set_interrupt_mask              bus,dev,mask,zero
  117 HVCALL  194     lv1_net_control                         bus,dev,p1,p2,p3,p4             v1,v2
  118 HVCALL  197     lv1_connect_interrupt_event_receive_port        bus,dev,outlet,irq
  119 HVCALL  198     lv1_disconnect_interrupt_event_receive_port     bus,dev,outlet,irq
  120 HVCALL  202     lv1_deconfigure_virtual_uart_irq
  121 HVCALL  207     lv1_enable_logical_spe                  spe_id,resource_id
  122 HVCALL  210     lv1_gpu_open                            zero
  123 HVCALL  211     lv1_gpu_close
  124 HVCALL  212     lv1_gpu_device_map                      dev                             lpar_addr,lpar_size
  125 HVCALL  213     lv1_gpu_device_unmap                    dev
  126 HVCALL  214     lv1_gpu_memory_allocate                 ddr_size,zero1,zero2,zero3,zero4        handle,ddr_lpar
  127 HVCALL  216     lv1_gpu_memory_free                     handle
  128 HVCALL  217     lv1_gpu_context_allocate                handle,flags                    chandle,lpar_dma_control,lpar_driver_info,lpar_reports,lpar_reports_size
  129 HVCALL  218     lv1_gpu_context_free                    chandle
  130 HVCALL  221     lv1_gpu_context_iomap                   changle,gpu_ioif,xdr_lpar,fbsize,ioflags
  131 HVCALL  225     lv1_gpu_context_attribute               chandle,op,p1,p2,p3,p4
  132 HVCALL  227     lv1_gpu_context_intr                    chandle                         v1
  133 HVCALL  228     lv1_gpu_attribute                       p1,p2,p3,p4,p5
  134 HVCALL  232     lv1_get_rtc                             UNUSED                          rtc_val,timebase
  135 HVCALL  245     lv1_storage_read                        dev,region,sector,nsectors,flags,buf    dma_tag
  136 HVCALL  246     lv1_storage_write                       dev,region,sector,nsectors,flags,buf    dma_tag
  137 HVCALL  248     lv1_storage_send_device_command         dev,cmd_id,cmd_block,cmd_size,data_buf,blocks   dma_tag
  138 HVCALL  249     lv1_storage_get_async_status            dev                             dma_tag,status
  139 HVCALL  254     lv1_storage_check_async_status          dev,dma_tag                     status
  140 HVCALL  255     lv1_panic                               howto

Cache object: 13dd044079e35330ddfbe99b7b469d19


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.