16f52b16cSGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ 254579826SDavid Howells #ifndef _SPARC_OPENPROMIO_H 354579826SDavid Howells #define _SPARC_OPENPROMIO_H 454579826SDavid Howells 554579826SDavid Howells #include <linux/compiler.h> 654579826SDavid Howells #include <linux/ioctl.h> 754579826SDavid Howells 854579826SDavid Howells /* 954579826SDavid Howells * SunOS and Solaris /dev/openprom definitions. The ioctl values 1054579826SDavid Howells * were chosen to be exactly equal to the SunOS equivalents. 1154579826SDavid Howells */ 1254579826SDavid Howells 1354579826SDavid Howells struct openpromio 1454579826SDavid Howells { 1515d5dfafSMasahiro Yamada unsigned int oprom_size; /* Actual size of the oprom_array. */ 1654579826SDavid Howells char oprom_array[1]; /* Holds property names and values. */ 1754579826SDavid Howells }; 1854579826SDavid Howells 1954579826SDavid Howells #define OPROMMAXPARAM 4096 /* Maximum size of oprom_array. */ 2054579826SDavid Howells 2154579826SDavid Howells #define OPROMGETOPT 0x20004F01 2254579826SDavid Howells #define OPROMSETOPT 0x20004F02 2354579826SDavid Howells #define OPROMNXTOPT 0x20004F03 2454579826SDavid Howells #define OPROMSETOPT2 0x20004F04 2554579826SDavid Howells #define OPROMNEXT 0x20004F05 2654579826SDavid Howells #define OPROMCHILD 0x20004F06 2754579826SDavid Howells #define OPROMGETPROP 0x20004F07 2854579826SDavid Howells #define OPROMNXTPROP 0x20004F08 2954579826SDavid Howells #define OPROMU2P 0x20004F09 3054579826SDavid Howells #define OPROMGETCONS 0x20004F0A 3154579826SDavid Howells #define OPROMGETFBNAME 0x20004F0B 3254579826SDavid Howells #define OPROMGETBOOTARGS 0x20004F0C 3354579826SDavid Howells /* Linux extensions */ /* Arguments in oprom_array: */ 3454579826SDavid Howells #define OPROMSETCUR 0x20004FF0 /* int node - Sets current node */ 3554579826SDavid Howells #define OPROMPCI2NODE 0x20004FF1 /* int pci_bus, pci_devfn - Sets current node to PCI device's node */ 3654579826SDavid Howells #define OPROMPATH2NODE 0x20004FF2 /* char path[] - Set current node from fully qualified PROM path */ 3754579826SDavid Howells 3854579826SDavid Howells /* 3954579826SDavid Howells * Return values from OPROMGETCONS: 4054579826SDavid Howells */ 4154579826SDavid Howells 4254579826SDavid Howells #define OPROMCONS_NOT_WSCONS 0 4354579826SDavid Howells #define OPROMCONS_STDIN_IS_KBD 0x1 /* stdin device is kbd */ 4454579826SDavid Howells #define OPROMCONS_STDOUT_IS_FB 0x2 /* stdout is a framebuffer */ 4554579826SDavid Howells #define OPROMCONS_OPENPROM 0x4 /* supports openboot */ 4654579826SDavid Howells 4754579826SDavid Howells 4854579826SDavid Howells /* 4954579826SDavid Howells * NetBSD/OpenBSD /dev/openprom definitions. 5054579826SDavid Howells */ 5154579826SDavid Howells 5254579826SDavid Howells struct opiocdesc 5354579826SDavid Howells { 5454579826SDavid Howells int op_nodeid; /* PROM Node ID (value-result) */ 5554579826SDavid Howells int op_namelen; /* Length of op_name. */ 5654579826SDavid Howells char __user *op_name; /* Pointer to the property name. */ 5754579826SDavid Howells int op_buflen; /* Length of op_buf (value-result) */ 5854579826SDavid Howells char __user *op_buf; /* Pointer to buffer. */ 5954579826SDavid Howells }; 6054579826SDavid Howells 6154579826SDavid Howells #define OPIOCGET _IOWR('O', 1, struct opiocdesc) 6254579826SDavid Howells #define OPIOCSET _IOW('O', 2, struct opiocdesc) 6354579826SDavid Howells #define OPIOCNEXTPROP _IOWR('O', 3, struct opiocdesc) 6454579826SDavid Howells #define OPIOCGETOPTNODE _IOR('O', 4, int) 6554579826SDavid Howells #define OPIOCGETNEXT _IOWR('O', 5, int) 6654579826SDavid Howells #define OPIOCGETCHILD _IOWR('O', 6, int) 6754579826SDavid Howells 6854579826SDavid Howells #endif /* _SPARC_OPENPROMIO_H */ 6954579826SDavid Howells 70